Why I am getting error?
What I am doing wrong?
[lua]
local composer = require “composer”
local joystickPlugin = require “plugin.joystick”
local physics = require “physics”
local scene = composer.newScene();
function scene:create(event)
physics.start()
physics.setGravity(0,0)
local sceneGroup = self.view;
system.activate(“multitouch”)
local spaceBackground = display.newImageRect(“Images/SpaceBackground.png”,
display.actualContentWidth, display.actualContentHeight)
spaceBackground.x = display.contentCenterX
spaceBackground.y = display.contentCenterY
local loading = display.newText(“Loading…”, display.contentCenterX - 230, 330,
“Lobster-Regular”, 40)
local map = display.newImage(“Images/survivalModeMap.png”)
map.isVisible = false
map.x = display.contentCenterX
map.y = display.contentCenterY
local hero = display.newImage(“Images/mehaHat.png”)
hero.isVisible = false
hero.x = display.contentCenterX
hero.y = display.contentCenterY
physics.addBody(hero,“static”)
hero.direction = “up”
hero.hp = 100
local hp = display.newText("Hp: "…hero.hp,display.contentCenterX,300,
“Lobster-Regular”, 50)
local zombie = display.newImage(“Images/zombie.jpg”)
zombie.isVisible = false
zombie.x = display.contentCenterX
physics.addBody(zombie,“dynamic”)
zombie.y = -100
zombie.hp = 10
zombie.phase = “ended”
local function zombieCollision(self, event)
if event.phase == “began” then
zombie.phase = “touching”
timer.performWithDelay( 1, function()
local function damage()
if zombie.phase == “touching” then
if hero.hp > 0 then
hero.hp = hero.hp - 10
hp.text = "Hp: "…hero.hp
end
end
end
timer.performWithDelay(1000,damage,-1)
end)
elseif event.phase == “ended” then
zombie.phase = “ended”
end
end
zombie.collision = zombieCollision
zombie:addEventListener(“collision”, zombie)
local AttackButton = display.newImage(“Images/mehaAttackButton.png”)
AttackButton.isVisible = false
AttackButton.x = 480
AttackButton.y = 270
local AttackAnimationSheetData = {
width = 400,
height = 400,
numFrames = 10,
sheetContentWidth = 800,
sheetContentHeight = 2000
}
local AttackAnimationSheet = graphics.newImageSheet(“Images/mehaAttackAnimation.png”, AttackAnimationSheetData)
local sequenceData = {
{ name = “Attack”, start = 1, count = 10, time = 500, loopCount = 1}
}
local props = {
x = 10,
y = 270,
backgroundRadius = 50,
movedStickRadius = 25,
}
function loadingEnd()
spaceBackground.isVisible = false
loading.isVisible = false
map.isVisible = true
hero.isVisible = true
zombie.isVisible = true
AttackButton.isVisible = true
function enemy(event)
if zombie.x < display.contentCenterX then
zombie.x = zombie.x + 1
end
if zombie.y > display.contentCenterY then
zombie.y = zombie.y - 1
end
if zombie.x > display.contentCenterX then
zombie.x = zombie.x - 1
end
if zombie.y < display.contentCenterY then
zombie.y = zombie.y + 1
end
zombie.rotation = 90 + math.deg(math.atan2(zombie.y - hero.y, zombie.x - hero.x))
end
end
local Joystick = joystickPlugin.newJoystick(props)
Joystick.background:setFillColor(0.5)
Joystick.movedStick:setFillColor(0.7)
local function enterFrame(event)
if Joystick.isActivated() then
local vector = Joystick.getVector()
if vector.x < -0.5 then
map.x = map.x + 2
zombie.x = zombie.x + 2
hero.rotation = 270
hero.direction = “left”
elseif vector.x > 0.5 then
map.x = map.x - 2
zombie.x = zombie.x -2
hero.rotation = 90
hero.direction = “right”
end
if vector.y < -0.5 then
map.y = map.y + 2
zombie.y = zombie.y + 2
hero.rotation = 0
hero.direction = “up”
elseif vector.y > 0.5 then
map.y = map.y - 2
zombie.y = zombie.y-2
hero.rotation = 180
hero.direction = “down”
end
end
end
local AttackCoolDown = 0
local function Attack(event)
if(event.phase == “began”) then
if AttackCoolDown == 0 then
hero.isVisible = false
local mehaAttackAnimation = display.newSprite( AttackAnimationSheet, sequenceData )
mehaAttackAnimation.x = display.contentCenterX
mehaAttackAnimation.y = display.contentCenterY
if hero.direction == “up” then
mehaAttackAnimation.rotation = 0
elseif hero.direction == “right” then
mehaAttackAnimation.rotation = 90
elseif hero.direction == “down” then
mehaAttackAnimation.rotation = 180
elseif hero.direction == “left” then
mehaAttackAnimation.rotation = 270
end
mehaAttackAnimation:play()
AttackCoolDown = 1
timer.performWithDelay( 500, function()
hero.isVisible = true
mehaAttackAnimation:removeSelf()
AttackCoolDown = 0
end)
end
end
end
function hpDetection(event)
if hero.hp == 0 then
physics.stop()
Runtime:removeEventListener(“enterFrame”,hpDetection)
Runtime:removeEventListener(“enterFrame”, enterFrame)
AttackButton:removeEventListener(“touch”, Attack)
Runtime:removeEventListener(“enterFrame”, enemy)
composer.gotoScene(“scenes.lobby”)
zombie = nil
hero = nil
Joystick.setCoords( 10, 1000)
AttackButton:removeSelf()
hp:removeSelf()
map:removeSelf()
end
end
Runtime:addEventListener(“enterFrame”, enemy)
Runtime:addEventListener(“enterFrame”,hpDetection)
Runtime:addEventListener(“enterFrame”, enterFrame)
AttackButton:addEventListener(“touch”, Attack)
timer.performWithDelay( 2000, loadingEnd )
end
scene:addEventListener(“create”, scene);
return scene;
[/lua]