用户:
阳光的流熔怪Uyt5查看:17 回复:23 评论:17 创建时间:2021-01-28T15:32:14

源灵工作室 一个路人 出品
吼吼吼
无论是让人躲避攻击的弹幕游戏
或者是人和电脑对狙的人机射击
都会涉及到一个问题:单个弹幕过于简单
吼!你看对面有个子弹飞过来了!

你看这个不会预判的人机就不怎么聪明的样子
(队友B:路人是你不怎么聪明吧)
咳咳我们继续
所以说我们为了提高弹幕的难度需要让我们的人机(或者弹幕)学会预判玩家的方向
成品如下
可以试试切换到“自主操控”模式对比一下预判瞄准和一般瞄准的区别
那这么酷炫的瞄准是如何实现的呢?
咳咳,别急,我们这节课先讲理论
程序是如何知道我们会跑到哪的呢?
我们举个例子哈
话说我们的队友B同学因为对路人的行为十分不满于是TA想要用喵射路人
但是路人这家伙一直跑来跑去很难射中
而我们的子弹又不是激光,发射出去是需要一段时间才能击中的
我们的小B就需要进行预判
当子弹到达路人现在的位置时路人在哪里
这样就可以做出优化,打中路人
同学们同学们划重点了啊
当子弹到达路人现在的位置时路人在哪里
这就是我们预判算法的核心

干涉到我们预判的因素有哪些呢?
预判者到目标的距离和预判者子弹的速度(决定目标能够在子弹到达原先位置前移动多久)
目标移动的速度和目标移动的方向(决定目标能够在子弹到达原先位置前移动到哪里)
有了这四个因素,就可以推导出目标即将移动的方位,从而优化我们的射击方向
(需要注意,我们的预判也并不是万能的,如果目标在子弹到达前快速改变移动方向,那么预测结果就可能不准确)
(这时候就要看你的欧气(划去)容错率了)
具体的方法就是让某个角色以目标移动方向移动目标距离÷子弹速度×目标速度步
此时此角色的位置就是目标按当前移动模式进行移动后的位置
(注:由于侦测的方法不同,目标速度侦测到的结果可能不一样,所以应当乘以一个常数以调整结果)
(注2:坐标可用三角函数表示,但没有太大意义,路过大佬可自行尝试)
只要知道了对方未来可能的位置,预判就简单了
——END——
有人做作业吗QWQ
作业:写一个程序,不断获取正在随机移动的目标的移动方向和速度