我计划用一些动态的方法来创建一个塔防御游戏。场景是这样的:
红色区域将是“杀伤区”,玩家的塔位/策略将在这里得到极大的利用。
我想要发生的是,当一个有“主动护盾增益”的海浪中的爬虫进入杀伤区时,爬虫会激活他的技能来保护附近的爬虫。
有没有一种算法可以帮助我做到这一点?
发布于 2016-11-23 18:38:23
在这种情况下,我想我会为那些塔(包括目标塔和效果塔)创建对撞机。然后,当蠕变同时在这些对撞器的区域内时。特效应该被激活。
发布于 2016-11-25 16:29:58
你只需要检查爬行是否在每个塔的半径内。你可以通过以下方式来实现
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更多塔在一起。
https://stackoverflow.com/questions/40761922
复制相似问题