Sfoglia il codice sorgente

Create Sprite and Cursor using Constructor.
String compare operator to String::Eq function.

Aster Jian 12 anni fa
parent
commit
4dbf6197e0
1 ha cambiato i file con 70 aggiunte e 70 eliminazioni
  1. 70 70
      Bin/Data/LuaScripts/SpriteTest.lua

+ 70 - 70
Bin/Data/LuaScripts/SpriteTest.lua

@@ -2,119 +2,119 @@ local numSprites = 100
 local sprites = {}
 local speeds = {}
 
+local context = GetContext()
+
 local cache = GetCache()
 local engine = GetEngine()
 local graphics = GetGraphics()
 local ui = GetUI()
 
 function Start()
-	if engine.headless then
-		ErrorDialog("SpriteTest", "Headless mode is not supported. The program will now exit.")
+    if engine:IsHeadless() then
+        ErrorDialog("SpriteTest", "Headless mode is not supported. The program will now exit.")
         engine:Exit()
         return
-	end
-	
+    end
+    
     InitUI()
-	InitSprites()
-	
-	SubscribeToEvent("Update", "HandleUpdate")
-	SubscribeToEvent("KeyDown", "HandleKeyDown")
+    InitSprites()
+    
+    SubscribeToEvent("Update", "HandleUpdate")
+    SubscribeToEvent("KeyDown", "HandleKeyDown")
 end
 
 function Stop()
-	sprites = nil
-	speeds = nil
 end
 
 function InitUI()
-	local uiStyle = cache:GetXMLFile("UI/DefaultStyle.xml")
-	
-	local debugHud = engine:CreateDebugHud()
+    local uiStyle = cache:GetXMLFile("UI/DefaultStyle.xml")
+    
+    local debugHud = engine:CreateDebugHud()
     debugHud:SetDefaultStyle(uiStyle)
     debugHud:SetMode(DEBUGHUD_SHOW_ALL)
-	
-	local console = engine:CreateConsole()
+    
+    local console = engine:CreateConsole()
     console:SetDefaultStyle(uiStyle)
-	
-	local cursor = Cursor()	
-    cursor:SetStyleAuto(uiStyle)	
-	cursor:SetPosition(graphics:GetWidth() / 2, graphics:GetHeight() / 2)
-	ui:SetCursor(cursor)
-	
-	if (GetPlatform() == "Android" or GetPlatform() == "iOS") then
+    
+    local cursor = Cursor:new(context)
+    cursor:SetStyleAuto(uiStyle)    
+    cursor:SetPosition(graphics:GetWidth() / 2, graphics:GetHeight() / 2)
+    ui:SetCursor(cursor)
+    
+    if GetPlatform():Eq("Android") or GetPlatform():Eq("iOS") then
         ui:GetCursor():SetVisible(false)
-	end
+    end
 end
 
 function InitSprites()
-	local decalTex = cache:GetTexture2D("Textures/UrhoDecal.dds")
-	
-	local width = graphics:GetWidth()
-	local height = graphics:GetHeight()
-	
-	for i = 1, numSprites do
-        local sprite = Sprite()
+    local decalTex = cache:GetTexture2D("Textures/UrhoDecal.dds")
+    
+    local width = graphics:GetWidth()
+    local height = graphics:GetHeight()
+    
+    for i = 1, numSprites do
+        local sprite = Sprite:new(context)
         sprite:SetTexture(decalTex)
         sprite:SetFullImageRect()
         sprite:SetPosition(Random(width), Random(height))
-		sprite:SetSize(128, 128)		
-		sprite:SetHotSpot(64, 64)		
-		sprite:SetRotation(Random(360))		
+        sprite:SetSize(128, 128)        
+        sprite:SetHotSpot(64, 64)        
+        sprite:SetRotation(Random(360))        
         sprite:SetScale(Random(1) + 0.5)
-		
-		sprite:SetColor(Color(Random(0.5) + 0.5, Random(0.5) + 0.5, Random(0.5) + 0.5, 1.0))		
+        
+        sprite:SetColor(Color(Random(0.5) + 0.5, Random(0.5) + 0.5, Random(0.5) + 0.5, 1.0))        
         sprite:SetBlendMode(BLEND_ADD)
-		
-		ui:GetRoot():AddChild(sprite)
-		
-		table.insert(sprites, sprite)
-		table.insert(speeds, Vector2(Random(200) - 100, Random(200) - 100))		
+        
+        ui:GetRoot():AddChild(sprite)
+        
+        table.insert(sprites, sprite)
+        table.insert(speeds, Vector2(Random(200) - 100, Random(200) - 100))        
     end
 end
 
 function HandleUpdate(eventType, eventData)
-	local timeStep = eventData:GetFloat("TimeStep")
-	
-	local width = graphics:GetWidth()
-	local height = graphics:GetHeight()
-	
-	for i = 1, numSprites do		
-		local sprite = sprites[i]
-		sprite:SetRotation(sprite:GetRotation() + timeStep * 30)
-		
+    local timeStep = eventData:GetFloat("TimeStep")
+    
+    local width = graphics:GetWidth()
+    local height = graphics:GetHeight()
+    
+    for i = 1, numSprites do
+        local sprite = sprites[i]
+        sprite:SetRotation(sprite:GetRotation() + timeStep * 30)
+        
         local newPos = sprite:GetPosition()
-		
-		newPos = newPos + speeds[i] * timeStep
-		if newPos.x >= width then
-            newPos.x = newPos.x - width		
+        
+        newPos = newPos + speeds[i] * timeStep
+        if newPos.x >= width then
+            newPos.x = newPos.x - width
         elseif newPos.x < 0 then
             newPos.x = newPos.x + width
-		end
-		if newPos.y >= height then
+        end
+        if newPos.y >= height then
             newPos.y = newPos.y - height
         elseif newPos.y < 0 then
             newPos.y = newPos.y + height
-		end
-		sprite:SetPosition(newPos)
-	end
+        end
+        sprite:SetPosition(newPos)
+    end
 end
 
 function HandleKeyDown(eventType, eventData)
-	local key = eventData:GetInt("Key")
-	
-	if key == KEY_ESC then
-		if ui:GetFocusElement() == nil then
-			engine:Exit();
+    local key = eventData:GetInt("Key")
+    
+    if key == KEY_ESC then
+        if ui:GetFocusElement() == nil then
+            engine:Exit();
         else
             GetConsole():SetVisible(false)
-		end
-	end
-	
+        end
+    end
+    
     if key == KEY_F1 then
         GetConsole():Toggle()
-	end
-	
+    end
+    
     if key == KEY_T then
-		GetDebugHud():Toggle(DEBUGHUD_SHOW_PROFILER)
-	end
+        GetDebugHud():Toggle(DEBUGHUD_SHOW_PROFILER)
+    end
 end