|
|
@@ -69,7 +69,7 @@ function CreateScene()
|
|
|
staticSprite.sprite = sprite
|
|
|
|
|
|
-- Set move speed
|
|
|
- spriteNode.moveSpeed = Vector3(Random(-200.0, 200.0), Random(-200.0, 200.0), 0.0)
|
|
|
+ spriteNode.moveSpeed = { Random(-200.0, 200.0), Random(-200.0, 200.0) }
|
|
|
-- Set rotate speed
|
|
|
spriteNode.rotateSpeed = Random(-90.0, 90.0)
|
|
|
|
|
|
@@ -163,20 +163,23 @@ function HandleUpdate(eventType, eventData)
|
|
|
local halfHeight = graphics.height * 0.5
|
|
|
|
|
|
for _, spriteNode in ipairs(spriteNodes) do
|
|
|
- local position = spriteNode.position
|
|
|
+
|
|
|
+ local x, y, z = spriteNode:GetPositionXYZ()
|
|
|
local moveSpeed = spriteNode.moveSpeed
|
|
|
- local newPosition = position + moveSpeed * timeStep
|
|
|
- if newPosition.x < -halfWidth or newPosition.x > halfWidth then
|
|
|
- newPosition.x = position.x
|
|
|
- moveSpeed.x = -moveSpeed.x
|
|
|
+ local newPositionX = x + moveSpeed[1] * timeStep
|
|
|
+ local newPositionY = y + moveSpeed[2] * timeStep
|
|
|
+
|
|
|
+ if newPositionX < -halfWidth or newPositionX > halfWidth then
|
|
|
+ newPositionX = x
|
|
|
+ moveSpeed[1] = -moveSpeed[1]
|
|
|
end
|
|
|
|
|
|
- if newPosition.y < -halfHeight or newPosition.y > halfHeight then
|
|
|
- newPosition.y = position.y
|
|
|
- moveSpeed.y = -moveSpeed.y
|
|
|
+ if newPositionY < -halfHeight or newPositionY > halfHeight then
|
|
|
+ newPositionY = y
|
|
|
+ moveSpeed[2] = -moveSpeed[2]
|
|
|
end
|
|
|
|
|
|
- spriteNode.position = newPosition
|
|
|
+ spriteNode:SetPositionXYZ(newPositionX, newPositionY, z)
|
|
|
spriteNode:Roll(spriteNode.rotateSpeed * timeStep)
|
|
|
end
|
|
|
end
|