2015-05-19 33 views
1

我一直在環顧四周,找到包裹世界的機體邊緣的最佳方式。 我設法用這個話題來做到這一點: How do I make a Box2D wrap around world? 使用SetTransform()我可以讓它出現在另一個X/Z端。用特定的定製環繞世界的邊緣

現在讓我們假設我有一個對象,例如一個簡單的盒子10x10。 如果盒子的一半超出Y的上邊緣,我希望超出的部分會出現在盒子的另一部分上方,而盒子的其他部分仍然位於上方,以便留在那裏。 總結我希望有一個「真正的包裹以防萬一用這樣的邊緣在老遊戲做 我希望我是不夠清楚......

編輯: 我添加了一個圖片來解釋我的意思: enter image description here

由於

回答

0

最後我用Google搜索了一下發現這篇文章團結:

http://gamedevelopment.tutsplus.com/articles/create-an-asteroids-like-screen-wrapping-effect-with-unity--gamedev-15055

在Box2D的我創建在文章中定義的被positionned 8家鬼機構。

在Box2D期間,我添加了一些邏輯來檢查我的原始身體位置。 當它轉到邊緣時,鬼體出現在另一邊。它也適用於當原始機體進入一個通道時。每個邊緣會出現4個鬼魂屍體。

0

我還沒有使用的Box2D但我已經在處理之前解決了這個問題,希望在邏輯容易

轉換加工的矩形被繪製爲rect(x, y, rectangleWidth, rectangleHeight)位置x,y它代表矩形的左上角。該矩形的寬度和高度點右和從x向下和y分別

的想法是通常繪製矩形除非底部將是離視區的底部邊緣(因爲矩形的高度指向下基於y)。如果矩形是關閉視口的底部邊緣,那麼你不是畫兩個部分的矩形

在下面height的代碼是你的視口的高度

if (y < height-10) 
    rect(x, y, 10, 10); // Normal condition, entire rectangle 
else { 
    rect(x, 0, 10, 10-(height-y)); // Top partial rectangle 
    rect(x, y, 10, height-y); // Bottom partial rectangle 
} 
+0

簡單而好主意。但是在Box2D中處理一個「body」的自定義繪製非常困難。實際上有人指出我使用2個box2d「body」,並以更好的方式處理顯示 – vsidou