2016-04-26 12 views
1

Ich habe einen Tisch voller Feinde und einfach wollen sie über den Bildschirm über gameLoop bewegen, aber aus irgendeinem Grund scheint nichts zu arbeiten. Es ist wahrscheinlich eine einfache Lösung, aber ich habe versucht, es zu beheben, aber komme nirgendwohin. Wer weiß was ist?Transition.to Objekt nicht richtig bewegen - Corona SDK

gameLoop Funktion

local i 
for i = 1, #enemies do--.numChildren,1, -1 do 
    local blocks = enemies[i] 
    if blocks ~= nil and blocks.x ~= nil then 
     enemyRate = 2.0 + (0.1 * wave) 
     transition.to(blocks, { time=1500, x=300}) 
    end 
end 

Die Spawn Funktion

function spawnEnemy() 

local spawnData = { -- Easily store spawns in a table to make it easier to add new enemies later 

{name = "Blue", seq = "blueRect", frame = 3, imgSheet = imageSheetRectangle, seqData = sequenceDataRectangle}, 
{name = "Red", seq = "blueCross", frame = 1, imgSheet = imageSheetCross, seqData = sequenceDataCross}, 
{name = "Green", seq = "blueCirc", frame = 2, imgSheet = imageSheetCircle, seqData = sequenceDataCircle} 
} 

local xPos = display.contentWidth - 150 
local r = math.random(1, #spawnData) 

local sd = spawnData[r] -- get the spawn data for this enemy 

local s = display.newSprite(sd.imgSheet, sd.seqData) 
s.name = sd.name 
physics.addBody(s, { isSensor = true }) 
s:setSequence(sd.seq) 
s:setFrame(sd.frame) 
s.y = display.contentHeight - 400 
s.x = xPos 
enemies[#enemies+1] = s 
enemyGroup:insert(s) 
+0

Das sieht so aus, als würde es sie in eine statische 'x' Position von' 300' bewegen. Ist es das was du wolltest? Ist * irgendetwas * passiert, wenn das läuft? –

+0

Ich sehe hier kein Problem mit dem Code. Kannst du ein bisschen mehr von deinem Code verlinken? –

+0

Hey Leute, es ist sehr seltsam, dass nichts passiert. @EtanReisner: Ja, es ist ok für sie statische Werte zu sein, da sie zerstört werden, wenn sie sich vom Bildschirm entfernen. –

Antwort

1

In dieser verwandten Antwort: transition.to() doesn't work within a function and with a Runtime:addEventListener("enterFrame", method) listener in Corona/Lua können Sie ein ähnliches Problem sehen, wie ich oben erwähnt. Sie erstellen eine Animation genau so, wie sie gerade beginnt - es scheint so, als würde sie sich nicht bewegen. Wie oben erwähnt, wenn es zu deinem Spiel passt, beginne den Übergang, wenn du das Objekt spawnt; nicht jede Gameloop.

+0

Ich war gerade dabei, hier zu kommentieren, nachdem es aus gameLoop herausgenommen wurde, scheint es in der Spawn-Funktion gut zu funktionieren. Danke für die Hilfe Jungs –

Verwandte Themen