0
我正在一個Uni項目,但我似乎無法弄清楚一件事。當兩個電影剪輯相撞一個消失
在我的舞臺上,我有一個物體(peter_pan)和其他物體(bottle_mc)的六個孩子。
我想要做的是當其中一個孩子碰到彼得潘時,它應該立即消失,並且應該有+1得分(是的,這是一個非常簡單的Flash遊戲)。
但是我似乎無法解決這個問題,因爲一旦他們流過他,他們就會消失(而且這也是一個隨機的bottle_mc,而不是他接觸的那個),並且比分總是停在23而不是1。
我是新手,所以我的代碼很簡單(對於我的英語我也不是英文母語的人)。
這裏是我的代碼:
stop();
var collisionArray:Array = new Array();
var damageArray:Array = new Array();
var peter_pan:Peter=new Peter;
addChild(peter_pan);
peter_pan.x=0;
peter_pan.y=200;
stage.addEventListener(KeyboardEvent.KEY_DOWN, movement);
function movement(event:KeyboardEvent):void {
switch (event.keyCode) {
case Keyboard.UP :
peter_pan.y -=15;
break;
case Keyboard.DOWN :
peter_pan.y +=15;
break;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, showUp);
function showUp(event:KeyboardEvent):void {
if (peter_pan.y>=365) {
peter_pan.y=8;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, showDown);
function showDown(event:KeyboardEvent):void {
if (peter_pan.y<=5) {
peter_pan.y=340;
}
}
for (var i:int = 0; i<6; i++) {
var bottle_mc:Bottle=new Bottle;
addChild(bottle_mc);
bottle_mc.x = 540;
bottle_mc.y = Math.floor(Math.random()*(350 -0 +1))+0;
bottle_mc.hit = false;
bottle_mc.addEventListener(Event.ENTER_FRAME, movingBottles);
collisionArray.push(bottle_mc);
}
function movingBottles(e:Event):void {
e.currentTarget.x-=5;
if (e.currentTarget.x<10) {
e.currentTarget.x = 540;
e.currentTarget.y = Math.floor(Math.random()*(300 - 0 +1))-0;
if (e.currentTarget.visible==false) {
e.currentTarget.visible=true;
e.currentTarget.hit = false;
}
}
}
var score_val:Number=0;
score_txt.text=String(score_val);
addEventListener(Event.ENTER_FRAME, damage);
function damage(e:Event):void {
if (peter_pan.x>=bottle_mc.x-peter_pan.width) {
bottle_mc.visible=false;
score_val++;
score_txt.text=String(score_val);
}
}
那麼,我該怎麼做簡單的事情,就像當peter_pan首先接觸bottle_mc消失馬上讓他能更收集它們,它們就會消失,得分將只有1點1瓶?
大,是解決衝突的問題,但仍然有一個問題,它不會增加+1到比分,但加上+23。難道你不知道我怎麼修復它?我真的很感激。謝謝。 – user3079662
只是一個猜測:它可能是瓶子在重置x和y之前碰撞23次w/the peter_pan物體。即使你已經將瓶子設置爲消失,它仍然可能會通過碰撞測試。 – SCCOTTT
我會在損壞函數中的if語句中將瓶子的位置重置爲瓶子(您將x設置爲540並選擇一個隨機y值),或者我會爲該if語句添加一個條件,因此它只會添加到如果瓶子可見,則得分。 – SCCOTTT