Hey,
I just wondered if anyone can have a quick look at my code.
rem setup display
set display mode 640,480,32
sync on : sync rate 0
hide mouse
load_media()
rem declare global variables
global worldx = 0
global worldy = -65
global playerx = 10
global playery# = 250.0
global leftmovevalue = 1
global rightmovevalue = 1
global xoffset1
global yoffset1
global playerup = 0
global playerdown = 0
global playerright = 0
global playerleft = 0
global gravity# = 0.5
get_floors()
do
cls
movement()
place_images()
show_floors()
set cursor 5,10 : print screen fps()
sync
loop
`----------------------------------------------------------------------------------------------------------------------------
function load_media()
load image "gulv1.png",1,1 `background image
load image "player.png",2,1 `player image
load image "playercollision.png",3,1 `player collision placement
load bitmap "solid.png",1
set current bitmap 0
endfunction
function place_images()
rem background image
sprite 1,worldx,worldy,1
offset sprite 1,xoffset1,yoffset1
rem player image
sprite 2,playerx,playery#,2
sprite 3,playerx,playery#,3
endfunction
function movement()
if leftkey() = 1
playerleft = 1
playerright = 0
else
playerleft = 0
endif
if rightkey() = 1
playerright = 1
playerleft = 0
else
playerright = 0
endif
if playerleft = 1
dec xoffset1,1
dec playerx,leftmovevalue
endif
if playerright = 1
inc xoffset1,1
inc playerx,rightmovevalue
endif
if xoffset1 > 506 then xoffset1 = 506
if xoffset1 < 0 then xoffset1 = 0
if yoffset1 > -3 then yoffset1 = -3
if yoffset1 < - 77 then yoffset1 = -77
if playerright = 1 and xoffset1 => 506
rightmovevalue = 2
else
rightmovevalue = 1
endif
if playerleft = 1 and xoffset1 = 0
leftmovevalue = 2
else
leftmovevalue = 1
endif
if playerx < 0 then playerx = 0
if playerx > 620 then playerx = 620
playery# = playery# + gravity#
endfunction
function get_floors()
set current bitmap 1
get image 1001,1,426,320,427
get image 1002,446,490,637,491
get image 1003,702,458,829,459
get image 1004,893,458,990,459
get image 1005,1054,426,1146,427
get image 1006,115,209,243,210
get image 1007,286,266,413,267
get image 1008,446,330,512,331
get image 1009,637,394,670,395
get image 1010,797,362,893,363
get image 1011,251,82,347,83
get image 1012,510,138,670,139
get image 1013,698,144,765,145
get image 1014,891,204,940,205
get image 1015,1067,145,1132,146
set current bitmap 0
endfunction
function show_floors()
sprite 1001,0,361,1001
sprite 1002,446,425,1002
sprite 1003,702,393,1003
sprite 1004,893,393,1004
sprite 1005,1054,361,1005
sprite 1006,115,144,1006
sprite 1007,286,201,1007
sprite 1008,446,265,1008
sprite 1009,637,329,1009
sprite 1010,797,297,1010
sprite 1011,251,17,1011
sprite 1012,510,73,1012
sprite 1013,698,79,1013
sprite 1014,891,143,1014
sprite 1015,1067,80,1015
for fzone = 1001 to 1015
offset sprite fzone,xoffset1,yoffset1
next fzone
endfunction
function check_player()
gravity# = 0.5
for fzone = 1001 to 1015
if sprite collision(3,fzone) >= 1
gravity# = 0
endif
next fzone
endfunction
It is the basis of a 2d platformer. So far i have the scrolling done and have just started working on the collision. I am using the get image command to get the floors and then place them as sprites. This is all well and good until I come to check for collision between the player and the sprite. For some reason it doesnt recognise that there is a collision between the two and just lets the player carry on falling.
Any help would be greatly apreciated,
Cheers Code Monkey