diff main.lua @ 5:98ab870293bc

make the villain local
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sat, 15 Dec 2012 13:58:27 +0100
parents e4263ea87780
children 301a5bd338fb
line wrap: on
line diff
--- a/main.lua	Sat Dec 15 13:54:13 2012 +0100
+++ b/main.lua	Sat Dec 15 13:58:27 2012 +0100
@@ -8,7 +8,6 @@
 local tx, ty = 0, 0
 local DX = {0, 1, 0, -1}
 local DY = {-1, 0, 1, 0}
-local villain
 
 function newVillain(x, y, image)
     local grid = anim8.newGrid(64, 64, 128, 128)
@@ -27,6 +26,30 @@
             self.y = y
         end
     end
+    function villain:update(dt)
+        local scroll_speed = 250
+        local scroll_margin = 64
+        local villain = self
+        if love.keyboard.isDown("up") then villain:walk(dt, 1) end
+        if love.keyboard.isDown("right") then villain:walk(dt, 2) end
+        if love.keyboard.isDown("down") then villain:walk(dt, 3) end
+        if love.keyboard.isDown("left") then villain:walk(dt, 4) end
+        if villain.x + tx < scroll_margin then
+            tx = tx + dt * scroll_speed
+        else
+            if villain.x + tx > 800 - 64 - scroll_margin then
+                tx = tx - dt * scroll_speed
+            end
+        end
+        if villain.y + ty < scroll_margin then
+            ty = ty + dt * scroll_speed
+        else
+            if villain.y + ty > 600 - 64 - scroll_margin then
+                ty = ty - dt * scroll_speed
+            end
+        end
+        sprite.Sprite.update(self, dt)
+    end
     return villain
 end
 
@@ -48,7 +71,7 @@
     map.drawObjects = false
     for i, mob in pairs(map.layers['mobs'].objects) do
         if mob.name == 'villain' then
-            villain = newVillain(mob.x - 32, mob.y - 60, villain_image)    
+            local villain = newVillain(mob.x - 32, mob.y - 60, villain_image)
             table.insert(sprites, villain)
             table.insert(shadows, sprite.newShadow(shadow_image, villain))
         else
@@ -74,26 +97,6 @@
 
 
 function love.update(dt)
-    local scroll_speed = 250
-    local scroll_margin = 64
-    if love.keyboard.isDown("up") then villain:walk(dt, 1) end
-    if love.keyboard.isDown("right") then villain:walk(dt, 2) end
-    if love.keyboard.isDown("down") then villain:walk(dt, 3) end
-    if love.keyboard.isDown("left") then villain:walk(dt, 4) end
-    if villain.x + tx < scroll_margin then
-        tx = tx + dt * scroll_speed
-    else
-        if villain.x + tx > 800 - 64 - scroll_margin then
-            tx = tx - dt * scroll_speed
-        end
-    end
-    if villain.y + ty < scroll_margin then
-        ty = ty + dt * scroll_speed
-    else
-        if villain.y + ty > 600 - 64 - scroll_margin then
-            ty = ty - dt * scroll_speed
-        end
-    end
     for k, sprite in pairs(sprites) do
         sprite:update(dt)
     end