FrameSize、WinSize、VisibleSize、VisibleOrigin概念理解
2016-06-13 17:24
316 查看
FrameSize就是屏幕的实际分辨率,这是不变的,比如我用的盖世三的手机分辨率为1280x720,这就是盖世三的FrameSize。
注意这个FrameSize很容易理解成屏幕的长宽多少,其实不是,分辨率和实际的长宽没有必然联系。
比如:
盖世3的尺寸(长宽)为4.8寸,分辨率为1280x720
盖世4的尺寸(长宽)为4.99寸,分辨率为1920x1080
所以在设计游戏时,只考虑屏幕的分辨率即可,不用考虑屏幕的实际长宽。
WinSize就是设计分辨率,相当于游戏设计的逻辑大小,可以这样理解,上面的FrameSize就是画框,这里的WinSize就是画布。
VisibleSize就是画布显示在画框中的部分,注意:它的大小是用WinSize来表示的。
VisibleOrigin就是VisibleSize在画框中的左下角坐标点,注意也是用WinSize来表示的。
比如:
FrameSize:假设为width = 720, height = 420
WinSize:假设为width = 360, height = 240
在kResolutionNoBorder模式下,实例图像如下:
此时的VisibleSize就是HIKJ,此时的VisibleSize为Width = 360, height = 210。
因为FrameSize的长宽比为 720 :420 = 360 :210,而我们的设计分辨率为 360 :240,所以在kResolutionNoBorder模式下,被画框截下来的设计分辨率
就为360:210
此时的VisibleOrigin就是在VisibleSize中的K,坐标为(0,15),右图中可以看出 15 = (240-210)/2
自我总结:
其实设计分辨率(WinSize)就是程序里面的逻辑画布大小,是我们需要去关注的东西,我们所有的绘图元素都是放在逻辑大小的画布上的。
至于设计分辨率显示到屏幕分辨率(FrameSize),是通过程序给我们的几种模式(kResolutionExactFit,kResolutionNoBorder,kResolutionShowAll,kResolutionFixedHeight,kResolutionFixedWidth)让我们去适配的,去决定画布的那些部分需要显示在画框中(手机屏幕)上。
注意这个FrameSize很容易理解成屏幕的长宽多少,其实不是,分辨率和实际的长宽没有必然联系。
比如:
盖世3的尺寸(长宽)为4.8寸,分辨率为1280x720
盖世4的尺寸(长宽)为4.99寸,分辨率为1920x1080
所以在设计游戏时,只考虑屏幕的分辨率即可,不用考虑屏幕的实际长宽。
WinSize就是设计分辨率,相当于游戏设计的逻辑大小,可以这样理解,上面的FrameSize就是画框,这里的WinSize就是画布。
VisibleSize就是画布显示在画框中的部分,注意:它的大小是用WinSize来表示的。
VisibleOrigin就是VisibleSize在画框中的左下角坐标点,注意也是用WinSize来表示的。
比如:
FrameSize:假设为width = 720, height = 420
WinSize:假设为width = 360, height = 240
在kResolutionNoBorder模式下,实例图像如下:
此时的VisibleSize就是HIKJ,此时的VisibleSize为Width = 360, height = 210。
因为FrameSize的长宽比为 720 :420 = 360 :210,而我们的设计分辨率为 360 :240,所以在kResolutionNoBorder模式下,被画框截下来的设计分辨率
就为360:210
此时的VisibleOrigin就是在VisibleSize中的K,坐标为(0,15),右图中可以看出 15 = (240-210)/2
自我总结:
其实设计分辨率(WinSize)就是程序里面的逻辑画布大小,是我们需要去关注的东西,我们所有的绘图元素都是放在逻辑大小的画布上的。
至于设计分辨率显示到屏幕分辨率(FrameSize),是通过程序给我们的几种模式(kResolutionExactFit,kResolutionNoBorder,kResolutionShowAll,kResolutionFixedHeight,kResolutionFixedWidth)让我们去适配的,去决定画布的那些部分需要显示在画框中(手机屏幕)上。
相关文章推荐
- Entity Framework 第三篇 实体特性声明
- [Javascript] MetaProgramming: function name
- Centos7静态IP的设置
- 数据库导入错误
- [置顶] MySQL server has gone away 问题的解决方法
- ubuntu16.04下安装mariadb
- 数据结构--哈夫曼树
- 实验7.6哈夫曼编码
- Swift-基础-3
- easyui combobox动态加载数据和设置默认值
- 面试题11 :O(1)删除单链表节点
- Jmeter--HTTPS请求
- 工作流引擎Oozie(二):coordinator
- tableView 代理与数据源的抽离,减少与 controller的耦合
- 欢迎使用CSDN-markdown编辑器
- Swift-基础-2
- Android Studio(AS)-->导入项目
- AD域控制器所有使用的端口明细列表
- msp430单片机通过串口向上位机发送浮点数
- 多线程编程注意点