小游戏开发问题 - V2EX
467347544

小游戏开发问题

  •  
  •   467347544 Jun 3, 2016 3714 views
    This topic created in 3637 days ago, the information mentioned may be changed or developed.

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

    11 replies    2016-06-06 11:10:24 +08:00
    phttc
        1
    phttc  
    &nbp;  Jun 3, 2016
    if (根号 dx2+dy2 < 范围)
    then 攻击
    am241
        2
    am241  
       Jun 3, 2016 via Android
    这里比较平方和比开根号速度要快吧
    EPr2hh6LADQWqRVH
        3
    EPr2hh6LADQWqRVH  
       Jun 3, 2016   1
    真正有用的只是路线上的区间而已,随你用什么笨办法计算出来,任意炮塔在路径上的攻击区间。
    炮塔是很有限的,所以攻击区间也很有限,一串 if 下来也是可以的。
    coddmajes
        4
    coddmajes  
       Jun 3, 2016   1
    每个炮台一次只攻击一个怪物吧 我觉得不需要判断哪个怪物进入哪个炮台的攻击范围,只需要在每个炮台的周围设定一个攻击范围然后进入范围的怪物按照距离来进行攻击。。。这样是不是楼主想要的?
    dudor
        5
    dudor  
       Jun 3, 2016
    很简单,求怪和炮台之间的距离 ,然后和攻击范围比较下就可以了
    467347544
        6
    467347544  
    OP
       Jun 3, 2016
    谢谢大家了 有思路啦~\()/~
    just4test
        7
    just4test  
       Jun 3, 2016
    这点怪物和炮台数量不用做任何优化
    467347544
        8
    467347544  
    OP
       Jun 3, 2016
    好吧是我没说明白 问题是 假如同时有 2 个怪物同时进入了某个炮台的攻击范围 那炮台应该攻击哪个呢 是否应该把进入某个炮台攻击范围的怪物加到一个数组 离开某个炮台攻击范围就从数组删除 然后炮台只攻击数组里面的第一个怪物
    yxz00
        9
    yxz00  
       Jun 3, 2016 via Android   1
    这有个游戏设计问题,如果你想炮台一旦开始攻击就打到怪物离开范围或者打死(也是大多数塔防的做法):记录第一个进入范围的怪物,一直作为攻击目标,同时一直检测是否死亡或者离开范围。如果离开搜索下一个最近的可攻击怪物
    xuzicn
        10
    xuzicn  
       Jun 6, 2016   1
    做游戏最重要的一个技术就是“碰撞检测”,也是一个游戏核心之一。
    xuzicn
        11
    xuzicn  
       Jun 6, 2016
    搜一搜,会有新的发现
    About     Help     Advertise     Blog     API     FAQ     Solana     3625 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 50ms UTC 00:48 PVG 08:48 LAX 17:48 JFK 20:48
    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