簡體   English   中英

如何獲得正方形的一角

[英]How to get corner of a square

大家好,我在spriteKit中遇到物理方面的麻煩,所以我決定自己做一個,而且需要弄個正方形的角。 我試過了

    _hero.position.x-_hero.size.width/2-_hero.size.height/2

我以為這給了我正方形的左下角,但是當我運行游戲時,它並沒有達到我的期望。 我正在執行2D“超級馬里奧星系”,這意味着我的玩家在小行星上盤旋運行,問題是,我需要將轉角位置放在if() ,以檢查例如右上角播放器的角大於一個正方形的左下角,在這種情況下,我將設置一個BOOL來告訴程序播放器在該正方形下,因為didBeginContact是越野車,所以我遇到了很多問題。 任何人的幫助都會很大。

PD:我留下了我的游戲示例,它仍然很原始,但是希望您喜歡這個概念,並且可以選擇接受任何反饋(好或壞)。

在此處輸入圖片說明

正方形將有一個原點和一個框架。 見下文。 它可能會更容易轉換 ,如果你正在努力尋找各個角落,從局部坐標系(方)於母公司的坐標系。

和物體的坐標

但是,我認為您的實際問題將與碰撞檢測有關。 在這種情況下, CGRect對每個對象進行CGRect ,然后使用CGRectIntersectsRect(rect1,rect2)查看它們是否相交

twodayslate提供了一些很好的信息,但是我想我要補充一點,直到最近我才知道有一些非常酷的CGRect API。 考慮一下這個矩形:

CGRect rect = CGRectMake(100, 100, 100, 200);

使用以下方法將返回一些方便的結果:

CGRectGetWidth(rect) --> 100
CGRectGetHeight(rect) --> 200
CGRectGetMaxX(rect) --> 200
CGRectGetMaxY(rect) --> 300

與此相比,大多數人使用:

rect.size.width
rect.size.height
rect.origin.x + rect.size.width
rect.origin.y + rect.size.height
rect.origin.x + rect.size.width

暫無
暫無

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

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