Advertisement
alestane

Using table listener

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