Im делая игру как проект окончания и столкнулся с небольшой проблемой. Цель игры - маневрировать кораблем и избегать астероидов как можно дольше. Я почти закончен, но теперь я пытаюсь решить проблему обнаружения столкновений.Достижение переменных в других функциях
Моя проблема заключается в том, как мне добраться до врага в переменной цикла, чтобы он мог проверить наличие столкновения с ним? Вот код:
package com.asgamer.basics1
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
public class Engine extends MovieClip
{
private var numStars:int = 80;
private static var enemyList:Array = new Array();
private var ourShip:Ship;
public function Engine() : void
{
ourShip = new Ship(stage);
ourShip.x = stage.stageWidth/2;
ourShip.y = stage.stageHeight/2;
stage.addChild(ourShip);
for (var i:int = 0; i < numStars; i++)
{
stage.addChildAt(new Star(stage), 1)
}
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
stage.addEventListener(Event.ENTER_FRAME, krash);
}
private function krash(e:Event) : void
{
function krash(e:Event):void
{
if (enemy.hitTestObject(ourShip)==true)
{
stage.removeChild(ourShip);
stage.removeEventListener(Event.ENTER_FRAME, krash);
}
}
}
private function loop(e:Event) : void
{
if (Math.floor(Math.random() * 10) == 5)
{
var enemy:Asteroid = new Asteroid(stage);
enemy.addEventListener(Event.REMOVED_FROM_STAGE, removeEnemy, false, 0, true);
enemyList.push(enemy);
stage.addChild(enemy);
}
}
private function removeEnemy(e:Event)
{
enemyList.splice(enemyList.indexOf(e.currentTarget), 1);
}
}
}
Как вы можете видеть, у меня есть функция для создания врагов которая называется циклом и функция для обнаружения столкновений называются Krash. Но так как враг является переменным внутри цикла, как я могу проверить наличие конфликта с ним в функции krash. (Относительно новых к actionscript, поэтому я не знаю терминологию все хорошо)
Спасибо! У меня есть функция, которая удаляет врага в классе астероидов, поэтому это не должно быть проблемой. Но я добавил функцию, и я все еще прохожу через врагов. У вас будет время, я был бы очень благодарен, если бы вы могли это прочесть. http://www.mediafire.com/download/l7rdn07i26njgw6/Ship+game.rar – user3177484
Привет, извините, я забыл об этом, потому что думал, что вы можете решить, как его использовать. Я загрузил вашу игру, и проблема в функции «krash» в «engine.as». Вам нужно удалить вторую строку и закрыть ее. – Zoron19
Вы, сэр, потрясающие! Теперь он работает. : D – user3177484