PDA

View Full Version : Lua Error



splodger15
January 6th, 2007, 19:18
I am getting this error in my script (See Pic).But have no idea how to fix it. Can someone help me out with this

Line 141 is in bold

-- Created by splodger15

----------detect other cars collision--------------
function detectCollision(player, opponent)
if (player.x + character:width() > opponent.x) and (player.x < opponent.x + opponent.pic:width()) and (player.y + character:height() > opponent.y) and (player.y < opponent.y + opponent.pic:height()) then
screen.waitVblankStart(60)
score = score - 1
end
end


Room_width = 480
Room_height = 272
player1x = 15
player1y = 136
road=Image.load("images/road.PNG")
background=road
car1=Image.load("images/car1.PNG")
player1=car1
car2=Image.load("images/car2.PNG")
car3=Image.load("images/car3.PNG")
car4=Image.load("images/car4.PNG")

score = 0


screen:print(2,2,score)


---------walls------------

wall1 = Image.createEmpty(480,2)
wall2 = Image.createEmpty(2,272)
wall3 = Image.createEmpty(2,272)
wall4 = Image.createEmpty(480,2)

wall1 = {x = 0, y = 0, height = wall1:height(), width = wall1:width() }
wall2 = {x = 450, y = 0, height = wall2:height(), width = wall2:width() }
wall3 = {x = 0, y = 0, height = wall3:height(), width = wall3:width() }
wall4 = {x = 0, y = 299, height = wall4:height(), width = wall4:width() }



player = {}
player.x = 25
player.y = 100
playerHeight = 63
playerWidth = 33

car2 = {}
car2.x = 128
car2.y = 90
car2Height = 63
car2Width = 33
car2.pic = Image.load("images/car2.PNG")

car3 = {}
car3.x = 228
car3.y = 90
car3Height = 63
car3Width = 33
car3.pic = Image.load("images/car3.PNG")

car4 = {}
car4.x = 28
car4.y = 20
car4Height = 63
car4Width = 33
car4.pic = Image.load("images/car4.PNG")

character = car1

------------------player sprite loading--------------

function rands1()
rand2 = math.random(1,3)
end

function rands2()
rand3 = math.random(1,3)
end

function rands3()
rand4 = math.random(1,3)
end

XScrollPosition = 480

numberOfScrolls = 0

while true do
math.randomseed(os.time() )
rand=math.random(1,3)
random1 =math.random(20,115)
random2 =math.random(90,195)
random3 =math.random(192,225)

pad = Controls.read()
screen:clear()

oldx = player.x
oldy = player.y
screen:clear()

if pad:left() then
character = car1
player.x = player.x - 2
end

if pad:right() then
character = car1
XScrollPosition = XScrollPosition - 10
if XScrollPosition < 0 then
XScrollPosition = XScrollPosition + 480
numberOfScrolls = numberOfScrolls + 1
end
end

if pad:up() then
character = car1
player.y = player.y - 2
end

if pad:down() then
character = car1
player.y = player.y + 2
end

if pad:triangle() then
dofile("map.lua")
end

if pad:square() then
Image:save("screenshot.png")
end

if pad:start() then
break
end

if player1.x >= 20 and car2.x <=10 then
score = score +1
end


if rand ==1 then
car2.x = car2.x -5
car3.x = car3.x-5
car4.x = car3.x-5
end

if rand ==2 then
car2.x = car2.x -5
car3.x = car3.x-5
car4.x = car3.x-5
end

if rand ==3 then
car2.x = car2.x -5
car3.x = car3.x-5
car4.x = car3.x-5
end

if car2.x <=0 then
car2.x =510
car2.y = random1
rands1()
end

if car3.x <=0 then
car3.x = 520
car3.y = random2
rands2()
end

if car4.x <=0 then
car4.x = 500
car4.y = random3
rands3()
end



screen:clear()

screen:blit(XScrollPosition, 0, road)



if XScrollPosition > 0 then
screen:blit(XScrollPosition - 480, 0, road)
else
screen:blit(XScrollPosition + 480, 0, road)
end

if numberOfScrolls > 30 then
dofile("eol.lua")
end

if player.x > 448 then
Player.x = 448
end
if player.x < 0 then
player.x = 0
end

if player.y > 240 then
player.y = 240
end
if player.y < 0 then
player.y = 0
end


detectCollision(player, car2)
detectCollision(player, car3)
detectCollision(player, car4)

-----------blit background and player------------

screen:blit(player.x, player.y, character)
screen:blit(car2.x, car2.y, car2.pic)
screen:blit(car3.x, car3.y, car3.pic)
screen:blit(car4.x, car4.y, car4.pic)
screen.flip()
screen.waitVblankStart()
end

Gizmo356
January 6th, 2007, 21:30
I dont see player1.x as a variable only player1x so I think that is your problem try it.

V3N0M
January 6th, 2007, 21:44
I just looked this over real quick because I’m busy at the moment. But from what I can see you need to define your player1.x as
player1 = {}
player1.x = #
player1.y = #

Oh something I just noticed, your

player1x = 15
player1y = 136

Does not have a " . " in between the 1 and the x or the 1 and the y.
Should be like this…

Player1.x = 15
Player1.y = 136

PS. Gizmo - player1.x or player1x are both correct ways to do it, doesn't matter which one you use even though I prefer the player1x

Gizmo356
January 6th, 2007, 22:00
Oo Cool Jman I didn't even know that lol thnx for the tip.

V3N0M
January 6th, 2007, 22:09
Oo Cool Jman I didn't even know that lol thnx for the tip.

No problem. :cool:

splodger15
January 6th, 2007, 22:37
Thank you Jman that fixed that error

Thanks again :thumbup: :thumbup:

V3N0M
January 6th, 2007, 23:13
Thank you Jman that fixed that error

Thanks again :thumbup: :thumbup:

Once again, No problem. :cool: Glad I could help you.