Error: attempt to index local

Hello. I start study Corona SDK. I look lessons in “Getting started”. I have got error in chapter 2.

local physics = require("physics") physics.start() physics.setGravity(0, 0) math.randomseed( os.time() ) local options = { frames = { { -- 1) asteroid 1 x = 0, y = 0, width = 102, height = 85 }, { -- 2) asteroid 2 x = 0, y = 85, width = 90, height = 83 }, { -- 3) asteroid 3 x = 0, y = 168, width = 100, height = 97 }, { -- 4) ship x = 0, y = 265, width = 98, height = 79 }, { -- 5) laser x = 98, y = 265, width = 14, height = 40 }, } } local objectSheet = graphics.newImageSheet("gameObject.png", options) local lives = 3 local score = 0 local died = false local asteroidsTable = {} local ship local gameLoopTimer local livesText local scoreText local backGroup = display.newGroup() local mainGroup = display.newGroup() local uiGroup = display.newGroup() local background = display.newImageRect( backGroup, "background.png", 800, 1400 ) background.x = display.contentCenterX background.y = display.contentCenterY ship = display.newImageRect( mainGroup, objectSheet, 4, 98, 79 ) ship.x = display.contentCenterX ship.y = display.contentHeight - 100 physics.addBody( ship, { radius=30, isSensor=true } ) ship.myName = "ship" livesText = display.newText(uiGroup, "Lives: " .. lives, 200, 80, native.systemFont, 36) scoreText = display.newText(uiGroup, "Score: " .. score, 400, 80, native.systemFont, 36)

I have got message with description:
main.lua:74: attempt to index local ‘ship’ (a nil value) stack traceback: main.lua:74: in main chunk.

I saw developer’s code (below), but it looks like my code exactly.

Sorry for my English.

p.s. Windows 10 32-bit, Corona Simulator 3009.

Developer’s code:

local physics = require( "physics" ) physics.start() physics.setGravity( 0, 0 ) -- Seed the random number generator math.randomseed( os.time() ) -- Configure image sheet local options = { frames = { { -- 1) asteroid 1 x = 0, y = 0, width = 102, height = 85 }, { -- 2) asteroid 2 x = 0, y = 85, width = 90, height = 83 }, { -- 3) asteroid 3 x = 0, y = 168, width = 100, height = 97 }, { -- 4) ship x = 0, y = 265, width = 98, height = 79 }, { -- 5) laser x = 98, y = 265, width = 14, height = 40 }, } } local objectSheet = graphics.newImageSheet( "gameObjects.png", options ) -- Initialize variables local lives = 3 local score = 0 local died = false local asteroidsTable = {} local ship local gameLoopTimer local livesText local scoreText -- Set up display groups local backGroup = display.newGroup() -- Display group for the background image local mainGroup = display.newGroup() -- Display group for the ship, asteroids, lasers, etc. local uiGroup = display.newGroup() -- Display group for UI objects like the score -- Load the background local background = display.newImageRect( backGroup, "background.png", 800, 1400 ) background.x = display.contentCenterX background.y = display.contentCenterY ship = display.newImageRect( mainGroup, objectSheet, 4, 98, 79 ) ship.x = display.contentCenterX ship.y = display.contentHeight - 100 physics.addBody( ship, { radius=30, isSensor=true } ) ship.myName = "ship" -- Display lives and score livesText = display.newText( uiGroup, "Lives: "..lives, 200, 80, native.systemFont, 36 ) scoreText = display.newText( uiGroup, "Score: "..score, 400, 80, native.systemFont, 36 ) -- Hide the status bar display.setStatusBar( display.HiddenStatusBar ) local function updateText() livesText.text = "Lives: "..lives scoreText.text = "Score: "..score end

Program don’t likes string:

ship.x = display.contentCenterX

In line

local objectSheet = graphics.newImageSheet("gameObject.png", options)

 you drop letter s in file name. Change image name to gameObjects.png. Should work now:)

Thank you very much!

In line

local objectSheet = graphics.newImageSheet("gameObject.png", options)

 you drop letter s in file name. Change image name to gameObjects.png. Should work now:)

Thank you very much!