打飞机小程序游戏开发感悟

优化日志:

昨天做出了初步模型😄

今天继续肝💪

目前双子弹的问题只有一种设置方式 等以后碰到其他的加以补充

  1. 优化了显示生命值的问题
  2. 优化了敌人碰到自己会爆炸💥消失 自己生命值减少的问题
  3. 优化了当敌方飞出下边缘 删除克隆体 优化内存的问题
  4. 优化了当敌方飞出下边缘 生命值不减少的问题
  5. 优化了在画布外初始敌机与子弹间距太近导致开头爆炸💥音效出现的问题
  6. 优化了双子弹的问题(时间很重要! 后面细说)
  7. 优化了空投随机生成而不是随时间生成的问题
  8. 优化了boss生命值的问题 需要在每个克隆体启动时将生命设置为xx

全局变量优化:

  • 在自己战机精灵上设置 当自己碰撞到陨石,将自己生命-1;
  • 若果不下心在陨石上也设置同样的碰撞生命-1
  • 会造成进程卡死 不将生命值减到0

双子弹问题方法一:

设置全局变量 子弹模式
初始子弹模式为1 当接受到双子弹空投 设置子弹模式为2(这里可以设置过5秒后子弹模式改回1)

单个子弹发射的设置 是从飞机的相对位置每隔xx秒开始克隆

双子弹就是当子弹模式为2的时候 重复执行每次每隔xx秒重复客隆两次

双子弹的位置:

由于双子弹的克隆 全局时间 几乎完全相同
所以增加全局变量 双弹模式
当克隆体开始克隆时

int zidanmoshi;
int shuangdanmoshi;
//每客隆一颗子弹 初始x往左或者往右
if(zidanmoshi==2){
  shuangdanmoshi++;
  if(shuangdanmoshi % 2 ==0)
    zidan.x -= 40; //将子弹向向左移动40
  if(shuangdanmoshi % 2 ==1)
    zidan.x +=40; //将子弹向右移动40
}
  //这样就可以使得连续两颗子弹的发射位置不同  belike  |  |

我们可以设置全局变量双弹模式

当克隆体启动时 进入判断是否子弹模式==2

判断成功则 双弹模式+1

由克隆体开始克隆进入判断

当子弹模式为2时 将双弹模式增加1

  • 进入判断 如果双弹模式%2==0 ------改变他的x坐标向左移动30
  • ​ 如果双弹模式%2==1------

这样的双子弹生成有一个很重要的问题:克隆时间间隔必须很短 不然会造成子弹一前一后的间距非常明显
所以这里使用(0.1s)的克隆间隔刚好 射速也不错

随机生成空投的问题:

本来我想使用用全局时间推移来生成空投😭

我脑子里开始只有这种想法 因为随着时间推移的方法很好用

但这种方式有点过于繁琐了 每次都要计算时间克隆(主要消耗太多测试时间)

所以使用下面这种方法:

​ 当消灭一个敌人(使得怪物生命==0时)
​ 使用随机数的方法 随机克隆空投

if( MonsterLife==0 ){
  if(  ( (int )(Math.random()*5)+1) == 5 )  //随机生成[1,5]的数字 本次获得空投的概率为1/5
		  airdrop.clone();
}

这种方式可以清晰的控制发生事件的概率
不过经过测试在weixin-gamemaker里有点伪概率的意思
两局射击五个目标飞机
一局 产生airdrop的概率是 4/5
另一局是0 / 5
害 以后再解决吧

优化内存空间问题:

​ 在微信小游戏可视化开发中,近几天总结的问题:

  • 当克隆体因为一些事件而被废弃隐藏时,及时删除克隆体,释放内存
  • 「当」+ 成功条件、「当角色移出屏幕」,这些事件一旦达成触发条件,将会以约16.67毫秒一次的频率持续触发,所以避免使用「重复执行」积木来造成进程卡死!这一点我深有体会,刚开始制作有好几次卡爆了,感觉一万个敌机冲我飞过来
  • 避免一个事件在两个对象中同时触发,上次遇到这种情况,进程没有卡死,但是出现了很多意想不到的bug,不往下执行事件

总结:

通过这两天的微信可视化小游戏学习使用 我感触良多
每分钟都在写bug。然后修bug(bushi)
做一个游戏真的逻辑很重要 思维一定要清晰🤔
通过微信可视化制作这个平台积木脚本搭建我基本初级有了了游戏制作的一些概念
下一站是UE4
Acher冲冲冲!💪

posted on 2022-05-16 15:45  AcherLoveCode  阅读(105)  评论(0编辑  收藏  举报

导航