Since Lime aint working properly with Corona, I decided to have a go creating a level the hard way, coding it tile by tile. But, there´s this error that I absolutely can´figure out. I´m in the process of coding 2 rows ontop of eachother using the same tile, first line goes fine but when I come to tile number 25 in the second, I get a runtime error in the simulator. I can´t figure out what´s causing this and I´ve gone through the code letter by letter, symbol by symbol and it looks 100% ok.
If I remove everything that has to do with “A25, A26, A27 and A28” then everything works fine.
The code for the level can be seen below:
module(…, package.seeall)
–Load the physics data, scale factor is set to 1.0
local physicsData = (require “shapedefs”).physicsData(1.0)
local physics = require(“physics”)
physics.start()
physics.setScale( 60 )
–Initial gravity points downwards
physics.setGravity( 0, 0 )
–Set accelerometer to maximum responsiveness
system.setAccelerometerInterval( 100 )
– GROUPS
local localGroup
– ADDING SOUNDS
local knockSound = audio.loadSound(“sounds/Wood_impact.wav”)
– BACKGROUND TILE IMAGES
–IMAGES IN ROW 1
local A1 = display.newImage( “images/brickwall/stone1.png” )
local A2 = display.newImage( “images/brickwall/stone1.png” )
local A3 = display.newImage( “images/brickwall/stone1.png” )
local A4 = display.newImage( “images/brickwall/stone1.png” )
local A5 = display.newImage( “images/brickwall/stone1.png” )
local A6 = display.newImage( “images/brickwall/stone1.png” )
local A7 = display.newImage( “images/brickwall/stone1.png” )
local A8 = display.newImage( “images/brickwall/stone1.png” )
local A9 = display.newImage( “images/brickwall/stone1.png” )
local A10 = display.newImage( “images/brickwall/stone1.png” )
local A11 = display.newImage( “images/brickwall/stone1.png” )
local A12 = display.newImage( “images/brickwall/stone1.png” )
local A13 = display.newImage( “images/brickwall/stone1.png” )
local A14 = display.newImage( “images/brickwall/stone1.png” )
local A15 = display.newImage( “images/brickwall/stone1.png” )
local A16 = display.newImage( “images/brickwall/stone1.png” )
local A17 = display.newImage( “images/brickwall/stone1.png” )
local A18 = display.newImage( “images/brickwall/stone1.png” )
local A19 = display.newImage( “images/brickwall/stone1.png” )
local A20 = display.newImage( “images/brickwall/stone1.png” )
local A21 = display.newImage( “images/brickwall/stone1.png” )
local A22 = display.newImage( “images/brickwall/stone1.png” )
local A23 = display.newImage( “images/brickwall/stone1.png” )
local A24 = display.newImage( “images/brickwall/stone1.png” )
local A25 = display.newImage( “images/brickwall/stone1.png” )
local A26 = display.newImage( “images/brickwall/stone1.png” )
local A27 = display.newImage( “images/brickwall/stone1.png” )
local A28 = display.newImage( “images/brickwall/stone1.png” )
–IMAGES IN ROW 2
local B1 = display.newImage( “images/brickwall/stone1.png” )
local B2 = display.newImage( “images/brickwall/stone1.png” )
local B3 = display.newImage( “images/brickwall/stone1.png” )
local B4 = display.newImage( “images/brickwall/stone1.png” )
local B5 = display.newImage( “images/brickwall/stone1.png” )
local B6 = display.newImage( “images/brickwall/stone1.png” )
local B7 = display.newImage( “images/brickwall/stone1.png” )
local B8 = display.newImage( “images/brickwall/stone1.png” )
local B9 = display.newImage( “images/brickwall/stone1.png” )
local B10 = display.newImage( “images/brickwall/stone1.png” )
local B11 = display.newImage( “images/brickwall/stone1.png” )
local B12 = display.newImage( “images/brickwall/stone1.png” )
local B13 = display.newImage( “images/brickwall/stone1.png” )
local B14 = display.newImage( “images/brickwall/stone1.png” )
local B15 = display.newImage( “images/brickwall/stone1.png” )
local B16 = display.newImage( “images/brickwall/stone1.png” )
local B17 = display.newImage( “images/brickwall/stone1.png” )
local B18 = display.newImage( “images/brickwall/stone1.png” )
local B19 = display.newImage( “images/brickwall/stone1.png” )
local B20 = display.newImage( “images/brickwall/stone1.png” )
local B21 = display.newImage( “images/brickwall/stone1.png” )
local B22 = display.newImage( “images/brickwall/stone1.png” )
local B23 = display.newImage( “images/brickwall/stone1.png” )
local B24 = display.newImage( “images/brickwall/stone1.png” )
local B25 = display.newImage( “images/brickwall/stone1.png” )
local B26 = display.newImage( “images/brickwall/stone1.png” )
local B27 = display.newImage( “images/brickwall/stone1.png” )
local B28 = display.newImage( “images/brickwall/stone1.png” )
–IMAGES IN ROW 3
–IMAGES IN ROW 4
–IMAGES IN ROW 5
local player1 = display.newImage(“images/player/ball1.png”)
local box01 = display.newImage( “images/crates/box01.png” )
– FUNCTIONS
– Camera follows player automatically
local function moveCamera()
– if (player1.x > 80 and player1.x < 1100) then
localGroup.x = -player1.x + 230
localGroup.y = -player1.y + 170
end
–Accelerometer-based gravity
function onTilt( event )
physics.setGravity( ( 9.8 * event.xGravity ), ( -9.8 * event.yGravity ) )
end
– Adding sound when hitting box
local function onBounce ( self, event )
audio.play( knockSound )
end
–A basic function for dragging physics objects
local function startDrag( event )
local t = event.target
local phase = event.phase
if “began” == phase then
display.getCurrentStage():setFocus( t )
t.isFocus = true
– Store initial position
t.x0 = event.x - t.x
t.y0 = event.y - t.y
– Make body type temporarily “kinematic” (to avoid gravitional forces)
event.target.bodyType = “kinematic”
– Stop current motion, if any
event.target:setLinearVelocity( 0, 0 )
event.target.angularVelocity = 0
elseif t.isFocus then
if “moved” == phase then
t.x = event.x - t.x0
t.y = event.y - t.y0
elseif “ended” == phase or “cancelled” == phase then
display.getCurrentStage():setFocus( nil )
t.isFocus = false
– Switch body type back to “dynamic”, unless we’ve marked this sprite as a platform
if ( not event.target.isPlayer ) then
event.target.bodyType = “dynamic”
end
end
end
– Stop further propagation of touch event!
return true
end
– INIT VARIABLES
local function initVars ()
– INSERT ROW 1
localGroup:insert( A1 )
localGroup:insert( A2 )
localGroup:insert( A3 )
localGroup:insert( A4 )
localGroup:insert( A5 )
localGroup:insert( A6 )
localGroup:insert( A7 )
localGroup:insert( A8 )
localGroup:insert( A9 )
localGroup:insert( A10 )
localGroup:insert( A11 )
localGroup:insert( A12 )
localGroup:insert( A13 )
localGroup:insert( A14 )
localGroup:insert( A15 )
localGroup:insert( A16 )
localGroup:insert( A17 )
localGroup:insert( A18 )
localGroup:insert( A19 )
localGroup:insert( A20 )
localGroup:insert( A21 )
localGroup:insert( A22 )
localGroup:insert( A23 )
localGroup:insert( A24 )
localGroup:insert( A25 )
localGroup:insert( A26 )
localGroup:insert( A27 )
localGroup:insert( A28 )–[[
–]]
– INSERT ROW 2
localGroup:insert( B1 )
localGroup:insert( B2 )
localGroup:insert( B3 )
localGroup:insert( B4 )
localGroup:insert( B5 )
localGroup:insert( B6 )
localGroup:insert( B7 )
localGroup:insert( B8 )
localGroup:insert( B9 )
localGroup:insert( B10 )
localGroup:insert( B11 )
localGroup:insert( B12 )
localGroup:insert( B13 )
localGroup:insert( B14 )
localGroup:insert( B15 )
localGroup:insert( B16 )
localGroup:insert( B17 )
localGroup:insert( B18 )
localGroup:insert( B19 )
localGroup:insert( B20 )
localGroup:insert( B21 )
localGroup:insert( B22 )
localGroup:insert( B23 )
localGroup:insert( B24 )
localGroup:insert( B25 )
localGroup:insert( B26 )
localGroup:insert( B27 )
localGroup:insert( B28 )
– Positions
localGroup.x = 128
localGroup.y = 128
–INSERT POSITIONS FOR ROW 1
A1.x = localGroup.x * 1
A1.y = localGroup.y * 1
A2.x = localGroup.x * 2
A2.y = localGroup.y * 1
A3.x = localGroup.x * 3
A3.y = localGroup.y * 1
A4.x = localGroup.x * 4
A4.y = localGroup.y * 1
A5.x = localGroup.x * 5
A5.y = localGroup.y * 1
A6.x = localGroup.x * 6
A6.y = localGroup.y * 1
A7.x = localGroup.x * 7
A7.y = localGroup.y * 1
A8.x = localGroup.x * 8
A8.y = localGroup.y * 1
A9.x = localGroup.x * 9
A9.y = localGroup.y * 1
A10.x = localGroup.x * 10
A10.y = localGroup.y * 1
A11.x = localGroup.x * 11
A11.y = localGroup.y * 1
A12.x = localGroup.x * 12
A12.y = localGroup.y * 1
A13.x = localGroup.x * 13
A13.y = localGroup.y * 1
A14.x = localGroup.x * 14
A14.y = localGroup.y * 1
A15.x = localGroup.x * 15
A15.y = localGroup.y * 1
A16.x = localGroup.x * 16
A16.y = localGroup.y * 1
A17.x = localGroup.x * 17
A17.y = localGroup.y * 1
A18.x = localGroup.x * 18
A18.y = localGroup.y * 1
A19.x = localGroup.x * 19
A19.y = localGroup.y * 1
A20.x = localGroup.x * 20
A20.y = localGroup.y * 1
A21.x = localGroup.x * 21
A21.y = localGroup.y * 1
A22.x = localGroup.x * 22
A22.y = localGroup.y * 1
A23.x = localGroup.x * 23
A23.y = localGroup.y * 1
A24.x = localGroup.x * 24
A24.y = localGroup.y * 1
A25.x = localGroup.x * 25
A25.y = localGroup.y * 1
A26.x = localGroup.x * 26
A26.y = localGroup.y * 1
A27.x = localGroup.x * 27
A27.y = localGroup.y * 1
A28.x = localGroup.x * 28
A28.y = localGroup.y * 1
–INSERT POSITIONS FOR ROW 2
B1.x = localGroup.x * 1
B1.y = localGroup.y * 2
B2.x = localGroup.x * 2
B2.y = localGroup.y * 2
B3.x = localGroup.x * 3
B3.y = localGroup.y * 2
B4.x = localGroup.x * 4
B4.y = localGroup.y * 2
B5.x = localGroup.x * 5
B5.y = localGroup.y * 2
B6.x = localGroup.x * 6
B6.y = localGroup.y * 2
B7.x = localGroup.x * 7
B7.y = localGroup.y * 2
B8.x = localGroup.x * 8
B8.y = localGroup.y * 2
B9.x = localGroup.x * 9
B9.y = localGroup.y * 2
B10.x = localGroup.x * 10
B10.y = localGroup.y * 2
B11.x = localGroup.x * 11
B11.y = localGroup.y * 2
B12.x = localGroup.x * 12
B12.y = localGroup.y * 2
B13.x = localGroup.x * 13
B13.y = localGroup.y * 2
B14.x = localGroup.x * 14
B14.y = localGroup.y * 2
B15.x = localGroup.x * 15
B15.y = localGroup.y * 2
B16.x = localGroup.x * 16
B16.y = localGroup.y * 2
B17.x = localGroup.x * 17
B17.y = localGroup.y * 2
B18.x = localGroup.x * 18
B18.y = localGroup.y * 2
B19.x = localGroup.x * 19
B19.y = localGroup.y * 2
B20.x = localGroup.x * 20
B20.y = localGroup.y * 2
B21.x = localGroup.x * 21
B21.y = localGroup.y * 2
B22.x = localGroup.x * 22
B22.y = localGroup.y * 2
B23.x = localGroup.x * 23
B23.y = localGroup.y * 2
B24.x = localGroup.x * 24
B24.y = localGroup.y * 2
B25.x = localGroup.x * 25
B25.y = localGroup.y * 2
B26.x = localGroup.x * 26
B26.y = localGroup.y * 2
B27.x = localGroup.x * 27
B27.y = localGroup.y * 2
B28.x = localGroup.x * 28
B28.y = localGroup.y * 2
–Insert row 3
–Insert row 4
–Insert row 5
localGroup:insert( player1 )
localGroup:insert( box01 )
player1.x = 320
player1.y = 200
player1.xScale = 0.7
player1.yScale = 0.7
player1.isPlayer = true
box01.x = 240
box01.y = 300
box01.collision = onBounce
box01.rotation = 20
– Player tiles Physics
physics.addBody( player1, { density=0.9, friction=0.5, bounce=0.5, radius=22 } )
– Physics Walls
– Object physics
physics.addBody( box01, “static”, physicsData:get(“box01”))
– Colors
– Listeners
Runtime:addEventListener( “enterFrame”, moveCamera )
Runtime:addEventListener( “accelerometer”, onTilt )
box01:addEventListener( “collision”, box01 )
player1:addEventListener( “touch”, startDrag )
end
– CLEAN
function clean ( event )
print(“2 cleaned”)
end
– NEW
function new()
localGroup = display.newGroup()
– Initiate variables
initVars()
– MUST return a display.newGroup()
return localGroup
end
[import]uid: 44742 topic_id: 8727 reply_id: 308727[/import]