I dont think that your problem lies in your code i just think it has to do with the format of the png images change them and make sure that the encoding of these images are .png if you do this it should work.
I keep on getting this error code in my lua script
------------------------------------------------------------------
libpng error: not a PNG file
Here is my 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)
dofile("menu.lua")
end
end
Room_width = 480
Room_height = 272
player1x = 15
player1y = 136
background =Image.load ("images/road.PNG")
player1=Image.load("images/car1.PNG")
car2=Image.load("car2.PNG")
car3=Image.load("car3.PNG")
car4=Image.load("car4.PNG")
----------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 = 250
player.y = 100
playerHeight = 63
playerWidth = 33
car2 = {}
car2.x = 128
car2.y = 90
car2Height = 63
car2Width = 33
car2.pic = car2
car3 = {}
car3.x = 228
car3.y = 20
car3Height = 63
car3Width = 33
car3.pic = car3
car4 = {}
car4.x = 28
car4.y = 20
car4Height = 63
car4Width = 33
car4.pic = car4
character = car1
------------------player sprite loading--------------
function rands1()
rand2 = math.random(1,3)
if rand2 ==1 then
car2.pic = car2
end
if rand2 ==2 then
car3.pic = car3
end
if rand2 ==3 then
car4.pic = car4
end
end
function rands2()
rand3 = math.random(1,3)
if rand3 ==1 then
car2.pic = car2
end
if rand3 ==2 then
car3.pic = car3
end
if rand3 ==3 then
car4.pic = car4
end
end
function rands3()
rand4 = math.random(1,3)
if rand4 ==1 then
car2.pic = car2
end
if rand4 ==2 then
car3.pic = car3
end
if rand4 ==3 then
car4.pic = car4
end
end
XScrollPosition = 480
numberOfScrolls = 0
while true do
math.randomseed(os.time() )
rand=math.random(1,3)
random1 =math.random(20,25)
random2 =math.random(90,95)
random3 =math.random(192,197)
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("index1.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 -10
car3.x = car3.x-10
car4.x = car3.x-10
end
if rand ==2 then
car2.x = car2.x -10
car3.x = car3.x-10
car4.x = car3.x-10
end
if rand ==3 then
car2.x = car2.x -10
car3.x = car3.x-10
car4.x = car3.x-10
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
-----------------------------------------------------------------
Any help will be much appreciated
PSN ID: splodger15
I dont think that your problem lies in your code i just think it has to do with the format of the png images change them and make sure that the encoding of these images are .png if you do this it should work.
So i changed all my images to png
and i am getting this error now
------------------------------------------------------------------
error: SCRIPT.LUA:18: Image.load:error loading image
------------------------------------------------------------------
Can someone help me out with this
PSN ID: splodger15
Make sure your image paths for that image on line 14 are corrrect and that the image is in the correct folder, trust me ive made that mistake loads of times![]()
car1 is nil therefore character is nil. (look at the top of your code where you have "character = car1" ).
What can i do to fix it
PSN ID: splodger15
you havent declared car1
instead of;
player1=Image.load("images/car1.PNG")
use;
car1=Image.load("images/car1.PNG")
player1=car1
I corrected that bit you said to but now i am getting
Can someone please help me out with this
------------------------------------------------------------------
error:SCRIPT.LUA:214: bad argument #2 to 'blit' (image expected ,got nil)
PSN ID: splodger15
at a guess its because you havent declared the variable on line 214.
from the error msg it is trying to blit an image but the image doesn't exist.
find the image variable on line 214 and declare it
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks