Browse Source

Replace Node.position with Node::GetPositionXYZ, make Lua sample run faster.

aster2013 11 years ago
parent
commit
1489f99e44
1 changed files with 13 additions and 10 deletions
  1. 13 10
      Bin/Data/LuaScripts/24_Urho2DSprite.lua

+ 13 - 10
Bin/Data/LuaScripts/24_Urho2DSprite.lua

@@ -69,7 +69,7 @@ function CreateScene()
         staticSprite.sprite = sprite
         staticSprite.sprite = sprite
 
 
         -- Set move speed
         -- 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
         -- Set rotate speed
         spriteNode.rotateSpeed = Random(-90.0, 90.0)
         spriteNode.rotateSpeed = Random(-90.0, 90.0)
 
 
@@ -163,20 +163,23 @@ function HandleUpdate(eventType, eventData)
     local halfHeight = graphics.height * 0.5
     local halfHeight = graphics.height * 0.5
 
 
     for _, spriteNode in ipairs(spriteNodes) do
     for _, spriteNode in ipairs(spriteNodes) do
-        local position = spriteNode.position
+        
+        local x, y, z = spriteNode:GetPositionXYZ()
         local moveSpeed = spriteNode.moveSpeed
         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
         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
         end
 
 
-        spriteNode.position = newPosition
+        spriteNode:SetPositionXYZ(newPositionX, newPositionY, z)
         spriteNode:Roll(spriteNode.rotateSpeed * timeStep)
         spriteNode:Roll(spriteNode.rotateSpeed * timeStep)
     end
     end
 end
 end