k i just singed in
I added you
PSN ID: splodger15
How can i fix it Yaustar
PSN ID: splodger15
give playerCarX100 and enemyCarX90 a value
Rewrite the if statement so that it is legal syntax. Beyond that, until you tell us what it is supposed to mean, we can't do anything:
if car1X100 > car2X90 then
score = score +1
end
Well i wanted it to if the player1 x axis was bigger than the car2 x axis i wanted the score to go up by 1
PSN ID: splodger15
That is the code, word for word for what you said above.if player.x > car2.x then
score = score + 1
end
Thanks for that Yaustar i added that to my script.But i still keep on getting this error (See pic)
Here is my latest 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")
player1.x=100
car2.x=100
score = 0
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 player.x > car2.x 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
PSN ID: splodger15
This is a relatively simple and you should take a much better effort in solving it yourself.
You make the variable player1 point to the same image as car1.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")
You then treat it as though it is a table which it isn't and that is what it is complaining about.player1.x=100
car2.x=100
score = 0
This is simple to fix that you should be able to do by yourself.
The fact that later in the script, you have a set of data that represents the player attributes again shows that you haven't thought about the design of the code very much as you don't use player1x, player1y or even player1.x anywhere else in the code.
Think about what you are coding at every stage and why every line of code exists.player = {}
player.x = 25
player.y = 100
playerHeight = 63
playerWidth = 33
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks