小游戏开发问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
467347544
V2EX    Javascript

小游戏开发问题

  •  
  •   467347544 2016-06-03 08:58:10 +08:00 3326 次点击
    这是一个创建于 3426 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    11 条回复    2016-06-06 11:10:24 +08:00
    phttc
        1
    phttc  
       2016-06-03 09:02:10 +08:00
    if (根号 dx2+dy2 < 范围)
    then 攻击
    am241
        2
    am241  
       2016-06-03 09:07:39 +08:00 via Android
    这里比较平方和比开根号速度要快吧
    EPr2hh6LADQWqRVH
        3
    EPr2hh6LADQWqRVH  
       2016-06-03 09:12:21 +08:00   1
    真正有用的只是路线上的区间而已,随你用什么笨办法计算出来,任意炮塔在路径上的攻击区间。
    炮塔是很有限的,所以攻击区间也很有限,一串 if 下来也是可以的。
    coddmajes
        4
    coddmajes  
       2016-06-03 09:13:42 +08:00   1
    每个炮台一次只攻击一个怪物吧 我觉得不需要判断哪个怪物进入哪个炮台的攻击范围,只需要在每个炮台的周围设定一个攻击范围然后进入范围的怪物按照距离来进行攻击。。。这样是不是楼主想要的?
    dudor
        5
    dudor  
       2016-06-03 09:17:06 +08:00
    很简单,求怪和炮台之间的距离 ,然后和攻击范围比较下就可以了
    467347544
        6
    467347544  
    OP
       2016-06-03 09:21:04 +08:00
    谢谢大家了 有思路啦~\()/~
    just4test
        7
    just4test  
       2016-06-03 09:32:01 +08:00
    这点怪物和炮台数量不用做任何优化
    467347544
        8
    467347544  
    OP
       2016-06-03 09:40:10 +08:00
    好吧是我没说明白 问题是 假如同时有 2 个怪物同时进入了某个炮台的攻击范围 那炮台应该攻击哪个呢 是否应该把进入某个炮台攻击范围的怪物加到一个数组 离开某个炮台攻击范围就从数组删除 然后炮台只攻击数组里面的第一个怪物
    yxz00
        9
    yxz00  
       2016-06-03 10:08:52 +08:00 via Android   1
    这有个游戏设计问题,如果你想炮台一旦开始攻击就打到怪物离开范围或者打死(也是大多数塔防的做法):记录第一个进入范围的怪物,一直作为攻击目标,同时一直检测是否死亡或者离开范围。如果离开搜索下一个最近的可攻击怪物
    xuzicn
        10
    xuzicn  
       2016-06-06 11:08:56 +08:00   1
    做游戏最重要的一个技术就是“碰撞检测”,也是一个游戏核心之一。
    xuzicn
        11
    xuzicn  
       2016-06-06 11:10:24 +08:00
    搜一搜,会有新的发现
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3052 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 12:13 PVG 20:13 LAX 05:13 JFK 08:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86