Mercurial > vanillian
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
