quick-cocos2d-x之testlua之VisibleRect.lua
2013-10-16 19:07
274 查看
require "extern" --这个类找到了可视区域的9个点的坐标:左上、上的中点、右上、左的中点、左下、下的中点、右下、右的中点。一般用于使用相对坐标的场合,解决自适应屏幕的问题 --改写自VisibleRect.cpp VisibleRect = class("VisibleRect") VisibleRect.__index = VisibleRect --CCRect VisibleRect::s_visibleRect; --创建一个CCRect实例:s_visibleRect(初始高、宽都是0) VisibleRect.s_visibleRect = CCRect:new() --[[ void VisibleRect::lazyInit() { if (s_visibleRect.size.width == 0.0f && s_visibleRect.size.height == 0.0f) { CCEGLView* pEGLView = CCEGLView::sharedOpenGLView(); s_visibleRect.origin = pEGLView->getVisibleOrigin(); s_visibleRect.size = pEGLView->getVisibleSize(); } } ]] function VisibleRect:lazyInit() if (self.s_visibleRect.size.width == 0.0 and self.s_visibleRect.size.height == 0.0) then --sharedOpenGLView:get the shared main open gl window local pEGLView = CCEGLView:sharedOpenGLView(); self.s_visibleRect.origin = pEGLView:getVisibleOrigin(); self.s_visibleRect.size = pEGLView:getVisibleSize(); end end --返回一个CCRect,就是可视区域 function VisibleRect:getVisibleRect() self:lazyInit(); -- return CCRectMake(s_visibleRect.origin.x, s_visibleRect.origin.y, s_visibleRect.size.width, s_visibleRect.size.height); return CCRectMake(self.s_visibleRect.origin.x, self.s_visibleRect.origin.y, self.s_visibleRect.size.width, self.s_visibleRect.size.height); --CCRectMake,输入坐标、长宽,输出一个CCRect end function VisibleRect:left() self:lazyInit(); return ccp(self.s_visibleRect.origin.x, self.s_visibleRect.origin.y+self.s_visibleRect.size.height/2); end function VisibleRect:right() self:lazyInit(); return ccp(self.s_visibleRect.origin.x+self.s_visibleRect.size.width, self.s_visibleRect.origin.y+self.s_visibleRect.size.height/2); end function VisibleRect:top() self:lazyInit(); return ccp(self.s_visibleRect.origin.x+self.s_visibleRect.size.width/2, self.s_visibleRect.origin.y+self.s_visibleRect.size.height); end function VisibleRect:bottom() self:lazyInit(); return ccp(self.s_visibleRect.origin.x+self.s_visibleRect.size.width/2, self.s_visibleRect.origin.y); end function VisibleRect:center() self:lazyInit(); return ccp(self.s_visibleRect.origin.x+self.s_visibleRect.size.width/2, self.s_visibleRect.origin.y+self.s_visibleRect.size.height/2); end function VisibleRect:leftTop() self:lazyInit(); return ccp(self.s_visibleRect.origin.x, self.s_visibleRect.origin.y+self.s_visibleRect.size.height); end function VisibleRect:rightTop() self:lazyInit(); return ccp(self.s_visibleRect.origin.x+self.s_visibleRect.size.width, self.s_visibleRect.origin.y+self.s_visibleRect.size.height); end function VisibleRect:leftBottom() self:lazyInit(); return self.s_visibleRect.origin; end function VisibleRect:rightBottom() self:lazyInit(); return ccp(self.s_visibleRect.origin.x+self.s_visibleRect.size.width, self.s_visibleRect.origin.y); end
相关文章推荐
- quick-cocos2d-lua 中动画cc.Rect的总结
- quick-cocos2d-x之testlua之mainMenu.lua
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- 谈论quick-cocos2d-x和cocos2d-x lua了解差异
- quick-cocos2d-x endToLua 退出会卡死
- quick-cocos2d-x的热更新机制实现<四>update包(lua)(中)
- cocos2d-x之testlua学习
- [置顶] quick-cocos2d-x 3.3 final 中cc.CardinalSplineTo:create导出到lua
- Cocos2d-X 中quick----lua的跳转场景的实现
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- quick-cocos2d-x开发环境Lua for IntelliJ IDEA的安装
- 【Quick-COCOS2D-X 3.3 如何绑定自定义类至Lua之四】使用绑定C++至Lua的自定义类
- [quick-cocos2d-x lua学习] 框架详细介绍(一)
- [QuickX]xcode运行Quick-cocos2d-x项目时自动更新lua资源文件
- 【COCOS2DX-LUA 脚本开发之八】使用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- 【COCOS2DX-LUA 脚本开发之八】不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- quick-cocos2d-x的热更新机制实现<四>update包(lua)(下)
- 【好文】在winXP+Eclipse中搭建quick-cocos2d-x的lua开发环境
- [QuickX]xcode运行Quick-cocos2d-x项目时自动更新lua资源文件
- 使用VS插件在VS2012/2013上编辑和调试Quick-Cocos2d-x的Lua代码