小游戏开发问题

2016-06-03 08:58:10 +08:00
 467347544

正在用 TypeScript 做一个塔防类型小游戏 问题是 假如现在本关 有 3 个炮台 炮台有攻击范围 有 10 个怪物 怪物会沿着路线行动 怪物和炮台都在各自的数组中存放 那么如何判断 是哪个怪物进入了哪个炮台的攻击范围呢? (有可能多个怪物进入了多个炮台的攻击范围) 求提供一个思路(⊙o⊙)

2928 次点击
所在节点    JavaScript
11 条回复
phttc
2016-06-03 09:02:10 +08:00
if (根号 dx2+dy2 < 范围)
then 攻击
am241
2016-06-03 09:07:39 +08:00
这里比较平方和比开根号速度要快吧
EPr2hh6LADQWqRVH
2016-06-03 09:12:21 +08:00
真正有用的只是路线上的区间而已,随你用什么笨办法计算出来,任意炮塔在路径上的攻击区间。
炮塔是很有限的,所以攻击区间也很有限,一串 if 下来也是可以的。
coddmajes
2016-06-03 09:13:42 +08:00
每个炮台一次只攻击一个怪物吧 我觉得不需要判断哪个怪物进入哪个炮台的攻击范围,只需要在每个炮台的周围设定一个攻击范围然后进入范围的怪物按照距离来进行攻击。。。这样是不是楼主想要的?
dudor
2016-06-03 09:17:06 +08:00
很简单,求怪和炮台之间的距离 ,然后和攻击范围比较下就可以了
467347544
2016-06-03 09:21:04 +08:00
谢谢大家了 有思路啦~\(≧▽≦)/~
just4test
2016-06-03 09:32:01 +08:00
这点怪物和炮台数量不用做任何优化
467347544
2016-06-03 09:40:10 +08:00
好吧是我没说明白 问题是 假如同时有 2 个怪物同时进入了某个炮台的攻击范围 那炮台应该攻击哪个呢 是否应该把进入某个炮台攻击范围的怪物加到一个数组 离开某个炮台攻击范围就从数组删除 然后炮台只攻击数组里面的第一个怪物
yxz00
2016-06-03 10:08:52 +08:00
这有个游戏设计问题,如果你想炮台一旦开始攻击就打到怪物离开范围或者打死(也是大多数塔防的做法):记录第一个进入范围的怪物,一直作为攻击目标,同时一直检测是否死亡或者离开范围。如果离开搜索下一个最近的可攻击怪物
xuzicn
2016-06-06 11:08:56 +08:00
做游戏最重要的一个技术就是“碰撞检测”,也是一个游戏核心之一。
xuzicn
2016-06-06 11:10:24 +08:00
搜一搜,会有新的发现

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/283147

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX