0
我作为一个毕业设计制作游戏,遇到了一些小问题。游戏的目标是尽可能长时间地操纵船只并避开小行星。我快完成了,但我现在正在尝试解决碰撞检测问题。达到其他功能的变量
我的问题是我如何到达循环变量中的敌人,以便它可以检查与它的碰撞?下面是代码:
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函数中检查与它的碰撞。 (排序新的动作,所以我不知道术语都很好)
谢谢!我有一个移除小行星类中的敌人的功能,所以不应该是一个问题。但是我添加了这个功能,而且我仍然通过了敌人。如果你有时间,我会非常感激,如果你可以看看它。 http://www.mediafire.com/download/l7rdn07i26njgw6/Ship+game.rar – user3177484
你好,对不起,我忘了这一点,因为我想你能解决如何使用它。我下载了你的游戏,问题出现在“engine.as”的“krash”功能中。你需要删除第二行,它是右大括号。 – Zoron19
你先生,真棒!现在它正在工作。 :d – user3177484