the 2 variables (playerCarX100 and enemyCarX90) are not set variables, although im 99% sure that you accidentally got the names wrong. Cant help you though, since ive only just start learning lua...again, lol
I am getting this error in my script can someone help me out.
game.lua:173:attempt to compare two nil values
It seems to be the bit in bold on the script
-- 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
----------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 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
if car1X100 > car2X90 then
score = score +1
end
screen:clear()
screen:blit(XScrollPosition, 0, road)
screen:blit(2,2,score)
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
PSN ID: splodger15
the 2 variables (playerCarX100 and enemyCarX90) are not set variables, although im 99% sure that you accidentally got the names wrong. Cant help you though, since ive only just start learning lua...again, lol
Is there someone that can help
PSN ID: splodger15
Thats why i think it is wrong
I am no good at scoring in Lua
PSN ID: splodger15
I was going to have it so that if the player's x axis was bigger than the enemy's x axis you have a point added
PSN ID: splodger15
you cant do that cause you didn't make those into variables. you can try something like this
player.x=100
enemy.x=100
points=50
while true do
screen:clear()
pad=Controls.read()
if player.x>enemy.x then
points=points+2
end
its just that you never made a variable for you enemy x axis well thats what I think cause I dont have anyway of testing it
Gizmo i put in that script you showed me but i am getting this error (See Pic) I have made the line bold that has the error
Here is the code
-- 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
player1.x=100
car2.x=100
screen:blit(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>car2.x then
score=score+2
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
PSN ID: splodger15
hey lets talk on msn it will be alot easyier just add me.
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks