制作一款打飞机游戏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

相关推荐
旧物有情1 小时前
Unity2D 街机风太空射击游戏 学习记录 #12环射道具的引入
学习·游戏
ThisIsClark2 小时前
【Kubernetes】以LOL的视角打开K8s
游戏·云原生·容器·kubernetes·lol
BinField3 小时前
Windows应用商店中的控制台游戏应用:快艇骰子
游戏
benben0445 小时前
Unity3D仿星露谷物语开发66之NPC存档
游戏·ui·unity·c#·游戏引擎
云云32119 小时前
轻量化社交管理方案:Skout与云手机的巧妙搭配
大数据·网络·游戏·智能手机·矩阵
chao_78920 小时前
死锁相关知识
网络协议·游戏·测试·死锁
还债大湿兄1 天前
游戏技能编辑器界面优化设计
游戏
future14122 天前
FairyGUI学习
学习·游戏·ui·unity
帅_shuai_2 天前
UE5 游戏模板 —— TopDownGame 俯视角游戏
游戏·ue5
帅_shuai_2 天前
UE5 游戏模板 —— Puzzle 拼图游戏
c++·游戏·ue5·虚幻引擎