Quick Cosos2Dx技术(一)——修改helloWord

1、修改输出文字:
 在scripts/app/scenes/MainScene.lua中修改即可。
2、scripts/config.lua详解
此文件是Quick中用于设置屏幕适配参数的脚本。
DEBUG:此参数用于设置Quick工程的调试信息状态。0表示关闭调试信息,1表示打印少量调试信息,2表示打印标准调试信息。
DEBUG_FPS:是否显示FPS信息
DEBUG_MEM:是否要每10秒钟打印一次内存信息
LOAD_DEPRECATED_API: 是否加载已经废弃了的API
LOAD_SHORTCODES_API:是否加载短代码
CONFIG_SCREEN_ORIENTATION:设置屏幕方向。
CONFIG_SCREEN_WIDTH: 屏幕宽度,横屏时是屏幕高度
CONFIG_SCREEN_HEIGHT::屏幕高度,横屏时是屏幕宽度
CONFIG_SCREEN_AUTOSCALE: 屏幕适配的方式,比如FIXED_WIDTH和FIXED_HEIGHT 
3、添加背景图片
在res文件夹下添加image文件夹,在image文件夹中放入background.png。然后在MainScene.lua文件的ctor()中添加下面两行代码:
local background = display.newSprite("image/background.png", display.cx, display.cy)
self:addChild(background)
4、添加游戏角色
在scripts/app下添加一个roles文件夹,在roles下添加一个Player.lua文件,在Player.lua文件中写入如下内容:
local Player = class("Player", function()
    local sprite = display.newSprite("image/player.png")
    return sprite
end) 
function Player:ctor() 
end
return Player
打开MainScene.lua文件,在MainScenen:ctor()中添加下面代码:
self.player = Player.new()
self.player:setPosition(display.left + self.player:getContentSize().width/2, display.cy)
self:addChild(self.player)
在MainScene.lua文件的开头加上
local Player = import("..roles.Player")
最后将player.png添加到相应位置即可。

以下内容介绍如何向一个角色添加动作

5、在scripts/app/roles下新建一个lua文件,Player.lua添加动画函数
function Player:addAnimation()
    local animationNames = {"walk", "attack", "dead", "hit", "skill"}
    local animationFrameNum = {4, 4, 4, 2, 4}
    for i = 1, #animationNames do
        local frames = display.newFrames("player1-" .. i .. "-%d.png", 1, animationFrameNum[i])
        local animation = display.newAnimation(frames, 0.2)
        display.setAnimationCache("player1-" .. animationNames[i], animation)
    end
end
和位置移动函数,此函数供MainScene.lua的回调函数addTouchLayer()调用
function Player:walkTo(pos, callback)
    local function moveStop()
        transition.stopTarget(self)
        if callback then
            callback()
        end
    end
    if self.moveAction then
        self:stopAction(self.moveAction)
        self.moveAction = nil
    end
    local currentPos = CCPoint(self:getPosition())
    local destPos = CCPoint(pos.x, pos.y)
    local posDiff = cc.PointDistance(currentPos, destPos)
    self.moveAction = transition.sequence({CCMoveTo:create(5 * posDiff / display.width, CCPoint(pos.x,pos.y)), CCCallFunc:create(moveStop)})
    transition.playAnimationForever(self, display.getAnimationCache("player1-walk"))
    self:runAction(self.moveAction)
    return true
end
并将addAnimation()添加到Player的ctor()中
function Player:ctor()
    self:addAnimation()
end
注意,display.newFrames("player1-" .. i .. "-%d.png", 1, animationFrameNum[i]), display.newFrames返回的是一个SpriteFrames。这个函数加载的资源只能是来自AnimationCache。我们可以通过TexturePacker工具将一系列的图片生成imgNames.plist和imgNames.pvr.ccz文件。并在scripts/app/MyApp.lua的 run()函数中加载资源:
display.addSpriteFramesWithFile("image/role.plist", "image/role.pvr.ccz");
6、在
scripts/app/scenes/ MainScene.lua中写好点击时间监听函数
function MainScene:addTouchLayer()
    local function onTouch(eventName, x, y)
        if eventName == "began" then
            self.player:walkTo({x=x,y=y})
        end
    end
    self.layerTouch = display.newLayer()
    self.layerTouch:addNodeEventListener(cc.NODE_TOUCH_EVENT, function(event)
        return onTouch(event.name, event.x, event.y)
    end)
    self.layerTouch:setTouchEnabled(true)
    self.layerTouch:setPosition(ccp(0,0))
    self.layerTouch:setContentSize(CCSizeMake(display.width, display.height))
    self:addChild(self.layerTouch, -5)
end
并在
ctor()中运行此监听函数
 
self:addTouchLayer()
至此,我们就可以将一个移动的动作添加到了一个角色。

 
 
 




 
 

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值