簡體   English   中英

數學不適用於 Game Pieces 的大小和 position WRT 的容器“房間”的大小

[英]Math doesn't work for the size and position of Game Pieces WRT the size of their container "room"

我的 Game Pieces 的位置和大小,由CGPoint(..)CGRect(..)設置,在考慮所有 Game Pieces 周圍容器的寬度和高度時,對我來說沒有算術意義?

讓我用一個具體的例子來說明——

我稱周圍的容器為“房間”。

許多特定的游戲棋子之一=“搖滾”。

這是數學

roomWidth  = Double(UIScreen.main.bounds.width)
roomHeight = Double(UIScreen.main.bounds.height)

在縱向模式下:

roomWidth = 744.0
roomHeight = 1133.0

旋轉到橫向模式時:

roomWidth = 1133.0, 
roomHeight = 744.0

到目前為止一切順利..這是問題所在:

當我查看我的.sks文件時,“rock”及其相鄰游戲塊的寬度遠遠超過了 roomWidth; 例如,

岩石 + 槳 + 樹的寬度 = 507 + 768 + 998,這顯然超過了肖像或風景模式下房間的寬度——而且這個數學甚至沒有解決游戲碎片之間的分離問題。

最后的數學“瘋狂”查看我的.sks文件中指定的每個游戲塊的 swift xPos 值:

Room: xPos = 40, 
Rock: xPos = -390, 
Paddle: xPos = -259, 
Tree: xPos = 224

我無法理解這兩個高負數..對我來說,這意味着岩石和槳甚至不應該可見..嚴重脫離屏幕。

一個重要的補充 = 我確實將Autoresizing Mask設置為水平和垂直居中

自動調整蒙版

我需要在這里認真注入“智慧”。

sks 文件(SpriteKit 場景文件)的默認anchorPoint是 (0.5, 0.5)。 所以場景的原點 (0, 0) 被繪制在SKView的中心。 您可以在編輯 sks 文件時更改屬性檢查器中的錨點。 默認值意味着離原點不遠的負坐標將在SKView中可見。

場景還有一個scaleMode屬性,它決定了如果場景的大小與SKView的大小不匹配,場景是如何縮放的。 默認值為.fill ,這意味着視圖獨立縮放場景的軸,因此場景的size正好填滿視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM