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