制作一款打飞机游戏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) do
    for s in all(shots) do
    if col(flr(xscroll+s.x-3),flr(s.y),8,16,
    flr(xscroll+e.x-7),flr(e.y-7),16,16) then
    e.flash=2
    del(shots,s)
    add(splash,{
    x=s.x,
    y=s.y+4,
    sani={23,23,24,25,26},
    si=0
    })
    e.hp-=1

    复制代码
     if e.hp<=0 then
      del(enemies,e)
      explode(e.x,e.y)
     end 
    end

    end
    end
    function dosplash()
    for s in all(splash) do
    s.si+=1
    s.si=max(s.si,1)
    if flr(s.si)>#s.sani then
    del(splash,s)
    end
    end
    end

相关推荐
JQweryuiop3 天前
中小型游戏陪练工作室数字化管理实践:基于七彩屋电竞护航小程序订单、履约与绩效系统的落地复盘
大数据·游戏·小程序·架构
乌萨达4 天前
低配电脑玩手游怎么设置?4GB、8GB内存与模拟器选择指南
游戏·电脑·安卓模拟器·雷电模拟器
林川~015 天前
Unity 万能物理检测工具:射线检测 / 范围检测 / 层级过滤 / 编辑器可视化(可直接拿去用)
游戏·unity·c#·射线检测·通用工具
一孤程6 天前
游戏测试专题第七篇:游戏自动化测试实战
游戏·测试
一孤程7 天前
游戏测试专题第八篇:游戏安全测试与反外挂
游戏·测试
河南花仙子科技8 天前
小游戏社交裂变功能的高阶设计思路
大数据·科技·游戏
一孤程8 天前
游戏测试专题第五篇:游戏兼容性测试与多端适配
游戏·测试
狂人开飞机8 天前
23、实战平台跳跃游戏
游戏·游戏引擎·godot
甲维斯9 天前
0代码,0建模,3句话开发一个3D游戏!
前端·游戏·游戏开发
笨鸟先飞的橘猫9 天前
树结构在游戏行业中的应用
学习·游戏