Cocos Creatorcocos creator 基础教程cocos 2dx

四 getBoundingBox,getContentSize

2017-11-05  本文已影响28人  亮亮同学

cocos2d-x技术群新群:117871561
c++技术交流群:593010226

这里不死抠cocos-lua组件的原理, 重在快速上手使用, 只针对快速开发,所以我尽量用简洁 易懂的 文笔去阐述。

在一个公司里能运用手上的知识 快速的完成一个功能才是最好的,也可已根据自己的能力和时间 去选择是不是要深入的了解这些组件及功能。

当然我的文章 也会根据我对cocos2d-lua的了解程度 不断更新,完善,希望能帮助在职场打拼的朋友从菜鸟到大神

1,总述

getBoundingBox 中得 Size.width .height 显示图片真实大小 (考虑缩放和不缩放)
getContentSize 纹理图片大小
图片有缩放 就用 getBoundingBox ,不考虑缩放用 getContentSize 这样次能获得想要的效果

2,示例代码(主要看这条)

getBoundingBox

--假设x.y是某个触摸点
lcoal x = 100
local y = 200

local image = cc.Sprite:create("xx.png")
--该图片放大10倍
image:setScale(10)
--获取该图片放大后的大小
lcoal rec = image:getBoundingBox()
--判断触摸点是否在该范围内 不在 则隐藏图片
if rec
then 
  if not cc.rectContainsPoint(rec,cc.p(x,y))
   then
      image:setVisible(false)
   end
end

getContentSize

--假设x.y是某个触摸点
lcoal x = 100
local y = 200

local image = cc.Sprite:create("xx.png")
--获取该图片放大后的大小
lcoal rec = image:getContentSize()
--判断触摸点是否在该范围内 不在 则隐藏图片
if rec
then 
  if not cc.rectContainsPoint(rec,cc.p(x,y))
   then
      image:setVisible(false)
   end
end

3,项目实例(判断菜单按钮的显示)

--初始化Csb
function GameViewLayer:_initCsbRes()
--点击事件
--创建一个层
    local touch = display.newLayer()
        :setLocalZOrder(10)
        :addTo(self)
--打开该层的触发开关
    touch:setTouchEnabled(true)
--注册事件 参数为回调函数此处用的是lua的匿名函数,此函数有三个参数 触摸按钮的标签,横坐标,纵坐标
    touch:registerScriptTouchHandler(function(eventType, x, y)
        return self:onTouch(eventType, x, y)
    end)
end

--处理回调
function GameView:onTouch(evenType,x,y)
if eventType == "began" then
        if self._MenuCtrl.SHOWN == true then
            local rc = self._MenuCtrl:getBoundingBox()
            if rc then
                if not cc.rectContainsPoint(rc,cc.p(x,y)) then
                    self:showMenu(false)
                    return true
                end
            end
        end
    end

上一篇下一篇

猜你喜欢

热点阅读