Advertisement
alestane

Local function illustration

Feb 18th, 2012
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.95 KB | None | 0 0
  1. local character = require "characters.character"
  2. local sprite = require "sprite"
  3.  
  4. local resistance = {}
  5.  
  6. function resistance.HandleButtons(event, group, self)
  7.     local button = event.target
  8.     if event.phase == "ended" and button.type == "move" then
  9.         resistance.ToggleMenu(group, self)
  10.         local function selectMove(...)
  11.             Runtime:removeEventListener('tap', selectMove)
  12.             return resistance.Move(self, ...)
  13.         end
  14.         Runtime:addEventListener("tap", selectMove)
  15.     elseif event.phase == "ended" and button.type == "attack" then
  16.     elseif event.phase == "ended" and button.type == "done" then
  17.         resistance.ToggleMenu(group, self)
  18.     end
  19. end
  20.  
  21. function resistance.ToggleMenu(group, self)
  22.     group.isVisible = not group.isVisible
  23.     if group.isVisible then
  24.         self:Animate("Selected")
  25.     else
  26.         self:Animate("Stationary")
  27.     end
  28. end
  29.  
  30. function resistance.Move(self, event)
  31.     self:Move(math.ceil(event.x / 30), math.floor((event.y + 10) / 30))
  32. end
  33.  
  34. function resistance.Create(level, name, size, health, move, attack, defense, xTile, yTile)
  35.     local group = display.newGroup()
  36.     local self = character.Create(level, name, size, health, move, attack, defense, xTile, yTile)
  37.         self:addEventListener("tap", function() resistance.ToggleMenu(group, self) end)
  38.     local block = display.newRect(0, 0, display.contentWidth, display.contentHeight)
  39.         group:insert(block)
  40.         block:setFillColor(0, 0)
  41.         block:addEventListener("tap", function() return true end)
  42.     local background = display.newImage(group, "visuals/resistance_background.png", 0, 0)
  43.         background:setReferencePoint(display.CenterReferencePoint)
  44.         background.x, background.y = display.contentWidth / 2, display.contentHeight / 2
  45.     local icon = display.newImage(group, ("visuals/character_" .. name .. "icon.png"), 145, 128)
  46.     local buttonSheet = sprite.newSpriteSheet("visuals/button_resistance.png", 60, 20)
  47.     local buttonMove = button.New(sprite.newSprite(sprite.newSpriteSet(buttonSheet, 1, 2)))
  48.         group:insert(buttonMove)
  49.         buttonMove:setReferencePoint(display.TopLeftReferencePoint)
  50.         buttonMove.x, buttonMove.y = 145, 173
  51.         buttonMove.type = "move"
  52.         buttonMove:addEventListener("Button", function(event) resistance.HandleButtons(event, group, self) end)
  53.     local buttonAttack = button.New(sprite.newSprite(sprite.newSpriteSet(buttonSheet, 3, 2)))
  54.         group:insert(buttonAttack)
  55.         buttonAttack:setReferencePoint(display.TopLeftReferencePoint)
  56.         buttonAttack.x, buttonAttack.y = 210, 173
  57.         buttonAttack.type = "attack"
  58.         buttonAttack:addEventListener("Button", function(event) resistance.HandleButtons(event, group, self) end)
  59.     local buttonDone = button.New(sprite.newSprite(sprite.newSpriteSet(buttonSheet, 5, 2)))
  60.         group:insert(buttonDone)
  61.         buttonDone:setReferencePoint(display.TopLeftReferencePoint)
  62.         buttonDone.x, buttonDone.y = 275, 173
  63.         buttonDone.type = "done"
  64.         buttonDone:addEventListener("Button", function(event) resistance.HandleButtons(event, group, self) end)
  65.     group.isVisible = false
  66.     return self
  67. end
  68.  
  69. return resistance
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement