my codes are
gosub Vars
gosub loadimages
Sync on : Sync rate 30
Load image "pic\sunnysky.bmp", bgID
for i = 1 To 3
load image "pic\floor.bmp", platformID(i)
next i
do
anim = 0
paste image bgID, 0, 0
for i = 1 to 3
sprite platformID(i), platform1_x(i), platform1_y(i), platformID(i)
next i
gosub collision
gosub playerSprites
gosub playerMovement
gosub playerAnim
gosub playerBoundryChk
gosub gravity
Sync
Loop
Vars:
playerID = 1
x# = 100
y# = 87
Anim = 0
fRight = 1
Frame = 0
imgNum = 1
bgID = 100
gravity# = 3
jumping = 0
jumpspeed = 2
falling = 0
dim platformID(3)
dim platform1_x(3)
dim platform1_y(3)
for i = 1 to 3
platformID(i) = 100 + i
platform1_x(1) = 100
platform1_y(1) = 150
platform1_x(2) = 200
platform1_y(2) = 250
platform1_x(3) = 300
platform1_y(3) = 450
next i
Return
loadimages:
load image "pic\walking.bmp", 1
load image "pic\walk1.bmp", 2
load image "pic\walk2.bmp", 3
load image "pic\walk3.bmp", 4
load image "pic\falling.bmp", 5
load image "pic\jump.bmp", 6
return
playerSprites:
if jumping = 0
old_y = y#
endif
sprite playerID, x#, y#, imgNum
jumpmax = old_y - 150
Return
collision:
if sprite collision (playerID, platformID(1)) = 1
falling = 0
jumping = 0
y# = y#
endif
if sprite collision (playerID, platformID(3)) = 1
falling = 0
jumping = 0
y# = y#
endif
if sprite collision (playerID, platformID(2)) = 1
falling = 0
jumping = 0
y# = y#
endif
if falling = 0 and sprite collision (playerID, 0) = 0
falling = 1
endif
Return
gravity:
if falling = 1
y# = y# + gravity#
imgNum = 5
endif
if jumping = 1
imgNum = 6
y# = y# - (jumpspeed*3)
endif
if y# <= jumpmax
falling = 1
jumping = 3
endif
Return
playerMovement:
Rem walk Right
if rightkey()=1
if controlkey()=1
Rem running right
x# = x# + 5
Endif
x#=x# + 3
if fRight = 0
Mirror Sprite 1
fRight = 1
Endif
Anim=1
Endif
Rem walking left
if leftkey()=1
if controlkey()=1
x# = x# -5
Endif
x#=x# - 3
if fRight = 1
Mirror Sprite 1
fRight = 0
Endif
Anim=1
Endif
Rem Crouching
if downkey()=1
Anim=2
Endif
Rem Jumping
if upkey()=1 and jumping = 0 and falling = 0
jumping = 1
Anim=3
Endif
Return
playerAnim:
if Anim=1
imgNum=2 + (Frame/2)
Frame=Frame + 1
IF frame>4 THEN Frame = 0
ELSE imgNum=1
ENDIF
rem for CROUCHING
if Anim=2
imgNum=5
endif
rem for JUMPING
if Anim=3
imgNum=6
endif
return
playerBoundryChk:
if x#<0
x#=0
endif
if x# > screen width()-sprite width(1)
x# = screen width() - sprite width(1)
Endif
Return
my problem is in line
collision:
if sprite collision (playerID, platformID(1)) = 1
falling = 0
jumping = 0
y# = y#
endif
if sprite collision (playerID, platformID(3)) = 1
falling = 0
jumping = 0
y# = y#
endif
if sprite collision (playerID, platformID(2)) = 1
falling = 0
jumping = 0
y# = y#
endif
if falling = 0 and sprite collision (playerID, 0) = 0
falling = 1
endif
Return
it says that the sprite does not exist. but it is clearly existing. pls help me
<angelo>
i have a problem in darkbasic codes. pls help me