cocos-lua test 学习之 VisibleRect.lua

本文档介绍了Cocos2d-x中用于获取OpenGL视图可见区域的两个关键函数:getVisibleOrigin()用于获取可见原点坐标,getVisibleSize()则用于获取可见区域的大小,皆以点为单位。

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

VisibleRect = class("VisibleRect")
VisibleRect.__index = VisibleRect


VisibleRect.s_visibleRect = cc.rect(0,0,0,0)

function VisibleRect:lazyInit()
    if (self.s_visibleRect.width == 0.0 and self.s_visibleRect.height == 0.0) then
        --[[
        local pEGLView = cc.EGLView:getInstance()
        local origin   = pEGLView:getVisibleOrigin()
        ]]--
        local director = cc.Director:getInstance()
        --以点为单位返回OpenGL视图的可见原点坐标
        local origin = director:getVisibleOrigin()
        --以点为单位返回OpenGL视图的可见大小
        local visibleSize = director:getVisibleSize()
        
        self.s_visibleRect.x = origin.x
        self.s_visibleRect.y = origin.y
        self.s_visibleRect.width  = visibleSize.width
        self.s_visibleRect.height = visibleSize.height
    end
end

function VisibleRect:getVisibleRect()
    self:lazyInit()
    return cc.rect(self.s_visibleRect.x, self.s_visibleRect.y, self.s_visibleRect.width, self.s_visibleRect.height)
end

function VisibleRect:left()
    self:lazyInit()
    return cc.p(self.s_visibleRect.x, self.s_visibleRect.y+self.s_visibleRect.height/2)
end

function VisibleRect:right()
    self:lazyInit()
    return cc.p(self.s_visibleRect.x+self.s_visibleRect.width, self.s_visibleRect.y+self.s_visibleRect.height/2)
end

function VisibleRect:top()
    self:lazyInit()
    return cc.p(self.s_visibleRect.x+self.s_visibleRect.width/2, self.s_visibleRect.y+self.s_visibleRect.height)
end

function VisibleRect:bottom()
    self:lazyInit()
    return cc.p(self.s_visibleRect.x+self.s_visibleRect.width/2, self.s_visibleRect.y)
end

function VisibleRect:center()
    self:lazyInit()
    return cc.p(self.s_visibleRect.x+self.s_visibleRect.width/2, self.s_visibleRect.y+self.s_visibleRect.height/2)
end

function VisibleRect:leftTop()
    self:lazyInit()
    return cc.p(self.s_visibleRect.x, self.s_visibleRect.y+self.s_visibleRect.height)
end

function VisibleRect:rightTop()
    self:lazyInit()
    return cc.p(self.s_visibleRect.x+self.s_visibleRect.width, self.s_visibleRect.y+self.s_visibleRect.height)
end

function VisibleRect:leftBottom()
    self:lazyInit()
    return cc.p(self.s_visibleRect.x,self.s_visibleRect.y)
end

function VisibleRect:rightBottom()
    self:lazyInit()
    return cc.p(self.s_visibleRect.x+self.s_visibleRect.width, self.s_visibleRect.y)
end

  • --以点为单位返回OpenGL视图的可见原点坐标 
    local origin = director:getVisibleOrigin()
  • --以点为单位返回OpenGL视图的可见大小 
    local visibleSize = director:getVisibleSize()
由于近段时间比较忙,所以就先选择了这一篇比较简单的进行学习(其实也就只有 director:getVisibleOrigin()和 director:getVisibleSize()两个函数而已。。),所以这一篇的质量相对较差。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值