技术求教 塔防炮塔预判
scratch吧
全部回复
仅看楼主
level 3
hj23308
楼主
如图:
地图大小为480px*360px,方格大小为32px*32px,绿色为出怪口。 注:地图不固定,炮塔位置也不固定
炮塔有转动速度限制,当前转动速度最大为100°/s
敌人有各自的移动速度,作品中已完成地图寻路,即可通过敌人的速度和当前位置计算出任意时间后的位置(不考虑减速)
炮塔发射的子弹有移动速度限制,当前为200px/s
图中炮塔外的灰圆为炮塔的攻击范围(不是预判范围),超出这个范围子弹会自动消失
目的:通过以上的因素计算炮塔要向哪个方向发射子弹才能刚好打到敌人
其他的细节自己问
2021年08月24日 13点08分
1
level 3
hj23308
楼主
目前想到一种方法:把道路拆分成一段段线段,再用某种公式分别计算各个线段。
还没试过是否可行
2021年08月24日 13点08分
2
hj23308
主要是公式不会推
2021年08月24日 14点08分
level 3
hj23308
楼主
注:尽量不要给暴力枚举的方法(比如逐帧判断),除非枚举次数比较少
2021年08月24日 14点08分
3
level 10
Kilex
预运算:敌人在生成时直接判断路线然后将路线信息载入自己的列表,移动就按照列表走,发送的坐标为自己即将要走的某个坐标(比如5帧之后自己的坐标)
然后就可以了,如果道路会发生改变就重新运算
2021年08月25日 11点08分
4
hj23308
?作品中已完成地图寻路,可通过敌人的速度和当前位置计算出任意时间后的位置
2021年08月25日 14点08分
hj23308
但问题是炮塔朝不同方向转向需要的时间是不同的,子弹到敌人的时间也不是固定的,如果是固定的那可以直接向敌人 (转向所需的时间+子弹的时间)帧后的位置攻击,但这并不是固定的
2021年08月25日 14点08分
hj23308
而且你说的这种方法面对移速特别快/慢的敌人不行
2021年08月25日 14点08分
level 10
Kilex
既然这么麻烦,不如用我在几战里的子弹逻辑偷个懒
子弹攻击范围99
2021年08月25日 17点08分
6
Kilex
子弹的是有目标信息的,不怕误伤
2021年08月25日 17点08分
昵称丢了1
@Kilex
兄啊,子弹有目标且不会漏不就成了某日方舟了吗
2021年08月25日 18点08分
Kilex
@昵称丢了1
但这是我自己想的啊
2021年08月25日 19点08分
hj23308
啊这 那就把子弹改成会追踪的
?
2021年08月26日 02点08分
level 6
yhjm99
2021年08月30日 00点08分
7
hj23308
?
2021年09月03日 14点09分
yhjm99
就是顶啊,不说而已
2021年09月21日 15点09分
level 6
zodiacstar
换个角度想问题。给你的怪物编程,如果离这个炮台比较近的时候就发消息。炮台收到消息以后,如果没有处于攻击状态中,就开始朝这个怪物瞄准。
2021年09月10日 08点09分
8
hj23308
不行
2021年09月12日 13点09分
level 5
伟大の……废物。
楼主,建议给子弹速度分类,像铁皮的皇家细列,炮塔不会预判,但是子弹速度和瞄准后的反应时间可以决定这个炮塔能不能打中目标,快速目标可以快速刮痧塔(箭塔)击中,慢速目标可以范围高伤(炮塔)击中
2021年09月12日 03点09分
9
level 5
伟大の……废物。
我的意思就是子弹不需要预判,命中率也是一种数据嘛,比如矮人炮台永远打不中狼
2021年09月12日 03点09分
10
hj23308
哦
2021年09月12日 13点09分
level 9
o金水木o
你这个炮塔的范围会变大吗?如果都是图中的范围,子弹速度差可以忽略不计(除非你的小怪很小很小)。这样一来,只需要面向之后发射子弹就行。
设炮塔坐标A(a1,b1),小怪坐标B(a2,b2)
方向脚本:
面向90°-αtan[b2-b1/a2-a1]方向
2021年09月14日 09点09分
11
o金水木o
额,这个方向忘记考虑正负了,完整看楼下。
2021年09月14日 12点09分
level 9
o金水木o
效果图:
2021年09月14日 12点09分
12
o金水木o
画笔是轨迹哦!
2021年09月14日 12点09分
level 9
o金水木o
2021年09月15日 04点09分
13
o金水木o
图片不清楚,要不要脚本?需要的话我就发链接。
2021年09月15日 04点09分
黑洞番薯♂
厉害
2021年10月08日 13点10分
o金水木o
@黑洞番薯♂
你要不要脚本?
2021年10月08日 14点10分
hj23308
@o金水木o
谢谢orz
2021年11月21日 12点11分
level 9
o金水木o
楼主在不在?
2021年09月16日 10点09分
14
level 3
stoneman1976
先根据炮塔和道路的关系,直接预定好怪物被击毙的位置(灰色圈能覆盖到的道路部分),然后计算出怪物到达这个位置的时间,然后计算炮塔转动和发射炮弹的提前时间(其中转动的时间可以忽略,因为是一直瞄准这个地方发射炮弹)
2021年10月09日 08点10分
15
level 9
o金水木o
链接:
[无效] https://pan.baidu.com/s/1H1lEJlREcr87eKE-WzAe2g
提取码:pkhh
2021年11月21日 14点11分
16
o金水木o
这脚本有点小bug,有的时候不会发射炮弹。我检查了下不是脚本的问题,你自己移植到你的作品里的时候注意一下。
2021年11月21日 14点11分
1