我打算用一點動態方法創建塔防遊戲。該方案是這樣的:塔防:重疊塔範圍
紅色區域將是「殺戮地帶」裏玩家的塔放置/戰略將極大地利用。
我想要發生的事情是,當一個擁有「主動盾牌buff」的波動中的creep進入殺戮地帶時,creep將激活他的技能來保護附近的小兵。
有沒有一種算法可以幫助我實現這個目標?
我打算用一點動態方法創建塔防遊戲。該方案是這樣的:塔防:重疊塔範圍
紅色區域將是「殺戮地帶」裏玩家的塔放置/戰略將極大地利用。
我想要發生的事情是,當一個擁有「主動盾牌buff」的波動中的creep進入殺戮地帶時,creep將激活他的技能來保護附近的小兵。
有沒有一種算法可以幫助我實現這個目標?
在這種情況下,我想我會爲這些塔(目標和效果塔)創建碰撞體。然後,當蠕變同時在這些碰撞者的面積內時。效果應該被激活。
你只需要檢查蠕變是否在每個塔的半徑內。你做到這一點的
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更多的人在一起。