--screenshot
niveaub=1

perso = Image.load("jeu/marioperso.png")
Perso = {}
Perso[1] = { x = 10, y = 210, alive=true }
block = Image.load("jeu/peach.png")
Block = {}                                                                                         
Block[1] = { x = 190, y = 123, alive=true }
enemy = Image.load("jeu/bowser.png")
enemy2 = Image.load("jeu/bowser2.png")
Enemy = {}
Enemy[1] = { x=130,y=165, pic = enemy2, alive=true }
Enemy[2] = { x=399,y=240, alive=true }
Enemy[3] = { x=399,y=37, alive=true }
mariosound = Sound.load("jeu/mario.wav", true)
voice = mariosound:play()
mur = Image.load("jeu/lab2.png")
sol = Image.load("jeu/sol.png")
transparent = mur:pixel(0,0)

while true do
screen:clear()
screen:blit(0,0,sol)
screen:blit(0,0,mur)
screen:blit(Block[1].x,Block[1].y,block)
screen:blit(Perso[1].x,Perso[1].y,perso)
screen:blit(Enemy[1].x,Enemy[1].y,enemy2)
screen:blit(Enemy[2].x,Enemy[2].y,enemy)
screen:blit(Enemy[3].x,Enemy[3].y,enemy)
pad = Controls.read()

function move_player()

if pad:left() then
direction="left" 
if Perso[1].x>1 then
Perso[1].x=Perso[1].x-3
end
end
if pad:right() then
direction="right"
if Perso[1].x<460 then
Perso[1].x=Perso[1].x+3
end
end
if pad:up() then Perso[1].y = Perso[1].y - 3 end
if pad:down() then Perso[1].y =  Perso[1].y + 3 end
end

function move_enemy()

Enemy[1].x=Enemy[1].x+2
Enemy[2].x=Enemy[2].x-3.5
Enemy[3].x=Enemy[3].x-0.2
if (Enemy[1].x>325) then
Enemy[1].x=130
elseif (Enemy[2].x<175) then
Enemy[2].x=399
elseif (Enemy[3].x<375) then
Enemy[3].x=399
end
end

function collision_peach()

if Block[1].alive then

if Perso[1].x+11>Block[1].x and Perso[1].x<Block[1].x+11 and Perso[1].y+11>Block[1].y and Perso[1].y<Block[1].y+11 then--si mario commence a pénétrer dans le block (d et g permettent d'ajuster exactement le point de collision à gauche et à droite de mario; cad d=nombre de pixel entre le bord droit de l'image marioright et le pixel de mario le plus proche de ce bord, et g=nombre de pixel entre le bord gauche de l'image marioleft et le pixel de mario le plus proche de ce bord)

voice:stop()
dofile("gagne2.lua")

end
end
end

function collision_enemy()

for a=1,3 do
if Enemy[a].alive then

if Perso[1].x+15>Enemy[a].x and Perso[1].x<Enemy[a].x+15 and Perso[1].y+15>Enemy[a].y and Perso[1].y<Enemy[a].y+15 then--si mario commence a pénétrer dans le block (d et g permettent d'ajuster exactement le point de collision à gauche et à droite de mario; cad d=nombre de pixel entre le bord droit de l'image marioright et le pixel de mario le plus proche de ce bord, et g=nombre de pixel entre le bord gauche de l'image marioleft et le pixel de mario le plus proche de ce bord)

voice:stop()
dofile("perdu.lua")

end
end
end
end


function collision_mur()

couleurhaut = mur:pixel(Perso[1].x+10,Perso[1].y+8)
couleurdroite = mur:pixel(Perso[1].x+18,Perso[1].y+13)
couleurbas = mur:pixel(Perso[1].x+10,Perso[1].y+22)
couleurgauche = mur:pixel(Perso[1].x+1,Perso[1].y+13)
if couleurhaut ~= transparent then Perso[1].y = Perso[1].y + 3 end
if couleurdroite ~= transparent then Perso[1].x = Perso[1].x - 3 end
if couleurbas ~= transparent then Perso[1].y = Perso[1].y - 3 end
if couleurgauche ~= transparent then Perso[1].x = Perso[1].x + 3 end 
end

if pad:select() then
screen:save("ms0:/PSP/PHOTO/niveaub"..niveaub..".png")
niveaub=niveaub+1
end

collision_mur()
move_player()
collision_peach()
move_enemy()
collision_enemy()

screen.flip()
screen.waitVblankStart()
end
