手机
当前位置:查字典教程网 >编程开发 >IOS开发 >iOS Game 模板中坐标问题
iOS Game 模板中坐标问题
摘要:iOSGame一般屏幕都是横着的,那么当屏幕竖着的时候会发生什么。杯具发生了,坐标发生问题了。当横屏时坐标原点为左下角(以下都在Game模板...

iOS Game一般屏幕都是横着的,那么当屏幕竖着的时候会发生什么。杯具发生了,坐标发生问题了。

当横屏时坐标原点为左下角(以下都在Game模板下),此时的大小为1024*768,而这个大小与iPad Air的大小相同,为什么是这个大小呢(也许苹果公司希望我们人手一个ipad来玩游戏,而不是拿着手机)。当你使用其他尺寸的设备时(比如iPhone),scene的size并未发生改变,这意味着什么?也就是说,当你在scene中创建一个100*100的正方形的时候,它显示在屏幕上确是一个长方形。

好的,接下来来到我们的正题——当屏幕竖着的时候发生什么了。好的,我在GameScene类中添加以下代码

iOS Game 模板中坐标问题 三联

这段函数能够输出在屏幕中触摸点的坐标

我依次触摸左下角、左上角、右下角、右上角(我使用5s的模拟器)输出坐标如下

发现了吗?最左边的坐标并不是从0开始,height也不是想象中的1024,到底发生什么了?我们可以看到宽的坐标大概从 297开始到727结束,而高则是从0到768。对于高我们很容易理解,是原本横屏时的高拉伸到竖屏的高,这很容易理解,在Game模板中高就是768个point(点)(类似概念),也许在横屏时一个点代表一个像素,而竖屏时一个点代表两个像素。那么既然高是拉伸的话,宽就是把点压缩了吧,但是我们残忍的发现不是的!!宽的左下角x坐标并不是从0开始,而是大概从297开始。这是为什么呢,我再次验证了横屏时的坐标点

依次左下角、左上角、右下角、右上角

果然发现问题了,宽的坐标是从0到1024这没有问题,但是高的坐标则是从97到668。这到底是为什么?(我也不知道~~~~~~~~~~~)

总结一下:横屏时的宽对应竖屏时的高,这没有问题。而横屏时的高和竖屏时的宽则超出屏幕。具体为什么,也许和设计模式有关吧,若是有大神看到此文章,又恰好知道这个问题,一定请不吝赐教。

那么如何解决这个问题呢,也就是使宽变成从0到1024,而高变成从0到768。我的办法是当进入GameScene时瞬间进入另一个Scene,而将另一个Scene的size设置成self.size。在工程中新建一个类,类继承自SKScene,起名为PlayScene,然后在GameScnene中写下以下代码

那么当你进入GameScene后瞬间又转到PlayScene中,而PlayScene的坐标则是从0—1024,0-768。

【iOS Game 模板中坐标问题】相关文章:

IOS 改变键盘颜色代码

详解iOS游戏开发中Cocos2D的坐标位置关系

iOS10开发和Xcode 8新特性及常见问题解析

iOS中Xcode 8 日志输出乱码问题的解决方法

浅析iOS应用开发中线程间的通信与线程安全问题

ios8系统定位问题

iOS Game模板碰撞检测的一些细节

IOS中html5上传图片方向问题解决方法

详解iOS的Core Animation框架中的CATransform3D图形变换

iOS应用开发中SQLite的初步配置指南

精品推荐
分类导航