PDA

Просмотр полной версии : Алгоритмы Как решить проблему с мееню игри?


ABEnergy
04.03.2017, 22:23
Решил сделать меню и следующий код должен при нажатии на кнопку проигривать дальше,
но вискакивает ошибка


typeError: Error #1010: A term is undefined and has no properties.
at FlappyBirdColumn_fla::MainTimeline/frame1()




stop();
menu_box.btn_play.onPress = function()
{
play();
};

ZackMercury
04.03.2017, 23:10
Не пишите в кадрах.

ABEnergy
05.03.2017, 13:39
я не понял

Добавлено через 35 секунд
как тогда написать?

undefined
05.03.2017, 13:46
в классах

ZackMercury
05.03.2017, 14:24
https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%8 0%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

Даже самые простые игры удобней писать оперируя концепцией ООП, не говоря о более сложных.
Ищите книгу Колин Мук "ActionScript 3.0 для Flash. Подробное руководство"

Почему в ответ на эту тему? Тут практически нет людей, которые пишут в кадрах, а ошибка связана с логикой кадров.
Код в кадрах был придуман и воплощён для расширения возможностей аниматоров, а не для работы в них программистов.

caseyryan
05.03.2017, 16:34
А ни кого не насторожило, что он запостил вопрос по коду as2, хоть ветка и as3?)

ABEnergy
05.03.2017, 17:19
в етом и вся фишка что спрашиваю как сделать чтоби на AS3 заработало

ZackMercury
05.03.2017, 17:26
http://www.flasher.ru/forum/forumdisplay.php?f=75
как сделать чтоби на AS3 заработало
Написать код на AS3, может быть?

undefined
05.03.2017, 17:33
ABEnergy,перечитай свой первый пост и подумай над таким вопросом: можно ли по нему(посту), не прибегая к телепатии,понять о чем ты просишь?По мне, так единственное что из него ясно,что ты ошибся разделом.

ABEnergy
05.03.2017, 19:42
Нет разделом не ошибся, програмирую на AS3, да, суть неправильно изложил, но все-таки ето можно как-то сделать, тоесть запрограмировать на AS3?

ZackMercury
06.03.2017, 00:25
Можно как-то.

ABEnergy
06.03.2017, 21:28
да я тут кое-что надумал, но не понимаю логики системи...

написал тестовий код для кнопки, вот он:

import flash.events.MouseEvent;

stop();
var score:int = 0;


var TextScore:TextField = new TextField();
var format:TextFormat = new TextFormat();
format.bold = true;
format.size = 100;
format.font = "Adventure";
format.color = 0xff0000;
TextScore.defaultTextFormat = format;
addChild(TextScore);
TextScore.x = 250;
TextScore.y =250;
TextScore.selectable = false;



var eBTN:Button = new Button();
addChild(eBTN);
eBTN.x = 200;eBTN.y = 200;


eBTN.addEventListener(MouseEvent.MOUSE_DOWN, btnDown);
function btnDown(e:MouseEvent){
eBTN.height += 10;
eBTN.weight += 10;
}


eBTN.addEventListener(MouseEvent.MOUSE_UP, btnUp);
function btnUp(e:MouseEvent){
eBTN.height -= 10;
eBTN.weight -= 10;
score ++;
TextScore.text = "" + score;
}

Все работало на ура и я решил сделать таким же способом и в своей игрухе,
но тут после обявления:

var Bmenu:Button = new Bmenu();

Оно кидает ошибку, мол: "Тип не найден, бла бла бла:Button";
Не пойму в чем тут причуд...

illuzor
06.03.2017, 21:57
var Bmenu:Button = new Bmenu();
Жесть какая. Вам бы для начала элементарные основы изучить.

Wolsh
06.03.2017, 23:16
Товарищ таким образом и изучает :) Товарищ не читатель, он писатель.

Просто повнимательней. Явно же не "= new Bmenu();" а "= new Button();".
Ну и заодно eBTN.weight += 10; — видимо, всё же width?

Добавлено через 8 минут
И еще раз напомню — с заглавной буквы именуются только Классы (Button).
Переменные — с маленькой (bMenu, textScore). // вообще конечно лучше menuButton, scoreTXT.
Обработчики событий — либо с префиксом on (onMenuButtonUp),
либо со словом handler (buttonUpHandler, handlerButtonUp).

ZackMercury
06.03.2017, 23:28
Wolsh, а может и не Button вовсе :)

ABEnergy
07.03.2017, 01:21
Ничего не явно, так как клас Bmenu.Во вторих с weight прекрасно меняет ширину.....

Добавлено через 56 секунд
Ви о чем именно?

undefined
07.03.2017, 01:51
Ничего не явно, так как клас Bmenu

А ничего что у тебя имя переменной с именем класса совпадает?
Почитай уже конвенции по именованию классов/переменных

faraday
07.03.2017, 01:57
естественно, если просто копировать код, не имея никакого понятия о том что он делает, можно создавать по 3 темы в день, но понимания так и не прибавится. начинет с азов, смортите не готовые куски кода, а уроки где объясняется почему сделано именно так.

caseyryan
07.03.2017, 10:18
Во вторих с weight прекрасно меняет ширину.....
Серьезно что ли? :D
weight - вес
width - ширина

впервые слышу, чтобы у Button было свойство weight, да еще и ширину меняло

Этот код даже не скомпилируется, не говоря уже о смене ширины кнопки

ABEnergy
07.03.2017, 15:33
Ну я и лох, ошибочка вишла, извините(

Добавлено через 43 секунды
faraday, откуда я могу код копировать то?У вас есть доказательства етой деятельности??

ZackMercury
07.03.2017, 18:37
написал тестовий код для кнопки, вот он:
Вместо тестового кода кнопки и переписи везде и всюду, лучше бы написали класс кнопки...
Да и код ваш, вежливо говоря, - кривой, и дело не только в форматировании и названиях переменных.
Попробуйте нажать левую кнопку мыши над кнопкой, перетащить на пространство вне кнопки и отпустить, и повторить так пару раз.

Aziz Zaynutdinoff
07.03.2017, 18:43
Как вы вообще понимаете ТС'а? Мало того, что с ошибками, так еще и без элементарных понятий предмета.

ABEnergy
07.03.2017, 21:22
Спасибо всем, ви заставили меня взяться за ум и начать читать книгу, благодаря ней я написал и все работает, спасибо!

ZackMercury
07.03.2017, 22:57
Этот код даже не скомпилируется, не говоря уже о смене ширины кнопки
Этот код скомпилируется, за условием, что Button - это кастомный динамический класс или мувиклип из библиотеки.

caseyryan
08.03.2017, 06:03
Этот код скомпилируется, за условием, что Button - это кастомный динамический класс или мувиклип из библиотеки.
А, ну да) я уже и забыл, что мувиклип динамический :D