0
本質上,我試圖創建一個遊戲,玩家必須躲避某些物品,到目前爲止,我有一段隨機將3個鯊魚添加到舞臺上的代碼。在for循環中創建多個變量的碰撞檢測?
這個想法是,一旦玩家擊中鯊魚他/她返回到開始位置,我有一個動作腳本文件,其中包含鯊魚的速度,速度等,每當程序運行鯊魚將出現在不同的位置。但是,當我試圖對鯊魚進行碰撞測試時,只有其中一個鯊魚作出反應,我無法弄清楚如何讓所有3個鯊魚都能影響玩家(square_mc)。任何幫助將不勝感激。
//Pirate game, where you have to avoid particular object and get to the finish line to move onto the final level.
stage.addEventListener(KeyboardEvent.KEY_DOWN, moveMode);
function moveMode(e:KeyboardEvent):void {
//movements for the pirate ship, this will allow the ship to move up,down,left and right.
if (e.keyCode == Keyboard.RIGHT) {
trace("right");
square_mc.x = square_mc.x + 25;
}
else if (e.keyCode == Keyboard.LEFT) {
trace("left");
square_mc.x = square_mc.x - 25;
}
else if (e.keyCode == Keyboard.UP) {
trace("up");
square_mc.y = square_mc.y - 25;
}
else if (e.keyCode == Keyboard.DOWN) {
trace("down");
square_mc.y = square_mc.y + 25;
}
}
//for.fla
//this program uses a for loop to create my Sharks
//a second for loop displays the property values of the sharks
function DisplayShark():void{
for (var i:Number=0;i<3;i++)
{
var shark:Shark = new Shark(500);
addChild(shark);
shark.name=("shark"+i);
shark.x=450*Math.random();
shark.y=350*Math.random();
}
}
DisplayShark();
for(var i=0; i<3;i++){
var currentShark:DisplayObject=getChildByName("shark"+i);
trace(currentShark.name+"has an x position of"+currentShark.x+"and a y position of"+currentShark.y);
}
//here we will look for colliosion detection between the two move clips.
addEventListener(Event.ENTER_FRAME, checkForCollision);
function checkForCollision(e:Event):void {
if (square_mc.hitTestObject(currentShark))
{
trace("The Square has hit the circle");
square_mc.x=50
square_mc.y=50 //these lines of code return the square back to it's original location
}
}
非常感謝!不知道爲什麼我沒有想到,現在看起來如此明顯!感謝您的快速響應;) – dMo 2012-08-15 14:40:07