关于给小君主上个炮台然后让她社保的事?(划屏瞄准与意大利炮)
精华2019/09/19483 浏览综合
经过两天的建造,咋们的小君主的操作也算有模有样了

基础的操作建立起来了,但是坦克怎么能没有炮呢?小君主也不想任人宰割,于是乎让这边根据视角来做一个炮控系统吧!(附带装填系统)

但是这边的屏幕瞄准可不靠射线检测(玩出心理阴影)靠的是激光发射器!就是激光发射器!(选择激光发射器可不仅仅只是他稳定而已嘿嘿嘿)
至于激光发射器处理问题,这边先提到俩点:非物理移动黑魔法(零件强制移动和旋转,能带着和这个零件连在一起的跑)和新出的隐身魔法(透明度调整)

(让激光发射器远离车体)然后再新建一个自定义方法,这边需要强制移动的点的坐标和方向坐标。

在视角那里套走数据,强制移动是以世界坐标系(绝对坐标系)进行移动的,强制旋转是以一个相对坐标(方向坐标)来旋转的。

(自定义方法最高だ)

再写上程式,顺带关掉物理和碰撞,你总不想到时候激光发射器上天然后炮塔鬼畜吧。(激光发射器的坐标系是反过来的,所以强制旋转要把方向反过来,不要问这边为什么,直接去锤程序猿)

这....样...z....不过大丈夫,最近鸽子Bug开发组搞了一个好东西,可以调整零件透度,只需要一个小小的MOD:

(帖主📱复制不了太长内容,但是这个小MOD可以,稍后会在回复里和白嫖四个发布)


super透明块!(找不到时可以通过零件列表找...比哈利的隐身衣还要鬼畜)这样子视野检测的基础有了!然后便是要通过这个激光发射器来获取坐标。说实话其实这边想了半天该怎么检测,最后一个网友给出了一个相似三角形的解决方案,这里得感谢他(有空来对号入座啊~)

就是得出目标的距离然后和参考算倍率然后再乘以相对坐标。不过检测距离这个...在激光发射器的“检测到敌人”的逻辑栏里面,这个里面的逻辑启用都要检测到目标...

所以要用到跨洛基的,神奇的全局变量!

然后再在自定义方法里面用返回值调出(每个自定义方法只支持一个返回值,零件等下有其他用途)

还要再加上一个判定的原因是因为激光发射器不检测时这个变量会保留(没有改变)然后导致看着***台对的方向距离不会改变还有距离显示问题(后面会加上的UI显示内容)回到核心逻辑。

可以调用其他零件的自定义方法(跨零件传输数据,全局变量也有只能在一个零件里面使用的局限)最后套上刚才讲过的相似三角形坐标的算法

最后输出的目标坐标就是激光发射器检测的地方的坐标。

最后再设置一下激光发射器(透明激光RGB全0)然后这个检测就成了!再来做一个简单的绝对自瞄炮台

反装转轴是方便兼容算式(偷懒time)

(一些参数)

(届时也会在回复里面发布,这个代码比较挑剔转轴的放置方向,如果转向不一样就旋转一下转轴,自瞄什么的可以自己研究一下)
主要原理还是向量夹角,不过这边每个转轴的自瞄都是分开的,更方便的兼容奇怪的炮台。然后给炮台安个激光发射器看看怎么样先~

这样就大功告成了!炮控也就....还不可能结束的!记得那个零件目标吗,这边要将他导出~

然后再在视野那个隐身的激光发射器上面加一个发射器

(现形,复制一个,改名改一下参数,然后只检测战车)
用新的那个写些小程式

是的,你没看错,就是辅助瞄准,而且还是看什么瞄什么那种!

然后让敌人目标点映射到屏幕上和屏幕中心点对比差(炮台也是瞄向中心点的,外加偷懒time)

再在视角控制里面插入算式

(类似插队增值一样的)这就大功告成了!

(测 试 大 成 功)这样子基础的炮控也差不多了(蒙皮是不可能蒙皮的,至少不是现在!)然后日常的白嫖时刻!最后祝你游戏愉快!
