Javascript-форум (https://javascript.ru/forum/)
-   Flash (https://javascript.ru/forum/flash-actionscript-program/)
-   -   Программирование во Flash ActionScript 3.0 (https://javascript.ru/forum/flash-actionscript-program/12604-programmirovanie-vo-flash-actionscript-3-0-a.html)

daMage 25.10.2010 19:07

Программирование во Flash ActionScript 3.0
 
Недавно написал одну игрушку, в которой нужно было попасть во врага и убить. Так вот, в процессе создания игры, появлялись проблемы, решить которые мне не совсем удавалось. Например, стрельба:
1. Сначала я создал нужные переменные:
var bullet:Bullet = new Bullet();
var bulletSpeed:Number = 25;
var spaceKeyIsDown:Boolean = false;

2. Затем добавлял нужные свойства позиционирования и делал проверку при событии KEY_DOWN:
if(key == Keyboard.SPACE) {
	if(!spaceKeyIsDown) {
		spaceKeyIsDown = true
		bullet.x = tank.x;
		bullet.y = tank.y - tank.height;
		bullet.alpha = 1;
		addChild(bullet);
		fire.play();
	}
}

4. При событии ENTER_FRAME шла еще одна проверка:
if(bullet.y > 0 - bullet.height) bullet.y -= bulletSpeed;
else {
	bullet.alpha = 0;
	spaceKeyIsDown = false;
}

После чего снаряд создавался и летел вверх. Но сдесь есть один минус: снаряд может создаваться только после того, как предыдущий либо пересечет границу, либо попадёт во врага. Это примерно 1 снаряд за 1с времени. Как эту задачу можно сделать по другому для того, что бы к примеру можно было стрелять около 2 - 3 раз за секунду?
И еще: Почему, когда я добавлял новый элемент на страницу(7 строчка второго кода), а потом хотел его уничтожить, функцией removeChild(bullet), то мне выдавало кучу ошибок? Спасибо, за любую помощь, даже если эта помощь будет в виде ссылки на сайт или видео.

daMage 25.10.2010 19:20

Да и вобще хотелось бы узнать о всех тонкостях при создании флеш игр. Подкиньте инфы, пожалуйста.

B@rmaley.e><e 25.10.2010 19:43

Вы немного ошиблись форумом, это форум по JavaScript, а не Flash + ActionScript, несмотря на наличие соответствующего раздела. Думаю, Вам лучше пойти на специализированные форумы по Flash'у.

Gozar 25.10.2010 20:30

Цитата:

Сообщение от daMage (Сообщение 75785)
И еще: Почему, когда я добавлял новый элемент на страницу(7 строчка второго кода), а потом хотел его уничтожить, функцией removeChild(bullet), то мне выдавало кучу ошибок?

Включаю мод телепат .... бубубубубу ....

Судьба говорит тебе читай что пишет компилятор .... бубубубубу ....
компилятор пишет тебе что удаляешь ты не то что добавляешь .... бубубубу .... смотри к чему добавляешь пулю и ту ли пулю ты удаляешь ...

Выключаю мод телепат. :)

Gozar 25.10.2010 20:46

Цитата:

Сообщение от daMage (Сообщение 75785)
После чего снаряд создавался и летел вверх. Но сдесь есть один минус: снаряд может создаваться только после того, как предыдущий либо пересечет границу, либо попадёт во врага. Это примерно 1 снаряд за 1с времени. Как эту задачу можно сделать по другому для того, что бы к примеру можно было стрелять около 2 - 3 раз за секунду?

Есть такое гениальное открытие как массивы, в Вашем случае массив пуль :)

и вот Вам ссылко на разработку игр.

Yurok_shnurok 30.11.2010 22:48

daMage, я совсем недавно начал изучать ActionScript 3.0, раньше на as2.0 программировал. AS3.0 ориентирован на ООП, вот пример создания игры если возникнут вопросы помогу, чем смогу!


Часовой пояс GMT +3, время: 04:19.