当前位置: 首页 > news >正文

制作一款打飞机游戏20:敌人被击中时的视觉效果

  1. 碰撞检测问题‌:

    子弹与飞船的碰撞检测存在数学问题,特别是坐标偏移量不一致。问题根源在于x scroll值为浮点数,导致非对称的加减运算结果。解决方案是将x scroll值向下取整,确保碰撞检测的对称性。
  2. 敌人碰撞与行为‌:

    引入敌人后,发现敌人与子弹的碰撞检测也存在问题,同样通过调整坐标偏移量解决。需要统一碰撞盒逻辑,减少函数参数,提高代码简洁性。存储敌人数据的必要性,包括动画、碰撞盒大小等信息。

  1. 敌人被击中时的视觉效果‌:

    实现了敌人被击中时的闪烁效果,通过调整调色板实现颜色变化。
  2. 爆炸效果(Splash Effect)‌:

    子弹击中敌人时的爆炸效果,通过动画帧实现。延迟爆炸效果的出现时间,使其与子弹消失同步。
  3. 敌人生命值与爆炸‌:

    为敌人添加了生命值属性,当生命值降至零时敌人爆炸。实现了随机生成敌人的功能。
for s in all(splash) do    mspr(s.sani[flr(s.si)],s.x,s.y)--pset(s.x,s.y,8)end
for e in all(enemies) dofor s in all(shots) doif col(flr(xscroll+s.x-3),flr(s.y),8,16,flr(xscroll+e.x-7),flr(e.y-7),16,16) thene.flash=2del(shots,s)add(splash,{x=s.x,y=s.y+4,  sani={23,23,24,25,26},si=0    })e.hp-=1if e.hp<=0 thendel(enemies,e)explode(e.x,e.y)end endendend  
function dosplash()for s in all(splash) dos.si+=1s.si=max(s.si,1) if flr(s.si)>#s.sani thendel(splash,s)endend
end

相关文章:

  • 理解js函数(Ⅱ)
  • 嵌入式Linux驱动开发:LED实验
  • Spring Boot中自定义404异常处理问题学习笔记
  • Android学习总结之Room篇
  • 发送网络请求
  • 《无尽的尽头》今日开播 刘家祎大胆演绎林磊儿的“另一面”
  • RAG(检索增强生成)技术详解与应用实践:从原理到落地
  • 简单几步,开启 Intel VT-x 让电脑“解开CPU封印”
  • 蓝桥杯 20. 压缩变换
  • 数据分析之 商品价格分层之添加价格带
  • 欧姆龙NJ系列PLC通讯
  • vue3-springboot-mysql的docker部署
  • 怎么实现RAG检索相似文档排序:similarities
  • 云蝠智能大模型呼叫:AI驱动的通信服务革新与实践
  • 操作系统---进程同步与互斥
  • 【频谱分析仪与信号分析仪】异同比较
  • Unity后处理全解析:从入门到优化
  • 《Linux程序设计》实验8 线程程序设计
  • vulkanscenegraph显示倾斜模型(6)-帧循环
  • RTS 如何使用流控方式自动实现收发
  • 美称中美芬太尼问题谈判但中方不够真诚,外交部回应
  • 美总统批准海底采矿,外交部:擅自授权开发损害国际社会共同利益
  • 韩冬任国家广播电视总局副局长,齐竹泉任中央广播电视总台副台长
  • 为博流量编造上海车展谣言,造谣者被公安机关依法行政处罚
  • 国家发改委:更大力度、更实举措促进民营经济高质量发展
  • 北大学者:过度依赖技术工具可能会削弱人类主动思考的能力