TGC Codebase Backup



ParameterCatcher by ShadowCentaur 2

24th Jul 2005 1:53
Summary

A simple game that uses no media.



Description

A little game that uses no media. uses text to create sprites. move the paddle around to catch the falling symbols of x's (integers), #'s (real), and $'s (string). a great way to waste a few minutes during a commercial break, and somebody might learn a bit from it. fully commented so it's easy to read



Code
                                    ` This code was downloaded from The Game Creators
                                    ` It is reproduced here with full permission
                                    ` http://www.thegamecreators.com
                                    
                                    rem ***********************************************************************
rem Parameter Catcher!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
rem ***********************************************************************

sync rate 0

hide mouse

gosub menu

rem set up sprite position arrays
dim spriteposx(100)
dim spriteposy(100)

rem set up highscore array
dim highscore(1)

rem load up cursor sprite
ink rgb(255,255,255),rgb(0,0,0)
text 0,0,"v"
get image 1,0,0,10,15
sprite 1,mousex(),mousey(),1
size sprite 1,80,15
cls

rem load up x,#,and $ sprites
rem x
ink rgb(0,255,0),rgb(0,0,0)
text 0,0,"x"
get image 2,0,0,10,15
cls

for x=2 to 50
	spriteposx(x)=rnd(640)
	spriteposy(x)=rnd(480)
next x

rem #
ink rgb(0,0,255),rgb(0,0,0)
text 0,0,"#"
get image 3,0,0,10,15
cls

for y=51 to 75
	spriteposx(y)=rnd(640)
	spriteposy(y)=rnd(480)
next y

rem $
ink rgb(255,0,0),rgb(0,0,0)
text 0,0,"$"
get image 4,0,0,10,15
cls

for z=76 to 78
	spriteposx(z)=rnd(640)
	spriteposy(z)=rnd(480)
next y

rem load sprite for score meter
ink rgb(255,255,0),rgb(0,0,0)
text 0,0,"*"
get image 5,0,0,10,15
cls

rem main loop ************************************************************
do

	rem draw paddle
	if score<1000 then sprite 1,mousex(),400,1

	rem manage x's
	for x=2 to 50
		spriteposy(x)=spriteposy(x)+1+int(sqrt(x)/2)
		sprite x,spriteposx(x),spriteposy(x),2
		if spriteposy(x)>480
			spriteposy(x)=0
			spriteposx(x)=rnd(640)
		endif

		if sprite collision(1,x)=1
			score=score+1
			spriteposy(x)=0
			spriteposx(x)=rnd(640)

		endif

	next x

	rem rem manage #'s
	for y=51 to 75
		spriteposy(y)=spriteposy(y)+1+int(sqrt(y))
		sprite y,spriteposx(y),spriteposy(y),3
		if spriteposy(y)>480
			spriteposy(y)=0
			spriteposx(y)=rnd(640)
		endif

		if sprite collision(1,y)=1
			score=score+3
			spriteposy(y)=0
			spriteposx(y)=rnd(640)
		endif
	next y

	rem manage $'s
	for z=76 to 78
		spriteposy(z)=spriteposy(z)+1+int(z/7)
		sprite z,spriteposx(z),spriteposy(z),4
		if spriteposy(z)>480
			spriteposy(z)=0
			spriteposx(z)=rnd(640)
		endif

		if sprite collision(1,z)=1
			score=score+10
			spriteposy(z)=rnd(200)-1000
			spriteposx(z)=rnd(640)
		endif
	
	next z
	
	rem score meter
	
	for s=1 to int(score/100)
		sprite s+80,10*s,465,5
	next x
	
	if score=>1000
		set text size 100
		text 0,0,"you Win"
		text 0,100,"Press Esc to Quit"
		if escapekey()=1 then end
	endif	
	
	sync
loop

rem Menu Subroutine!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
menu:

		set text size 10
		ink rgb(255,255,0),rgb(0,0,0)

		rem instructions
		center text 320,50,"Press Enter to start and press Esc to quit."
		center text 320,70,"Use the Mouse to Guide the Paddle Horizontally"
		center text 320,100,"Get 1000 points to win!" 
		center text 320,120,"You get a yellow star every 100 pts."
	
		rem print score values
		set text size 100
		ink rgb(0,255,0),rgb(0,0,0)
		center text 320,150,"x : 1 point"

		ink rgb(0,0,255),rgb(0,0,0)
		center text 320,250,"# : 3 points"
	
		ink rgb(255,0,0),rgb(0,0,0)
		center text 320,350,"$ : 10 points"
		
		rem reset text size
		set text size 10

	do
		

		rem check controlls
		if returnkey()=1 then return
		if escapekey()=1 then ink rgb(255,255,255),rgb(0,0,0) : end

	loop