iOS Game 模板中座標問題

來源:互聯網
上載者:User

   iOS Game一般螢幕都是橫著的,那麼當螢幕豎著的時候會發生什麼。杯具發生了,座標發生問題了。

  當橫屏時座標原點為左下角(以下都在Game模板下),此時的大小為1024*768,而這個大小與iPad Air的大小相同,為什麼是這個大小呢(也許蘋果公司希望我們人手一個ipad來玩遊戲,而不是拿著手機)。當你使用其他尺寸的裝置時(比如iPhone),scene的size並未發生改變,這意味著什麼?也就是說,當你在scene中建立一個100*100的正方形的時候,它顯示在螢幕上確是一個長方形。

  好的,接下來來到我們的正題——當螢幕豎著的時候發生什麼了。好的,我在GameScene類中添加以下代碼

  這段函數能夠輸出在螢幕中觸摸點的座標

  我依次觸摸左下角、左上方、右下角、右上方(我使用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。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.