? iOS Game一般屏幕都是橫著的,那么當屏幕豎著的時候會發(fā)生什么。杯具發(fā)生了缔恳,坐標發(fā)生問題了。
? 當橫屏時坐標原點為左下角(以下都在Game模板下)洁闰,此時的大小為1024*768歉甚,而這個大小與iPad Air的大小相同,為什么是這個大小呢(也許蘋果公司希望我們?nèi)耸忠粋€ipad來玩游戲扑眉,而不是拿著手機)纸泄。當你使用其他尺寸的設備時(比如iPhone),scene的size并未發(fā)生改變腰素,這意味著什么聘裁?也就是說,當你在scene中創(chuàng)建一個100*100的正方形的時候弓千,它顯示在屏幕上確是一個長方形衡便。
? 好的,接下來來到我們的正題——當屏幕豎著的時候發(fā)生什么了洋访。好的镣陕,我在GameScene類中添加以下代碼
我依次觸摸左下角、左上角姻政、右下角茁彭、右上角(我使用5s的模擬器)輸出坐標如下
發(fā)現(xiàn)了嗎?最左邊的坐標并不是從0開始扶歪,height也不是想象中的1024,到底發(fā)生什么了摄闸?我們可以看到寬的坐標大概從 297開始到727結束善镰,而高則是從0到768。對于高我們很容易理解年枕,是原本橫屏時的高拉伸到豎屏的高炫欺,這很容易理解,在Game模板中高就是768個point(點)(類似概念)熏兄,也許在橫屏時一個點代表一個像素品洛,而豎屏時一個點代表兩個像素树姨。那么既然高是拉伸的話,寬就是把點壓縮了吧桥状,但是我們殘忍的發(fā)現(xiàn)不是的C本尽!寬的左下角x坐標并不是從0開始辅斟,而是大概從297開始转晰。這是為什么呢,我再次驗證了橫屏時的坐標點
果然發(fā)現(xiàn)問題了酵幕,寬的坐標是從0到1024這沒有問題扰藕,但是高的坐標則是從97到668。這到底是為什么芳撒?(我也不知道~~~~~~~~~~~)
? 總結一下:橫屏時的寬對應豎屏時的高邓深,這沒有問題。而橫屏時的高和豎屏時的寬則超出屏幕番官。具體為什么庐完,也許和設計模式有關吧,若是有大神看到此文章徘熔,又恰好知道這個問題门躯,一定請不吝賜教。
? 那么如何解決這個問題呢酷师,也就是使寬變成從0到1024讶凉,而高變成從0到768。我的辦法是當進入GameScene時瞬間進入另一個Scene山孔,而將另一個Scene的size設置成self.size懂讯。在工程中新建一個類,類繼承自SKScene台颠,起名為PlayScene褐望,然后在GameScnene中寫下以下代碼
那么當你進入GameScene后瞬間又轉(zhuǎn)到PlayScene中,而PlayScene的坐標則是從0—1024串前,0-768瘫里。
(以上所有言論純屬小白的探索,歡迎大神嘲諷)