My game works perfectly fine in the Corona simulator. However, I uploaded my app to my iPhone. Everything works great, EXCEPT my sprite doesn’t play!! I need help guys! I have tried going to the console for my device and receive NO ERRORS! Any help or further instruction is appreciated! thanks! Code file that contains the sprite is below…
[lua] --game.lua
–remove status bar
display.setStatusBar(display.HiddenStatusBar)
–declare modules
local storyboard = require “storyboard”
local scene = storyboard.newScene()
local physics = require “physics”
physics.start()
physics.setGravity( 0, 100)
local stage = display.currentStage
local levelSpeed = 5
local gameIsActive = false
local saveValue = function( strFilename, strValue)
–specified value to specified file
local theFile = strFilename
local theValue = strValue
local path = system.pathForFile( theFile, system.DocumentsDirectory )
–io.open opens a file at path. returns nil if no file found
local file = io.open( path, “w+” )
if file then
–write game distance to the text file
file:write( theValue )
io.close( file )
end
end
local loadValue = function( strFilename )
–will load specified file, or create a new file if it doesn’t exist
local theFile = strFilename
local path = system.pathForFile( theFile, system.DocumentsDirectory )
–io.open opens a file at path. returns nil if no file found
local file = io.open( path, “r” )
if file then
–read ALL contents of file into a string
local contents = file:read( “*a” )
io.close( file )
return contents
else
–create file because it doesn’t exist yet
file = io.open( path, “w” )
file:write( “0” )
io.close( file )
return “0”
end
end
–create scene
function scene:createScene( event )
local group = self.view
local highDistanceFilename = “highDistance.text”
local loadedHighDistance =
loadValue( highDistanceFilename )
local highScore = tonumber( loadedHighDistance )
local celebrityChoiceFilename = “celebrityChoice.text”
local loadedCelebrityChoice =
loadValue( celebrityChoiceFilename )
local celebrityChoice = tostring( loadedCelebrityChoice )
–sprite information
local sheetData = {
width = 65,
height = 70,
numFrames = 4,
sheetContentWidth = 260,
sheetContentHeight = 70,
}
local celebrity = graphics.newImageSheet( “”…tostring(celebrityChoice), sheetData )
local sequenceData = {
{ name = “celebrityRun”,
frames = { 1,2,3,4},
time = 400,
loopCount = 1000000000000000000000000000000000000000000000000
}
}
–make sky background
local bg = display.newRect( 250, 100, 1220, 840)
bg:setFillColor(0,0,255)
group:insert(bg)
–makes celebrity run animation
local celebrityRun = display.newSprite( celebrity, sequenceData )
celebrityRun.x = -10
celebrityRun.y = 270
physics.addBody(celebrityRun, “dynamic”, {friction = 0,bounce = 0})
celebrityRun:play()
celebrityRun.isFixedRotation = true --To stop it rotating when jumping etc
celebrityRun.isSleepingAllowed = false --To force it to update and fall off playforms correctly
–celebrity jump
local function celebrityJump( event )
if (event.numTaps == 1) then
celebrityRun.y = celebrityRun.y - 150
elseif(event.numTaps > 1) then
celebrityRun.y = celebrityRun.y - 200
return(true)
end
end
Runtime:addEventListener(“tap”, celebrityJump)
–first level
local firstLevel = display.newRect(165, 315, 1220, 10)
firstLevel:setFillColor(255, 0, 0)
physics.addBody( firstLevel, “static”, {friction = 0, density = 1, bounce = 0})
group:insert(firstLevel)
–levels
local secondLevel1 = display.newRect(220, 190, 100, 10)
secondLevel1:setFillColor(255, 0, 0)
local secondLevel2 = display.newRect(450, 190, 100, 10)
secondLevel2:setFillColor(255, 0, 0)
physics.addBody(secondLevel1, “static”, {friction = 0, density = 1, bounce = 0})
physics.addBody(secondLevel2, “static”, {friction = 0, density = 1, bounce = 0})
local thirdLevel1 = display.newRect(260, 100, 80, 10)
thirdLevel1:setFillColor(255, 0, 0)
local thirdLevel2 = display.newRect(490, 100, 80, 10)
thirdLevel2:setFillColor(255, 0, 0)
physics.addBody(thirdLevel1, “static”, {friction = 0, density = 1, bounce = 0})
physics.addBody(thirdLevel2, “static”, {friction = 0, density = 1, bounce = 0})
group:insert(secondLevel1)
group:insert(secondLevel2)
group:insert(thirdLevel1)
group:insert(thirdLevel2)
–paparazzi1
local paparazzi1 = display.newImage(“rsz_imageedit_1_8583966754.png”)
paparazzi1.x = 800
paparazzi1.y = 283
physics.addBody(paparazzi1, “static”, {friction = 0, density = 0, bounce = 0})
group:insert(paparazzi1)
–paparazzi2
local paparazzi2 = display.newImage(“rsz_imageedit_1_8583966754.png”)
paparazzi2.x = math.random(350, display.contentWidth)
paparazzi2.y = 160
physics.addBody(paparazzi2, “static”, {friction = 0, density = 0, bounce = 0})
group:insert(paparazzi2)
–paparazzi3
local paparazzi3 = display.newImage(“rsz_imageedit_1_8583966754.png”)
paparazzi3.x = math.random(450, display.contentWidth)
paparazzi3.y = 70
physics.addBody(paparazzi3, “static”, {friction = 0, density = 0, bounce = 0})
group:insert(paparazzi3)
–wall to prevent character from being pushed off screen (left)
local wall = display.newRect(-45, 100, 5, 500)
physics.addBody(wall, “static”, {friction = 0, density = 1})
wall.alpha = 0
group:insert(wall)
–current distance
local currentDistance = 0
–distance score
local distanceText = display.newText("Distance: ", 245, 20, “Arial”, 30)
group:insert(distanceText)
local objectGroup = display.newGroup()
–Main gameLoop function
function gameLoop( event )
if (gameIsActive == true) then
currentDistance = currentDistance + 1
distanceText.text = "Distance: "…currentDistance
–Move the other items and platforms.
–If they are far left of the screen we remove them.
local i
for i = objectGroup.numChildren,1,-1 do
local object = objectGroup[i]
if object ~= nil and object.y ~= nil then
object:translate( -levelSpeed, 0)
if object.x < -175 then
display.remove(object); object = nil;
end
end
end
–Move the background, ground, and levels
–We then check to see if they need to be replaced.
bg:translate(-(levelSpeed)*0.6,0)
secondLevel1:translate(-levelSpeed,0)
secondLevel2:translate(-levelSpeed,0)
thirdLevel1:translate(-levelSpeed,0)
thirdLevel2:translate(-levelSpeed,0)
paparazzi1:translate(-levelSpeed, 0)
paparazzi2:translate(-levelSpeed, 0)
paparazzi3:translate(-levelSpeed, 0)
if secondLevel1.x <= -100 then
secondLevel1.x = secondLevel1.x + 600
end
if secondLevel2.x <= -100 then
secondLevel2.x = secondLevel2.x + 600
end
if thirdLevel1.x <= -100 then
thirdLevel1.x = thirdLevel1.x + 600
end
if thirdLevel2.x <= -100 then
thirdLevel2.x = thirdLevel2.x + 600
end
if paparazzi1.x <= -75 then
paparazzi1.x = math.random(600,1000)
end
if paparazzi2.x <= -75 then
paparazzi2.x = math.random(900,2000)
end
if paparazzi3.x <= -75 then
paparazzi3.x = math.random(1000,1500)
end
if bg.x <= -50 then bg.x = bg.x + 400
end
end
end
gameIsActive = true
Runtime:addEventListener(“enterFrame”,gameLoop)
–make speed of game faster
function speedBoost( event )
if (currentDistance >= 200) then
levelSpeed = 6
end
if (currentDistance >= 450) then
levelSpeed = 8
end
if (currentDistance >= 700) then
levelSpeed = 10
end
if (currentDistance >= 1100) then
levelSpeed = 12
end
end
Runtime:addEventListener(“enterFrame”, speedBoost)
–collided
function gameOver()
storyboard.gotoScene(“gameover”, “fade”, 200)–go to game over scene
print(“go to scene gameover completed!”)
end
–paparazzi collision
local function onCollision(event)
if (event.phase == “began”) then
print(“collision began”)
levelSpeed = 0
celebrityRun.alpha = 0
paparazzi1:removeEventListener(“collision”, onCollision)
paparazzi2:removeEventListener(“collision”, onCollision)
paparazzi3:removeEventListener(“collision”, onCollision)
gameOver()
print(highScore)
print(currentDistance)
if currentDistance > highScore then
highScore = currentDistance
local highDistanceFilename = “highDistance.text”
saveValue( highDistanceFilename, tostring(highScore))
end
end
end
paparazzi1:addEventListener(“collision”, onCollision)
paparazzi2:addEventListener(“collision”, onCollision)
paparazzi3:addEventListener(“collision”, onCollision)
end
–enter scene
function scene:enterScene( event )
local group = self.view
physics.start()
physics.setGravity( 0, 100)
end
–exit scene
function scene:exitScene( event )
local group = self.view
Runtime:removeEventListener(“tap”, celebrityJump)
Runtime:removeEventListener(“enterFrame”, speedBoost)
Runtime:removeEventListener(“enterFrame”,gameLoop)
end
–destroy scene
function scene:destroyScene( event )
local group = self.view
end
scene:addEventListener( “createScene”, scene)
scene:addEventListener( “enterScene”, scene)
scene:addEventListener( “exitScene”, scene)
scene:addEventListener( “destroyScene”, scene)
return scene [/lua]