This is the main code:-
Rem Project: Dark Basic Pro Project
Rem Created: Tuesday, September 20, 2011
Rem ***** Main Source File *****
SYNC ON : SYNC RATE 60
SET DISPLAY MODE DESKTOP WIDTH(), DESKTOP HEIGHT(), 32, 1
B2SETSCALE 100, 180.0/3.1415926535, 1, 10000
B2SETSCREENTRANSFORM 0, 0, 1, 0
GLOBAL world AS INTEGER
GLOBAL multi AS INTEGER : multi = 100000000
GLOBAL ANISPEED# AS FLOAT : ANISPEED# = 0.15
world = B2CREATEWORLD(0, 2000, 1)
ground = CREATESTATICBOX( SCREEN WIDTH()/2, ( SCREEN HEIGHT()/2 )+500,2000, 200)
ground = CREATESTATICBOX( SCREEN WIDTH()/2, ( SCREEN HEIGHT()/2 )-500,2000, 200)
`BACKGROUND
LOAD IMAGE "Ani/back.png", 49,1
`STANDING IMAGE
LOAD IMAGE "Ani/char_stand_left.png", 50,1
LOAD IMAGE "Ani/char_stand_right.png", 51,1
`run animation
LOAD IMAGE "Ani/char_run_1.png",52,1
LOAD IMAGE "Ani/char_run_l_1.png",61,1
LOAD IMAGE "Ani/char_run_2.png",53,1
LOAD IMAGE "Ani/char_run_l_2.png",62,1
LOAD IMAGE "Ani/char_run_3.png",54,1
LOAD IMAGE "Ani/char_run_l_3.png",63,1
LOAD IMAGE "Ani/char_run_4.png",55,1
LOAD IMAGE "Ani/char_run_l_4.png",64,1
LOAD IMAGE "Ani/char_run_5.png",56,1
LOAD IMAGE "Ani/char_run_l_5.png",65,1
LOAD IMAGE "Ani/char_run_6.png",57,1
LOAD IMAGE "Ani/char_run_l_6.png",66,1
LOAD IMAGE "Ani/char_run_7.png",58,1
LOAD IMAGE "Ani/char_run_l_7.png",67,1
LOAD IMAGE "Ani/char_run_8.png",59,1
LOAD IMAGE "Ani/char_run_l_8.png",68,1
LOAD IMAGE "Ani/char_run_9.png",60,1
LOAD IMAGE "Ani/char_run_l_9.png",69,1
TYPE char_type
SHAPEID# AS INTEGER
BODYID# AS INTEGER
FIXTUREID# AS INTEGER
POSX# AS FLOAT
POSY# AS FLOAT
DENSITY# AS FLOAT
FRICTION# AS FLOAT
RESTITUTION# AS FLOAT
MOVESPEED# AS FLOAT
CONTACT# AS INTEGER
FACING# AS INTEGER
MOVING# AS INTEGER
R_COUNT# AS FLOAT
R_L_COUNT# AS FLOAT
ROPING# AS INTEGER
ENDTYPE
GLOBAL char AS char_type
char.SHAPEID# = B2CREATEPOLYGONSHAPEASBOX( 55, 94 )
char.BODYID# = B2CREATEBODY( world, B2BODYTYPE_DYNAMIC(), SCREEN WIDTH()/2, SCREEN HEIGHT()/2, 0, 1, 1 )
char.DENSITY# = 5
char.FRICTION# = 0.2
char.RESTITUTION# = 0.0
char.MOVESPEED# = 0.5
char.FIXTUREID# = B2CREATEFIXTURE( char.BODYID#, char.SHAPEID#, char.DENSITY#, char.FRICTION#, char.RESTITUTION# )
char.R_COUNT# = 52
char.R_L_COUNT# = 61
char.MOVING# = 0
char.ROPING# = 0
back = B2CREATEBODY(world, B2BODYTYPE_STATIC(), SCREEN WIDTH()/2, SCREEN HEIGHT()/2,0,1)
B2SETBODYIMAGE back,49,1
B2SETBODYIMAGEPRIORITY back,-1
drawShapes = 1
drawJoints = 1
drawAABBs = 0
drawPairs = 0
drawCenters = 1
drawDebug =0
DO
B2SETDEBUGDRAW drawShapes, drawJoints, drawAABBs, drawPairs, drawCenters
CHAR_MOVEMENT( )
ROPE()
B2STEPWORLD world, 1.0/60.0
B2DRAWWORLD world, drawDebug
BOX 0,911,SCREEN WIDTH(),1000
SYNC
CLS
LOOP
And this is the one for the functions : -
Rem ***** Included Source File *****
FUNCTION CHAR_MOVEMENT( )
B2FINDBODYCONTACTS char.BODYID#
char.CONTACT# = B2GETCONTACT( )
char.POSX# = B2GETBODYPOSITIONX( char.BODYID# )
char.POSY# = B2GETBODYPOSITIONY( char.BODYID# )
IF KEYSTATE( 30 )
B2APPLYBODYFORCE char.BODYID#, -char.MOVESPEED#*multi, 0, char.POSX#, char.POSY#
char.FACING# = 0
char.MOVING# = 1
ENDIF
IF KEYSTATE( 32 )
B2APPLYBODYFORCE char.BODYID#, char.MOVESPEED#*multi, 0, char.POSX#, char.POSY#
char.FACING# = 1
char.MOVING# = 1
ENDIF
IF SPACEKEY( ) AND char.CONTACT# > 0
B2APPLYBODYFORCE char.BODYID#, 0, -1.5*multi, char.POSX#, char.POSY#
ENDIF
IF char.CONTACT# = 0
char.MOVESPEED# = 0.04
ELSE
char.MOVESPEED# = 0.2
ENDIF
IF SCANCODE( ) = 0
B2SETFIXTUREFRICTION char.FIXTUREID#, 4
char.MOVING# = 0
char.R_COUNT# = 52
char.R_L_COUNT# = 61
ELSE
B2SETFIXTUREFRICTION char.FIXTUREID#, 0.2
ENDIF
If char.MOVING# = 1
Select char.FACING#
case 0:
INC char.R_COUNT#, ANISPEED#
B2SETBODYIMAGE char.BODYID#, char.R_COUNT#, 1
IF char.R_COUNT# > 60.8
char.R_COUNT# = 54
ENDIF
ENDCASE
CASE 1:
INC char.R_L_COUNT#, ANISPEED#
B2SETBODYIMAGE char.BODYID#, char.R_L_COUNT#, 1
IF char.R_L_COUNT# > 69.8
char.R_L_COUNT# = 63
ENDIF
ENDCASE
ENDSELECT
else
IF char.FACING# = 0
B2SETBODYIMAGE char.BODYID#, 50, 1
ELSE
IF char.FACING# = 1
B2SETBODYIMAGE char.BODYID#, 51, 1
ENDIF
ENDIF
ENDIF
ENDFUNCTION
Function ROPE()
IF MOUSECLICK() = 1 AND char.ROPING# = 0
FIXTURE = B2PICKFIXTURE (world, MOUSEX(), MOUSEY(), 0)
IF FIXTURE
BODYID = B2GETFIXTUREBODY( FIXTURE )
JOINT = B2CREATEDISTANCEJOINT (world, char.BODYID#, BODYID, B2GETBODYPOSITIONX( char.BODYID# ), B2GETBODYPOSITIONY( char.BODYID# ), MOUSEX(), MOUSEY())
char.ROPING# = 1
ENDIF
ENDIF
IF char.ROPING# = 1
IF MOUSECLICK() = 0
B2DELETEJOINT JOINT
BODYID = 0
JOINT = 0
char.ROPING# = 0
ENDIF
ENDIF
ENDFUNCTION
FUNCTION CREATESTATICBOX( x, y, w, h )
shape = B2CREATEPOLYGONSHAPEASBOX( w, h )
body = B2CREATEBODY( world, B2BODYTYPE_STATIC(), x, y )
fixture = B2CREATEFIXTURE( body, shape, 1 )
ENDFUNCTION body
life is short but so am i