cocos-2dx 随记 通过锚点从右向左输出

这篇博客记录了使用Cocos2d-x引擎进行游戏开发时,如何通过锚点从右向左动态输出内容的过程。作者分享了个人在工作中的实践经验和解决思路,旨在作为个人成长的记录,同时也希望对读者有所帮助。

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

代码纯属工作中遇到问题,回家解析,次日在运用到工作中,算是人生记录,有无帮助希望大家勿喷。


local size = cc.Director:getInstance():getWinSize()



local GameScene = class("GameScene",function()
return cc.Scene:create()
end)


function GameScene:create()
local scene = GameScene.new()
scene:addChild(scene:createLayer())
return scene
end


function GameScene:ctor()


end


--创建层
function GameScene:createLayer()
cclog("GameScene init")
local layer = cc.Layer:create()


local label = cc.Label:createWithSystemFont("HelloWorld","Arial",26)
label:setPosition(cc.p(size.width/2,size.height/2+150))
    label:setAnchorPoint(1.0,1.0)
    label:setTextColor(cc.c4b(152,255,255,100))
layer:addChild(label)


local sprite = cc.Sprite:create("HelloWorld.png")
sprite:setPosition(cc.p(size.width/2,size.height/2))
layer:addChild(sprite)


    local function update(delta)
        local x,y = label:getPosition()
        label:setPosition(cc.p(x,y-2))
    end


    --开始事件调度
    layer:scheduleUpdateWithPriorityLua(update,0)


    local function onNodeEvent(tag)
        if tag == "exit" then
            --停止事件调度
            layer:unscheduleUpdate()
        end
    end
    layer:registerScriptHandler(onNodeEvent)


    self.label_1 = cc.CSLoader:createNode("res/Layer_1.csb")
    self.label_1:setPosition(self.label_1:getPositionX()-200, self.label_1:getPositionY())


    local num_front = self.label_1:getChildByName("num_front")
    local num_back = self.label_1:getChildByName("num_back")
    --local num_point = self.label_1:getChildByName("num_point")
    local wang = self.label_1:getChildByName("Text")


    local num = 1
    num_front:setString(tonumber(123))
    --num_point:setString(".")
    num_back:setString(tonumber(num))


    wang:setAnchorPoint(0,0.5)
    num_back:setPositionX(wang:getPositionX())
    
    local base = 0
    if tonumber(num) > 99 and tonumber(num) < 1000 then
        base = 3
    elseif tonumber(num) > 10 and tonumber(num) < 100 then
        base = 2
    elseif tonumber(num) > 0 and tonumber(num) < 10 then
        base = 1
    end


    --一个数字占10个像素
    num_front:setPositionX(num_back:getPositionX()-10*base)
     




    layer:addChild(self.label_1)




return layer
end


return GameScene
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值