2014-09-03 39 views
0

我不知道如何最好地描述標題中的這個問題,但我會展示你的照片來說明我的意思。對象是通過關節定位

This is the problem I am having

This is what I'm trying to do

(1)圖片1顯示了我有問題

(2)圖像2顯示了什麼,我想要的目的。

- 問題 - 正如你所看到的,我正在試圖使3個塊與尖峯的例外排成一線。當我把它放在電暈中時,它基本上使圖像按高度對齊。

這是我的產卵功能:

function createBlock(event) 
    b = display.newImageRect("images/Spike.png", 37,80) 
    b.x = display.contentWidth + 100 
    b.y = math.random(2) == 1 and display.contentCenterY -75 or display.contentCenterY +40 
    b.rotation = math.random(2) == 1 and 0 or 180 
    b.name = 'block' 
    physics.addBody(b, "static", physicsData:get("Spike")) 
    blocks:insert(b) 
end 

編輯:

function check(event) 
    if b.rotation == 180 then 
    b.y = math.random(2) == 1 and display.contentCenterY - 80 or display.contentCenterY + 30 
    end 
end 
+0

只需檢查變量的「向上或向下」旋轉方式,並相應地將其中一個進一步向上/向下移動。 – 2014-09-03 11:44:59

回答

0

如果對象的高度是H,尖峯的高度是S(3塊的這樣的高度是H - S),並且您將它們當前定位在Y處,Y朝着屏幕底部增加,並且對象的原點位於最底部塊(相反尖峯)的底部,並且它們的默認方向爲尖峯,則:

  • 定位在Y + H處加標的塊;它們尖峯的尖端將位於Y處,並且尖峯的底部位於Y + S處。在012處將尖端朝下Y + S處的塊放置,然後旋轉180°。塊的最頂部邊緣將在Y + S,這是你想要的。

如果第一段中的任何一個條件不同,您將不得不作出相應的調整,但希望這會顯示如何弄清楚。

更新:

可能是一個更好的辦法是錨點移動,從而它在廣場中間的中心。默認情況下,錨點位於0.5,因此將其放置在第2個和第3個方塊之間(假設距離最遠的方塊是「第一個方塊」)。由於您的塊由4個單元(3個正方形和一個釘),你可以這樣做:

function createBlock(event) 
    local H = 80 
    local b = display.newImageRect("images/Spike.png", 37, H) 
    b.x = display.contentWidth + 100 -- NOTE: weird, doesn't this put the obj off screen? 
    local cellH = H/4 -- assume all four cells in a Block have this height 
    b.anchorY = 0.5 - 0.25/2 -- each cell is 0.25 of height, need half that, away from spike 
    b.rotation = math.random(2) == 1 and 0 or 180 -- will rotate around the new anchorY 
    local posY = display.contentCenterY - 75 
    b.y = math.random(2) == 1 and posY or posY + 115 
    b.name = 'block' 
    physics.addBody(b, "static", physicsData:get("Spike")) 
    blocks:insert(b) 
end 

注意b.anchorY可能必須b.anchorY = 0.5 + 0.25/2取決於你如何建立你的形象,但它應該是+或 - 1/8。

+0

嗨,大家好,不知道我是否以最有效的方式做到了這一點,但在閱讀您的回覆之後,我創建了一個函數,該函數具有每當對象翻轉(180,尖峯)時稍微增加其位置的條件。代碼添加到問題中。 – 2014-09-04 02:22:30

+0

@DipeshDhanji查看更新,hth – Schollii 2014-09-04 03:08:13

+0

這太好了,現在效果更好!感謝Schollii的幫助。 ps:對象被放置在屏幕外,以便它們滾動進入遊戲。 – 2014-09-04 12:50:04