2011-06-05 51 views
0

我之前發佈了一些關於我正在嘗試做的遊戲的問題。 這裏是.fla文件:http://ifile.it/bpi79cv倖存者遊戲(穿牆,hitTest和手電的敵人)

我的第一個也是主要問題是,敵人穿過牆壁。我可以像玩家那樣做一個hiTest,以便檢測到碰撞,但我不知道如何使對方改變方向。我認爲如果敵人不能同時在x軸和y軸上同時移動,但是不知道如何去做,那會更簡單。 (然後他們只需要轉90度)

第二個問題是檢測與敵人碰撞的hitTest。似乎我無法做到這一點。有一部分我認爲在評論劇本結尾時會很好。

第三個問題,這是我眼中最不重要的是,即使「手電筒」不針對他們,我們也會看到敵人。

如果有人可以幫助我要麼這些問題,這將是非常讚賞

非常感謝,馬修。

編輯

我已經簡化我的遊戲,使其在時間。但是,我仍然有一個重大問題。手電筒。除了它的實際目標之外,我希望它能掩蓋其他所有內容。

仍然無法進行碰撞。

http://ifile.it/xmhra7g

對不起煩人與我的問題。 謝謝,Mathieu。

回答

1

一個良好的開端將被扭轉了方向,當他們碰了壁..

但是這將需要一些更多的數學比得到它去......現在各地線130你有這樣的:

function updatePosition(follower:MovieClip, target:MovieClip) { 

低於添加這樣的事情..當前direciton乘以-1將扭轉它的X和Y:

if (_root.environment.hitTest(follower._x, follower._y, true)) { 
    follower.moveX = -follower.moveX; 
    follower.moveY = -follower.moveY; 
} 

(記住這個只會WO rk對那些沒有觸及牆壁的人來說......如果你的三角形怪物之一的初始座標已經在牆內,這將不起作用..你可以做的是檢查最初的x和y是否是在牆上的有效命中測試給它新的座標,並繼續這樣做,直到它開始的道路上。)

+0

再次感謝艾伯特。 我開始意識到,也許這個遊戲對於我的實際技能來說有點過於雄心勃勃。 會這樣的工作嗎?: if(_root.environment.hitTest(tempEnemy._x,tempEnemy。_y,true)) \t \t { \t \t \t createEnemies(); \t \t} – 2011-06-06 00:24:38

+0

什麼是createEnemies()函數?那些代碼會做的是,如果敵人擊中牆壁,它將「創造敵人()」 – 2011-06-06 01:22:38

+0

你是對的。如果他們不在牆內,你會如何處理重複產生敵人的想法? – 2011-06-06 01:46:25