【quick-cocos2d-lua】 飞行游戏

本文介绍了使用Cocos2d-Lua开发飞行游戏的详细过程,包括游戏场景、背景层的构建和四个关键对象:Player、Bird、Airship和Heart。游戏玩法是点击屏幕使玩家上升,避免碰撞障碍物。通过物理引擎实现碰撞检测和角色动画。同时,文章还讲解了背景层的滚动效果实现和地图的创建方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

登录界面:

游戏场景:

玩法:点击屏幕时,玩家向上运动,不点击就向下掉落,碰到地面减生命值,碰到小鸟或者飞船也会减生命值,碰到爱心则加生命值。

项目组成,主要类:

 

部分代码解析:

首先,要造成视觉上玩家一直是向前移动的,可以通过制作两张地图(近景和远景地图),两张地图以不同的速率向左运动,视觉上就是玩家在向右运动。

将用物理引擎来模拟整个飞行世界,这样游戏主角的飞行问题(漂浮状态),以及它与障碍物/奖励品之间的碰撞检测就很容易实现了。构建物理世界,构建钢体,检测碰撞详见:https://blog.youkuaiyun.com/Super_Cola/article/details/80824698

 

一》游戏中涉及到的四个对象:

①Player.lua:

创建钢体,设置掩码,设置生命值进度条。

Player涉及到的动画比较多,飞行,掉落,死亡,被撞击都有相应的动画,代码如下:

function Player:addAnimationCache()  --加入动画缓存
    local animationNames = {"flying", "drop", "die"}
    local animationFrameNum = {4, 3, 4}

    for i = 1, #animationNames do
        local frames = display.newFrames( animationNames[i] .. "%d.png", 1, animationFrameNum[i])
        local animation = display.newAnimation(frames, 0.5 / 8)
        animation:setDelayPerUnit(0.1)
        display.setAnimationCache(animationNames[i], animation)
    end
end

function Player:flying()
    transition.stopTarget(self)
    transition.playAnimationForever(self, display.getAnimationCache("flying")) --使用动画
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值