登录界面:
游戏场景:
玩法:点击屏幕时,玩家向上运动,不点击就向下掉落,碰到地面减生命值,碰到小鸟或者飞船也会减生命值,碰到爱心则加生命值。
项目组成,主要类:
部分代码解析:
首先,要造成视觉上玩家一直是向前移动的,可以通过制作两张地图(近景和远景地图),两张地图以不同的速率向左运动,视觉上就是玩家在向右运动。
将用物理引擎来模拟整个飞行世界,这样游戏主角的飞行问题(漂浮状态),以及它与障碍物/奖励品之间的碰撞检测就很容易实现了。构建物理世界,构建钢体,检测碰撞详见: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")) --使用动画