2016-11-23 103 views
0

我打算用一點動態方法創建塔防遊戲。該方案是這樣的:塔防:重疊塔範圍

enter image description here

紅色區域將是「殺戮地帶」裏玩家的塔放置/戰略將極大地利用。

我想要發生的事情是,當一個擁有「主動盾牌buff」的波動中的creep進入殺戮地帶時,creep將激活他的技能來保護附近的小兵。

有沒有一種算法可以幫助我實現這個目標?

回答

0

在這種情況下,我想我會爲這些塔(目標和效果塔)創建碰撞體。然後,當蠕變同時在這些碰撞者的面積內時。效果應該被激活。

0

你只需要檢查蠕變是否在每個塔的半徑內。你做到這一點的

function isInside(creep_pos, tower_pos, radius): 
    return pow(creep_pos.x - tower_pos.x, 2) + pow(creep_pos.y - tower_pos.y, 2) < radius*radius 

(純畢達哥拉斯定理)

現在,讓我們說你有兩個塔,Tower t1, t2。如果蠕變裏面既塔半徑的,要激活它:

Tower t1, t2 
Creep c 
if (isInside(c.pos, t1.pos, t1.r) && isInside(c.pos, t2.pos, t2.r)) 
    c.activeShield() 

可查看與儘可能多的塔,只要你想通過只&& -ing更多的人在一起。