TANKGAME by Anonymous Coder23rd Jan 2004 12:20
|
---|
Summary SIMPLE SPRITE ANIMATION DEMO Description SIMPLE TANK BATTLE DEMO SHOWING HOW TO USE SPRITES ON A SINGLE PC Code ` This code was downloaded from The Game Creators ` It is reproduced here with full permission ` http://www.thegamecreators.com Rem Project: TANKGAME Rem Created: 1/12/2004 10:20:48 AM Rem ***** Main Source File ***** INPUT "YOUR NAME ",YOURNAME$ INPUT " type 1 FOR STRAIGHT SHOTS OR 2 FOR GUIDED SHOTS",CONTROLSHOT SET DISPLAY MODE 640,480,16 SYNC ON SYNC RATE 30 SET TEXT SIZE 20 load sound "gun 3.wav",1 input:print statements, " " DIM TANKXPOS(2) DIM TANKYPOS(2) DIM TANKANGLE(2) SHOTREADY=1 SHOTREADY2=1 red = 0 red1=100 green=0 green1=100 CLS HIDE MOUSE LOAD BITMAP "TANK.BMP",1 SET CURRENT BITMAP 1 GET IMAGE 1,0,0,40,40 SET CURRENT BITMAP 0 SPRITE 1,20,240,1 SCALE SPRITE 1,82 OFFSET SPRITE 1,20,20 LOAD BITMAP "TANK2.BMP",2 SET CURRENT BITMAP 2 GET IMAGE 2,0,0,40,40 SET CURRENT BITMAP 0 SPRITE 2,600,240,2 SCALE SPRITE 2,82 OFFSET SPRITE 2,20,20 LOAD BITMAP "SHELL.BMP",3 SET CURRENT BITMAP 3 GET IMAGE 3,0,0,10,10 LOAD BITMAP "SHELL2.BMP",4 SET CURRENT BITMAP 4 GET IMAGE 4,0,0,10,10 load bitmap "barrier.bmp",5 set current bitmap 5 get image 5,150,130,170,360 SET CURRENT BITMAP 0 sprite 5,280,120,5 DO GOSUB CONTROLLERHANDLER GOSUB CONTROLSHOT GOSUB CONTROLLERHANDLER2 GOSUB CONTROLSHOT2 text 29,19,str$(red1)+" "+str$(red) text 580,19,str$(green1)+" "+str$(green) if red1<1then shotready=0 if green1<1 then shotready2=0 SYNC LOOP END CONTROLLERHANDLER: TANKXPOS(1)=SPRITE X(1) TANKYPOS(1)=SPRITE Y(1) TANKANGLE(1)=SPRITE ANGLE(1) IF JOYSTICK X()>300 OR JOYSTICK X()<-300 IF JOYSTICK X()>300 ANGLE=ANGLE+5 ANGLE=WRAPVALUE(ANGLE) ELSE ANGLE=ANGLE-5 ANGLE=WRAPVALUE(ANGLE) ENDIF ROTATE SPRITE 1,ANGLE ENDIF IF JOYSTICK Y()>300 OR JOYSTICK Y()<-300 IF JOYSTICK Y()<0 VELOCITY=JOYSTICK SLIDER A()/5000 ELSE VELOCITY=-JOYSTICK SLIDER A()/5000 ENDIF MOVE SPRITE 1,VELOCITY IF TANKOFFSCREEN(1)=1 SPRITE 1,TANKXPOS(1),TANKYPOS(1),1 ENDIF ENDIF IF JOYSTICK FIRE A()=1 AND SHOTREADY=1 and red1>0 play sound 1 dec red1 SPRITE 3,TANKXPOS(1),TANKYPOS(1),3 ROTATE SPRITE 3,TANKANGLE(1) ENDIF RETURN CONTROLSHOT: if sprite exist(3)=1 if sprite collision(3,2)=0 shotready=0 offset sprite 3,5,5 IF CONTROLSHOT=2 rotate sprite 3,tankangle(1) ENDIF move sprite 3,10 if tankoffscreen(3)=1 delete sprite 3 endif else red=red+10 delete sprite 3 endif else shotready=1 endif RETURN CONTROLLERHANDLER2: TANKXPOS(2)=SPRITE X(2) TANKYPOS(2)=SPRITE Y(2) TANKANGLE(2)=SPRITE ANGLE(2) IF LEFTKEY()=1 OR RIGHTKEY()=1 IF LEFTKEY()=1 ANGLE2=ANGLE2-5 ANGLE2=WRAPVALUE(ANGLE2) ELSE ANGLE2=ANGLE2+5 ANGLE2=WRAPVALUE(ANGLE2) ENDIF ROTATE SPRITE 2,ANGLE2 ENDIF IF UPKEY()=1 OR DOWNKEY()=1 IF UPKEY()=1 VELOCITY=5 ELSE VELOCITY=-5 ENDIF MOVE SPRITE 2,VELOCITY IF TANKOFFSCREEN(2)=1 SPRITE 2,TANKXPOS(2),TANKYPOS(2),2 ENDIF ENDIF IF SPACEKEY()=1 AND SHOTREADY2=1 and green1>0 dec green1 SPRITE 4,TANKXPOS(2),TANKYPOS(2),4 ROTATE SPRITE 4,TANKANGLE(2) play sound 1 ENDIF RETURN CONTROLSHOT2: if sprite exist(4)=1 if sprite collision(4,1)=0 shotready2=0 offset sprite 4,5,5 IF CONTROLSHOT=2 rotate sprite 4,tankangle(2) ENDIF move sprite 4,10 if tankoffscreen(4)=1 delete sprite 4 endif else green=green+10 delete sprite 4 endif else shotready2=1 endif RETurn FUNCTION TANKOFFSCREEN(TANKNUMBER) IF SPRITE X(TANKNUMBER)<=20 OR SPRITE X(TANKNUMBER)>=620 OR SPRITE Y(TANKNUMBER)<=20 OR SPRITE Y(TANKNUMBER)>=460 OR SPRITE COLLISION(TANKNUMBER,5)=1 OR SPRITE COLLISION(1,2)=1 OR SPRITE COLLISION(2,1)=1 OFFSCREEN=1 ELSE OFFSCREEN=0 ENDIF ENDFUNCTION OFFSCREEN |