Either way it is an error !

This error that im getting is bugging me . it is this :

Windows simulator build date: May 27 2015 @ 18:15:50

Copyright © 2009-2015  C o r o n a   L a b s   I n c .
        Version: 3.0.0
        Build: 2015.2646
Platform: SM-G900S / x64 / 6.2 / Intel® HD Graphics / 4.0.0 - Build 10.18.10.3
408 / 2015.2646
Loading project from:   c:\users\true\documents\corona projects\bouncy blocks
Project sandbox folder: C:\Users\True\AppData\Roaming\Corona Labs\Corona Simulat
or\Sandbox\bouncy blocks-C116AB3B868BE13E671AF11DFB4D395F\Documents
WARNING: display.setStatusBarMode() not supported in the simulator for SM-G900S
device
ERROR: c:\users\true\documents\corona projects\bouncy blocks\level1.lua:7: physi
cs.setDrawMode() parameter must be one of ‘normal’, ‘hybrid’ or ‘debug’
Runtime error
c:\users\true\documents\corona projects\bouncy blocks\level1.lua:121: attempt to
 index global ‘block2’ (a nil value)
stack traceback:
        [C]: in function ‘error’
        ?: in function ‘gotoScene’
        c:\users\true\documents\corona projects\bouncy blocks\menu.lua:25: in fu
nction <c:\users\true\documents\corona projects\bouncy blocks\menu.lua:23>
        ?: in function <?:221>

Im trying to make my scene reload when I go to it from restart.lua so ive been taking tips . When put local at line 121 it says unexpected symbol next to “.” . So this brings me to te question what does this error mean and how do I fix it ? level1.lua:

local composer = require( "composer" ) local scene = composer.newScene() local physics = require( "physics" ) physics.start() physics.setGravity(0, 40) physics.setDrawMode( hybrid ) local mAbs = math.abs local mRand = math.random local mDeg = math.deg local mRad = math.rad local mCos = math.cos local mSin = math.sin local mAcos = math.acos local mAsin = math.asin local mSqrt = math.sqrt local mCeil = math.ceil local mFloor = math.floor local mAtan2 = math.atan2 local mPi = math.pi local getInfo = system.getInfo local getTimer = system.getTimer local strMatch = string.match local strFormat = string.format local pairs = pairs function scene:create( event ) local sceneGroup = self.view local background = display.newImage( "background.png" ) sceneGroup:insert( background ) local ground = display.newImage( "ground.png" ) sceneGroup:insert( ground ) ground.isGround = true physics.addBody( ground, "static" , { friction=0.5, bounce=0.1 } ) local myObject = display.newRect( 0, 0, 100, 30 ) sceneGroup:insert( myObject ) myObject.isMyObject = true myObject:setFillColor( 0 ) physics.addBody( myObject, "kinematic" , { myObject, friction=0.5, bounce=2 } ) function myObject:touch( event ) if( event.phase == "moved" ) then self.x = event.x self.y = event.y end return true end myObject:addEventListener( "touch", myObject ) local wall = display.newImageRect( "wall.png", 600, 300 ) sceneGroup:insert( wall ) wall.rotation = 90 physics.addBody( wall, "static" , { wall, friction=0.5, bounce=0.5 } ) local wall2 = display.newImageRect( "wall2.png", 500, 300 ) sceneGroup:insert( wall2 ) wall.rotation = 90 physics.addBody( wall2, "static" , { wall2, friction=0.5, bounce=0.5 } ) local wall3 = display.newImageRect( "wall3.png", 600, 300 ) sceneGroup:insert( wall3 ) wall3.rotation = 90 physics.addBody( wall3, "static" , { wall3, friction=0.5, bounce=0.5 } ) local block = display.newImage( "block.png" ) sceneGroup:insert( block ) block.isBlock = true block.rotation = 8 physics.addBody( block, "dynamic" , { block, friction=0.5, bounce=0.5 } ) local function onCollision( self, event ) local other = event.other if( event.phase == "began" and self.isBlock and other.isGround ) then timer.performWithDelay( 30, function() composer.gotoScene ( "restart", "fade", 0 ); end) self:removeEventListener( "collision" ) end return true end block.collision = onCollision block:addEventListener( "collision" ) local block2 = display.newImage( "block2.png" ) sceneGroup:insert( block2 ) block2.isBlock = true block2.rotation = 8 physics.addBody( block2, "dynamic" , { block2, friction=0.5, bounce=0.5 } ) local function onCollision( self, event ) local other = event.other if( event.phase == "began" and self.isBlock2 and other.isGround ) then timer.performWithDelay( 30, function() composer.gotoScene ( "restart", "fade", 0 ); end) self:removeEventListener( "collision" ) end return true end end block2.collision = onCollision block2:addEventListener( "collision" ) function scene:show( event ) local sceneGroup = self.view local phase = event.phase if ( phase == "will" ) then background.x = 10 background.y = 308 ground.x = 145 ground.y = 480 myObject.x = 145 myObject.y = 400 wall.x = -150 wall.y = 250 wall2.x = 210 wall2.y = -194 wall3.x = 470 wall3.y = 250 block.x = 200 block2.x = 100 elseif ( phase == "did" ) then -- Called when the scene is now on screen. -- Insert code here to make the scene come alive. -- Example: start timers, begin animation, play audio, etc. end end function scene:hide( event ) local sceneGroup = self.view local phase = event.phase if ( phase == "will" ) then -- Called when the scene is on screen (but is about to go off screen). -- Insert code here to "pause" the scene. -- Example: stop timers, stop animation, stop audio, etc. elseif ( phase == "did" ) then -- Called immediately after scene goes off screen. end end -- "scene:destroy()" function scene:destroy( event ) local sceneGroup = self.view -- Called prior to the removal of scene's view ("sceneGroup"). -- Insert code here to clean up the scene. -- Example: remove display objects, save state, etc. end -- ------------------------------------------------------------------------------- -- Listener setup scene:addEventListener( "create", scene ) scene:addEventListener( "show", scene ) scene:addEventListener( "hide", scene ) scene:addEventListener( "destroy", scene ) -- ------------------------------------------------------------------------------- return scene

Thank you for your time kind gent ^_^ .

Hi.

It looks like you left scene:create  before assigning your second onCollision function. Try moving the assignment and addEventListener call between the preceding two end statements. (The first ends onCollision , the second scene:create.)

If the indenting looks the same on your end as it does here, probably a good idea to clean it up a bit.  :slight_smile:

Ill clean the indentation but can you dumb what your saying down since i dont really spend alot of time coding.
Thank you😃

Basically, starting at line 119, try changing:

 end end block2.collision = onCollision block2:addEventListener( "collision" )

to

 end block2.collision = onCollision block2:addEventListener( "collision" ) end

I was just making a guess that the indentation might have confused you when you were placing it.

Thank you ill see if it works

Hi.

It looks like you left scene:create  before assigning your second onCollision function. Try moving the assignment and addEventListener call between the preceding two end statements. (The first ends onCollision , the second scene:create.)

If the indenting looks the same on your end as it does here, probably a good idea to clean it up a bit.  :slight_smile:

Ill clean the indentation but can you dumb what your saying down since i dont really spend alot of time coding.
Thank you😃

Basically, starting at line 119, try changing:

 end end block2.collision = onCollision block2:addEventListener( "collision" )

to

 end block2.collision = onCollision block2:addEventListener( "collision" ) end

I was just making a guess that the indentation might have confused you when you were placing it.

Thank you ill see if it works