Advertisement
alestane

Resource reuse

Feb 2nd, 2012
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.37 KB | None | 0 0
  1. local sprite = require "sprite"
  2.  
  3. local character = {}
  4.  
  5. character.spriteSet = setmetatable({},
  6.     {
  7.         __index = function(t, size)
  8.             local new = setmetatable({},
  9.                 {
  10.                     __index = function(t, name)
  11.                         local set = sprite.newSpriteSet(
  12.                             sprite.newSpriteSheet("visuals/character_" .. name .. ".png", size, size),
  13.                         1, 12)
  14.                         sprite.add(character.Set, "Stationary", 1, 2, 500)
  15.                         sprite.add(character.Set, "Selected", 3, 2, 500)
  16.                         sprite.add(character.Set, "MoveUp", 5, 2, 500)
  17.                         sprite.add(character.Set, "MoveDown", 7, 2, 500)
  18.                         sprite.add(character.Set, "MoveLeft", 9, 2, 500)
  19.                         sprite.add(character.Set, "MoveRight", 11, 2, 500)
  20.                         t[name] = set
  21.                         return set
  22.                     end
  23.                 }
  24.             )
  25.             t[size] = new
  26.             return new
  27.         end
  28.     }
  29. )
  30.  
  31. function character.Move(self, size, xTile, yTile)
  32.     self.x, self.y = xTile * size, yTile * size + 20
  33.     self.xTile, self.yTile = xTile, yTile
  34. end
  35.  
  36. function character.Create(spritesheet, size, health, move, attack, defense, xTile, yTile)
  37.     local self = sprite.newSprite(character.spriteSet[size][spritesheet])
  38.         self:setReferencePoint(display.TopLeftReferencePoint)
  39.     function self:Move(...)
  40.             return character.Move(self, size, ...)
  41.         end
  42.         self:Move(xTile, yTile)
  43.         self:prepare("Stationary")
  44.         self:play()
  45.     return self
  46. end
  47.  
  48. return character
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement