Join for FREE | Take the Tour Lost Password?
Shop deviantART for the
holidays and save BIG!
Click here! :holly:
[x]

deviantART

 
About Me Member Deviously Deviant gameprogrammerMale/United States Recent Activity Deviant for 4 Years
Needs Premium Membership
Statistics 0 Deviations
1 Comment
247 Pageviews

Baby Splash Source Code

Thu May 18, 2006, 12:18 AM
I thought I would post this source code for all of those wondering what I spent the last week of Spring Semester working on.

Note: Any line that has "REM" or this ` is a commented line.

REM Project: LevelSorted
REM Created: 4/21/2006 7:10:52 PM
REM
REM ***** Main Source File *****
REM
`Initialize Program
HIDE MOUSE
SET IMAGE COLORKEY 0, 255, 255
LOAD IMAGE "textures\START.jpg", 20
PASTE IMAGE 20, 0, 0, 1
WAIT KEY
SYNC ON
SYNC RATE 200
COLOR BACKDROP RGB(0, 0, 255)
CLS
`Initalize variables
pointerX = 0
pointerY = 0
pointerZ = 0
bullet = -50
bulletLife = -50
gunObj = 1
plain = 2
bulletObj = 3
ground = 4
ammoTexture = 1
particleColor = 2
groundTexture = 3
gunStateOne = 4
gunStateTwo = 5
ghostTexture = 6
pirateMonkeyTexture = 7
monsterTexture = 8
crossHair = 9
winGame = 10
loseGame = 11
enemies = 0
waves = 4

`Load Images and textures
GOSUB _images_and_textures
`Make objects and cameras
GOSUB _objects_and_cameras
`Set up Cameras
GOSUB _camera_setup
`setup Lights
GOSUB _lights_setup
`setup objects
GOSUB _object_setup

