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

相关推荐
国际云,接待28 分钟前
腾讯云怎么在游戏云中助力
服务器·游戏·云原生·重构·云计算·腾讯云
繁依Fanyi3 小时前
用 CodeBuddy 实现「IdeaSpark 每日灵感卡」:一场 UI 与灵感的极简之旅
开发语言·前端·游戏·ui·编辑器·codebuddy首席试玩官
Easybr指纹浏览器10 小时前
5 easybr指纹浏览器内存修改教程
chrome·http·游戏·web3·社媒营销·电商·多账号管理·指纹浏览器·浏览器开发·sock5·跨境营销·账号防关联
chao_78919 小时前
王者荣耀游戏测试场景题
功能测试·游戏
benben0442 天前
Unity3D仿星露谷物语开发44之收集农作物
前端·游戏·unity·游戏引擎
Unity官方开发者社区3 天前
《Cryptical Path》开发诀窍:像玩游戏一样开发一款类Rogue游戏
java·游戏·玩游戏
二狗哈4 天前
制作一款打飞机游戏49:敌人抖动
游戏
Time Famine4 天前
射击游戏demo11
python·游戏·pygame
染指11104 天前
25.第二阶段x64游戏实战-分析物品相关数据
汇编·游戏·游戏逆向·x64dbg·x64游戏
web150854159354 天前
使用Python开发经典俄罗斯方块游戏
python·游戏·pygame