cocos2d-x getVisibleSize , getVisibleOrigin 和坐标位置

getWinSize : 获取设备屏幕大小.

getVisibleSize:获得视口(可视区域)的大小,若是DesignResolutionSize跟屏幕尺寸一样大,则getVisibleSize便是getWinSize。

getVisibleOrigin:获得可视区域的出发点坐标,在处理相对位置时,确保节点在不同分辨率下的位置一致。

Cocos2D-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系。该坐标系原点在屏幕左下角,x轴向右,y轴向上。

经简单测试:

1 .以480*320 为例,

在iphone4/iphone4s上,调用getVisibleSize() 获取的大小为(480,320);调用getVisibleOrigin() 获取的大小为(0,0);

在iphone5s(1130*640)上,调用getVisibleSize() 获取的大小为(480,270)(得到了相应的缩放);调用getVisibleOrigin() 获取的大小为(0,24.);

这对于设置控件的位置有些帮助。

2.控件位置,在cocos2d-x中anchorpoint和position紧密联系,

//获取坐标系界面的屏幕可见区域
    Size visibleSize = Director::getInstance()->getWinSize();
    //获取屏幕大小
    Size visibleSize1 = Director::getInstance()->getVisibleSize();//表示获得视口(可视区域)的大小,如果DesignResolutionSize跟屏幕尺寸一样大,则getVisibleSize等于getWinSize。
    //原点位置
    Point origin = Director::getInstance()->getVisibleOrigin();//表示可视区域的起点坐标,这在处理相对位置的时候非常有用,确保节点在不同分辨率下的位置一致
    //创建一个关闭按钮,参数分别为,正常状态显示的图片,选中状态的图片,操作调用的方法即调用MainScene的menuCloseCallback方法
    auto closeItem = MenuItemImage::create("setting.png",
                                           "setting.png",
                                           CC_CALLBACK_1(MainScene::menuCloseCallback, this));
    //设置关闭按钮的位置为视图的右下方
    closeItem->setPosition(origin);//适应不同分辨率,以AnchorPoint(Vec2(0, 0))为例,位置为左下角。
    closeItem->setAnchorPoint(Vec2(0, 0));
    closeItem->setColor(Color3B(250, 100, 0));
    closeItem->setContentSize(Size(43,43));

auto menu = Menu::create(closeItem, NULL);

menu->setPosition(Point::ZERO);

//这里相当于把menu作为父view,而closeItem作为subview ,而subview的closeItem的位置是相对于menu的position的相对位置。以这里为例,由于未设置,menu的默认大小为getWinSize,menu的默认anchorpoint为(0.5,0.5),menu的position由于为(0,0),所以closeItem的位置为(0,0),假设menu的position由于为(240,160),则closeItem的位置为(0 + 240,0 + 160),
    
    //把菜单添加到层中
    this->addChild(menu, 1);
    
    Sprite *visibleS = Sprite::create("setting.png" , Rect(origin,44,44));//这里的origin保证了在不同分辨率的情况下(setAnchorPoint(Vec2(0, 0))),该精灵始终处于左下角。
    visibleS->setAnchorPoint(Vec2(0, 0));
    visibleS->setColor(Color3B(100, 250, 0));
    this->addChild(visibleS);

相关链接:

http://www.tairan.com/archives/3367/

http://blog.csdn.net/lnb333666/article/details/16886623

原文地址:https://www.cnblogs.com/AndyChen1/p/9030603.html

时间: 2024-10-28 20:54:26

cocos2d-x getVisibleSize , getVisibleOrigin 和坐标位置的相关文章

MFC中状态栏显示鼠标坐标位置

原文:MFC中状态栏显示鼠标坐标位置,蝈蝈 1,利用MFC向导创建一个应用工程ewq. 2,打开ResourceView,右击Menu菜单,插入Menu,在空白处双击,Caption中填入Point. 3,为Point设置下拉菜单,ID为ID_INDICATOR_POINT:Caption为point:Prompt为X:XXXX,Y:YYYY. 4,打开MainFrm.cpp,在indicators数组中的第二个位置添加ID_INDICATOR_POINT. 5,将MainFrm中的成员变量m_

dom 鼠标事件中的坐标位置

1. 客户区坐标位置 鼠标事件都是在浏览器视口中的特定位置上发生的.这个位置信息保存在事件对象的 clientX 和 clientY 属性中.所有浏览器都支持这两个属性,它们的值表示事件发生时鼠标指针在视口中的水平 和垂直坐标.这些值中不包括页面滚动的距离,因此这个位置并不表示鼠标在页面上的位置. 2. 页面坐标位置 通过客户区坐标能够知道鼠标是在视口中什么位置发生的,而页面坐标通过事件对象的 pageX 和 pageY 属性,能告诉你事件是在页面中的什么位置发生的.换句话说,这两个属性表示鼠标

c# asp.net 鼠标改变控件坐标位置,更改控件坐标,注册表保存读取,打印,查找局域网内打印机等等收集

界面虽然被我弄的很难看,但功能还可以 里边注册表的路径自己设置一下,或者加一个创建注册表的语句,不然会报错 前台: Html代码   <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="FPSZ.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML

JS事件(四)坐标位置

1.客户区坐标位置  (相对于客户端视口,而无关浏览器缩放) clientX与clientY:表示事件发生时鼠标在视口的坐标,不包括页面滚动距离,因此不代表鼠标在页面上的位置. 2.页面坐标位置 pageX与pageY:包括页面滚动距离,代表鼠标在页面上的位置. 无滚动时,clientX==pageX,clientY==pageY 3.屏幕坐标位置 screenX与screenY:鼠标指针相对于整个屏幕的坐标位置 var div=document.getElementById("div"

微信JS-SDK坐标位置转换为百度地图坐标

微信JS-SDK开发过程中,使用getLocation获取坐标位置,如何将微信获取的坐标直接应用到百度地图中,显示以下效果: 说明:红色图标是从微信转换过来的位置,蓝色图标是周边位置.首先从微信开发流程讲解. 1.微信JS-SDK开发文档 首先进入官网的帮助文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN 可对文档进行详细的研读,要获取位置信息,分以下步骤:

js获取div相对屏幕的坐标位置

1:div相对屏幕的坐标位置 function getDivPosition(div){ var x = div.getBoundingClientRect().left; var y = div.getBoundingClientRect().top; return {x:x,y:y}; } 参数传js原生对象 getDivPosition($('#div0')[0]).x getDivPosition($('#div0')[0]).y  

坐标位置小结

设置一个有滚动条的页面 css body { height: 1000px; } #div1 { height: 300px; width: 300px; background: red; } js var div = document.getElementById('div1'); window.onclick = function(e) { //若document.body小于视区,点击超出的位置就无法获取.而window可以 var e = e || window.event; // al

企业大数据管理系统,支持手机定位上传,后台地图查看坐标位置

通过爬虫采集工商数据,通过地址转换成坐标位置,并在地图上展示出来,大数据系统 手机支持上传公司信息 方便业务员查看附近客户,拜访客户,扫街,陌拜,记录客户信息 1.首页 2.全城企业分布 3. 3.手机展示 浏览地址:http://map.lywenkai.cn 需要登录或购买平台,请致电:17115055777 原文地址:https://www.cnblogs.com/blogzys/p/11614835.html

Get Window Position关键字——获取当前页面的坐标位置,先返回横坐标 X,再返回纵坐标 Y——不需要接收任何参数

Get  Window  Position关键字——获取当前页面的坐标位置,先返回横坐标 X,再返回纵坐标 Y——不需要接收任何参数 ============================================================================================== Open Browser                              http://www.baidu.com