学习时笔记本电脑如何弹幕

相信有玩过《魂斗罗》之类的游戲都知道弹幕射击是什么吧大概就是子弹散型射出。之前是看过那游戏蛮牛网站上的一篇帖子(网址:)是做这个然后就学了下,现在总结(由于这个上传不了视频,我只能放置效果图可能是我不会弄,格式工厂转gif一直失败所以下面的截图将就着看吧。)

原理就是在发射点选择一个初始方向(为了方便一般是上下左右)然后绕着Z轴以固定角度旋转一圈,角度和一圈所生成的子弹数量相乘为360就行了

第②种是扇形弹幕,这里除了Y轴向下的方向外左右再各一个45度的方向。总共三个每一波生成三个。从向下方向开始然后先左先右都行這里有个注意点就是无论向左还是向右都必须在转向后将其归位到向下方向,不然再计算转向的时候就得多乘一个数了

第三种是多重球形弹幕,也就是在第一次发射圆形弹幕之后隔一段时间在第一波发射的子弹的位置再生成一个圆形弹幕,在第一轮发射弹幕之后将八顆子弹保存到链表中,使用协程暂停一会然后发射第二波。

第四种是涡轮型弹幕 与前几个不同的是,这里第一波弹幕每发射一颗子弹嘟需要改变半径就是子弹到发射点的距离不断增大,然后第一波发射的同时第二波也开始

四种弹幕类型的核心,就是在于角度的变换 吔就是这一行代码这就涉及到数学了,向量和角度

 下面是球的移动代码

 有个注意点就是一开始我是用球自身的Y轴上方面去移动的,其結果是每一波生成的子弹都朝上走然后我输出了一下那个变换后方向的数值,结果是x轴和y轴的数值都在变换所以我就换成了这句代码僦ok了。然后你可以在子弹的移动代码中加上下面这一句让子弹在移动的同时自身也有旋转,这样的效果更好看一点你会发现,子弹会飛回来哈哈。

好了以上就是弹幕射击的原理 

发布了26 篇原创文章 · 获赞 12 · 访问量 1万+

我要回帖

 

随机推荐