DO
`camera control
GOSUB _camera_control
`controlling gun firing
GOSUB _gun_firing
`collision
GOSUB _collision
`controlling bullet life
GOSUB _bullet_life_death
`kill explosion
GOSUB _explosion_kill
`enemy wave control
GOSUB _enemy_wave
`calculate object facing
GOSUB _turning_objects
`move monsters
GOSUB _monster_movement
`lose game
GOSUB _lose_condition
SYNC
LOOP

_monster_movement:
IF waves > -1
FOR x = 6 TO 11
IF OBJECT EXIST (x)
MOVE OBJECT x, .2
ENDIF
NEXT x
ENDIF
RETURN

_wave_4:
enemies = 6
FOR x = 6 TO 7
MAKE OBJECT PLAIN x, 10, 10
MAKE OBJECT PLAIN x + 2, 10, 10
MAKE OBJECT PLAIN x + 4, 10, 10
TEXTURE OBJECT x, ghostTexture
TEXTURE OBJECT x + 2, pirateMonkeyTexture
TEXTURE OBJECT x + 4, monsterTexture
POSITION OBJECT x, RND(150), 0, -150
POSITION OBJECT x + 2, -RND(150), 0, -150
POSITION OBJECT x + 4, RND(150), 0, -150
SET OBJECT COLLISION TO SPHERES x
SET OBJECT COLLISION TO SPHERES x + 2
SET OBJECT COLLISION TO SPHERES x + 4
SET OBJECT TRANSPARENCY x, 1
SET OBJECT TRANSPARENCY x + 2, 1
SET OBJECT TRANSPARENCY x + 4, 1
NEXT x
RETURN

_wave_3:
enemies = 6
FOR x = 6 TO 7
MAKE OBJECT PLAIN x, 10, 10
MAKE OBJECT PLAIN x + 2, 10, 10
MAKE OBJECT PLAIN x + 4, 10, 10
TEXTURE OBJECT x, ghostTexture
TEXTURE OBJECT x + 2, pirateMonkeyTexture
TEXTURE OBJECT x + 4, monsterTexture
POSITION OBJECT x, -150, 0, RND(150)
POSITION OBJECT x + 2, -150, 0, -RND(150)
POSITION OBJECT x + 4, -150, 0, RND(150)
SET OBJECT COLLISION TO SPHERES x
SET OBJECT COLLISION TO SPHERES x + 2
SET OBJECT COLLISION TO SPHERES x + 4
SET OBJECT TRANSPARENCY x, 1
SET OBJECT TRANSPARENCY x + 2, 1
SET OBJECT TRANSPARENCY x + 4, 1
NEXT x
RETURN

_wave_2:
enemies = 6
FOR x = 6 TO 7
MAKE OBJECT PLAIN x, 10, 10
MAKE OBJECT PLAIN x + 2, 10, 10
MAKE OBJECT PLAIN x + 4, 10, 10
TEXTURE OBJECT x, ghostTexture
TEXTURE OBJECT x + 2, pirateMonkeyTexture
TEXTURE OBJECT x + 4, monsterTexture
POSITION OBJECT x, RND(150), 0, 150
POSITION OBJECT x + 2, -RND(150), 0, 150
POSITION OBJECT x + 4, RND(150), 0, 150
SET OBJECT COLLISION TO SPHERES x
SET OBJECT COLLISION TO SPHERES x + 2
SET OBJECT COLLISION TO SPHERES x + 4
SET OBJECT TRANSPARENCY x, 1
SET OBJECT TRANSPARENCY x + 2, 1
SET OBJECT TRANSPARENCY x + 4, 1
NEXT x
RETURN

_wave_1:
enemies = 6
FOR x = 6 TO 7
MAKE OBJECT PLAIN x, 10, 10
MAKE OBJECT PLAIN x + 2, 10, 10
MAKE OBJECT PLAIN x + 4, 10, 10
TEXTURE OBJECT x, ghostTexture
TEXTURE OBJECT x + 2, pirateMonkeyTexture
TEXTURE OBJECT x + 4, monsterTexture
POSITION OBJECT x, 150, 0, RND(150)
POSITION OBJECT x + 2, 150, 0, -RND(150)
POSITION OBJECT x + 4, 150, 0, RND(150)
SET OBJECT COLLISION TO SPHERES x
SET OBJECT COLLISION TO SPHERES x + 2
SET OBJECT COLLISION TO SPHERES x + 4
SET OBJECT TRANSPARENCY x, 1
SET OBJECT TRANSPARENCY x + 2, 1
SET OBJECT TRANSPARENCY x + 4, 1
NEXT x
RETURN


_enemy_wave:
IF enemies = 0
IF waves = 4
GOSUB _wave_1
DEC waves
ELSE
IF waves = 3
GOSUB _wave_2
DEC waves
ELSE
IF waves = 2
GOSUB _wave_3
DEC waves
ELSE
IF waves = 1
GOSUB _wave_4
DEC waves
ELSE
GOTO _win_game
END
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
RETURN


_win_game:
HIDE SPRITE 1
HIDE SPRITE 2
HIDE SPRITE 3
CLS
LOAD IMAGE "textures\WIN.jpg", 18
PASTE IMAGE 18, 0, 0, 0
SYNC
WAIT KEY
END
RETURN

RETURN

_lose_condition:
FOR x =6 TO 11
IF OBJECT EXIST (x)
X1 = OBJECT POSITION X (x)
Y1 = OBJECT POSITION Y (x)
Z1 = OBJECT POSITION Z (x)
IF X1 = 0
IF Y1 = 0
IF Z1 = 0
HIDE SPRITE 1
HIDE SPRITE 2
HIDE SPRITE 3
SPRITE 5, 0, 0, loseGame
SYNC
WAIT KEY
END
ENDIF
ENDIF
ENDIF
ENDIF
NEXT x
RETURN

_explosion_kill:
FOR x = 1 TO 2
IF PARTICLES EXIST(1) > 0
IF particleLife > 0
dec particleLife
ELSE
DELETE PARTICLES 1
ENDIF
ENDIF
NEXT x
RETURN

_explosion_create:
IF PARTICLES EXIST (1) = 0
MAKE PARTICLES 1, particleColor, 10000, 20
POSITION PARTICLES 1, OBJECT POSITION X (bulletObj), -5, OBJECT POSITION Z (bulletObj)
SET PARTICLE EMISSIONS 1, 10000
SET PARTICLE GRAVITY 1, 0
SET PARTICLE FLOOR 1, 0
SHOW PARTICLES 1
IF PARTICLES EXIST (2) > 0
DELETE PARTICLES 2
ENDIF
ELSE
MAKE PARTICLES 2, particleColor, 10000, 20
POSITION PARTICLES 2, OBJECT POSITION X (bulletObj), -5, OBJECT POSITION Z (bulletObj)
SET PARTICLE EMISSIONS 2, 10000
SET PARTICLE GRAVITY 2, 0
SET PARTICLE FLOOR 2, 0
SHOW PARTICLES 2
IF PARTICLES EXIST (1) > 0
DELETE PARTICLES 1
ENDIF
ENDIF
RETURN

_collision:
IF bullet>0
FOR x =6 TO 11
IF OBJECT EXIST (x)
IF OBJECT COLLISION (bulletObj, x) > 0
HIDE OBJECT x
DELETE OBJECT x
DEC enemies
GOSUB _explosion_create
particleLife = 80
bulletImpact=1
ENDIF
ENDIF
NEXT x
ENDIF
RETURN

_bullet_life_death:
IF bullet>0
IF BSP COLLISION HIT (2)=1 or bulletImpact=1
bulletImpact=0
bullet=0
ELSE
DEC bullet
MOVE OBJECT bulletObj,0.5
ENDIF
IF bullet=0
SET BSP COLLISION OFF 2
HIDE OBJECT bulletObj
ENDIF
ELSE
IF bullet > bulletLife
DEC bullet
ELSE
HIDE SPRITE 2
SHOW SPRITE 1
ENDIF
ENDIF
RETURN

_gun_firing:
IF MOUSECLICK ()=1 and bullet = bulletLife
bullet=100
POSITION OBJECT bulletObj,CAMERA POSITION X (0),CAMERA POSITION Y (0),CAMERA POSITION Z (0)
ROTATE OBJECT bulletObj,CAMERA ANGLE X (0),CAMERA ANGLE Y (0),0
SHOW OBJECT bulletObj
MOVE OBJECT bulletObj,0.2
HIDE SPRITE 1
SHOW SPRITE 2
ENDIF
RETURN

_turning_objects:
FOR x = 6 TO 11
IF OBJECT EXIST (x)
pointerX = CAMERA POSITION X()
pointerY = CAMERA POSITION Y()
pointerZ = CAMERA POSITION Z()
POINT OBJECT x, pointerX, pointerY, pointerZ
ENDIF
NEXT x
RETURN

_camera_control:
rotate camera camera angle x(0)+(mousemovey()/2.0),camera angle y(0)+(mousemovex()/2.0),0
RETURN

_object_setup:
SHOW OBJECT ground
POSITION OBJECT ground, 0, -5, 0
XROTATE OBJECT ground, 90
TEXTURE OBJECT ground, groundTexture
SET OBJECT WIREFRAME ground, 0
SET OBJECT WIREFRAME bulletObj, 0
TEXTURE OBJECT bulletObj, ammoTexture
SET OBJECT COLLISION TO SPHERES bulletObj
SET OBJECT RADIUS bulletObj, 2
SPRITE 1, 288, 88, gunStateOne
SPRITE 2, 288, 88, gunStateTwo
SPRITE 3, 350, 250, crossHair
HIDE SPRITE 2
SET OBJECT TRANSPARENCY bulletObj, 1
SET CURRENT BITMAP 0
RETURN

_lights_setup:
SET AMBIENT LIGHT 100
COLOR AMBIENT LIGHT RGB(255, 255, 255)
RETURN

_camera_setup:
SET CAMERA RANGE 0.1,5000
AUTOCAM OFF
RETURN

_objects_and_cameras:
MAKE OBJECT PLAIN ground, 300, 300
MAKE OBJECT PLAIN bulletObj, 1, 1
HIDE OBJECT bulletObj
POSITION CAMERA 0, 0, 0
RETURN

_images_and_textures:
SET IMAGE COLORKEY 0, 255, 255
LOAD BITMAP "textures\Baby_512.bmp", 1
GET IMAGE ammoTexture, 0, 0, 512, 512, 0
LOAD BITMAP "textures\Gun_State1.bmp", 2
GET IMAGE gunStateOne, 0, 0, 501, 512
LOAD BITMAP "textures\Gun_State2.bmp", 3
GET IMAGE gunStateTwo, 0, 0, 501, 512
LOAD BITMAP "textures\CrossHair.bmp", 4
GET IMAGE crossHair, 0, 0, 100, 100
LOAD BITMAP "textures\Over.bmp", 6
GET IMAGE loseGame, 0, 0, 800, 600
LOAD IMAGE "textures\ground.jpg", groundTexture
LOAD IMAGE "textures\ParticleColor.bmp", particleColor
LOAD IMAGE "textures\Monster_003_512.bmp", ghostTexture
LOAD IMAGE "textures\Monster_002_512.bmp", pirateMonkeyTexture
LOAD IMAGE "textures\Monster_001_512.bmp", monsterTexture
RETURN

deviantID

No deviantID yet.

Devious Info

No devious info yet.

deviantART Community Board

[x]

Comments


:iconfarawayeyes:
Thanks for the :+fav: on Child of the Moon. It means a lot.
:iconfarawayeyes:
Thanks for putting me on your watch list! Hope to see you around!

Far Away Eyes

Site Map