Показать сообщение отдельно
  #1 (permalink)  
Старый 25.10.2010, 19:07
Аспирант
Отправить личное сообщение для daMage Посмотреть профиль Найти все сообщения от daMage
 
Регистрация: 31.07.2010
Сообщений: 35

Программирование во 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), то мне выдавало кучу ошибок? Спасибо, за любую помощь, даже если эта помощь будет в виде ссылки на сайт или видео.
Ответить с цитированием