Rem Project: StarArena3000
Rem Created: 9/14/2006 7:05:15 PM
Rem ***** Main Source File *****
rem init settings
sync on: sync rate 60: hide mouse
if check display mode (1024,768,32)=1 then set display mode 1024,768,32
REM Load all media for game
Rem =======Load Images, Bitmaps, and Sprites=========
load bitmap "media\gfx\space_background.bmp",1
create animated sprite 1,"media\gfx\starfighter2spritesheet.png",4,4,2
load image "media\gfx\fullshields.png",3
load image "media\gfx\halfshields.png",4
load image "media\gfx\missile.png",5
load image "media\gfx\barrierHT.png",6
load image "media\gfx\barrierWT.png",7
Rem ========Sound effects and Music
load sound "media\sfx\shipthrust2.wav",1
Rem ---------------------------------------
copy bitmap 1,0
REm sprite variables
Global SHIP# as integer : SHIP# = 1
Global FULLSHIELD# as integer : FULLSHIELD# = 2
Global HALFSHIELD# as integer : HALFSHIELD# = 3
Global missilnum as integer
Global BarrierHT# as integer :BarrierHT# = 5
Global BarrierWT# as integer :BarrierWT# = 6
Rem ---------------
rem allows background to show through sprite
set sprite SHIP#,1,1
set sprite FULLSHIELD#,1,1
set sprite HALFSHIELD#,1,1
set sprite Missile#,1,1
set sprite BarrierHT#,1,1
set sprite BarrierWT#,1,1
set sprite priority SHIP#,1
rem places the SHIP# sprite at position (100,100) on the screen from image 2.
rem places the FULLSHIELD# sprite at position (100,100) on the screen from image 3.
rem places the HALFSHIELD# sprite at position (100,100) on the screen from image 4.
sprite SHIP#,100,100,2
sprite FULLSHIELD#,100,100,3
sprite HALFSHIELD#,100,100,4
rem sprite Missile#,100,90,5
sprite BarrierHT#,0,0,6
sprite BarrierWT#,0,0,7
offset sprite SHIP#,32,32
offset sprite Fullshield#,32,32
offset sprite HALFSHIELD#,32,32
offset sprite Missile#,5,0
set current bitmap 0
a#= 0 : REM Ship Angle
speed = 0
gofast = 0
type omissile
id as integer
endtype
rem show sprite barrierHT#
rem show sprite barrierWT#
rem game loop==========================================================================
do
rem move sprite 1,speed
show sprite SHIP#
hide sprite Missile#
hide sprite FULLSHIELD#
hide sprite HalfShield#
hide sprite barrierHT#
hide sprite barrierWT#
A# = mousex()
rotate sprite SHIP#, A# + 3
rotate sprite fullshield#, A# + 3
rotate sprite halfshield#, A# + 3
rem rotate sprite Missile#, A#
rotate sprite missile#,sprite angle(ship#)
ShipThrust(gofast)
ShipAttack(Shoot)
BarrierWTCollision()
BarrierHTCollision()
rem move sprite Missile#,10
for x=1 to missilnum
if sprite exist(missile(missilnum).id)
show sprite missile(missilnum).id
move sprite missile(missilnum).id, missilespeed
endif
next x
rem update screen
sync
loop
rem end game loop =========================================================================
rem end program
end
Function ShipThrust(gofast)
gofast = mouseclick()
if gofast = 2 or gofast = 3
speed = 7
play sound 1
play sprite 1,1,3,99
move sprite SHIP#, speed
move sprite FULLSHIELD#, speed
move sprite HALFSHIELD#, speed
endif
if gofast = 0
stop sound 1
speed = 3
set sprite frame 1, 0
show sprite SHIP#
move sprite SHIP#,2
move sprite FULLSHIELD#,2
move sprite HALFSHIELD#,2
rem rotate sprite 1, A# + 3
endif
EndFunction
Function ShipAttack(Shoot)
inc missilnum,1
dim missile(missilnum) as omissile
missile#=free_sprite()
missile(missilnum).id=missile#
Shoot = Mouseclick()
if shoot = 1 or shoot = 3
MissileSpeed = 20
xxx = sprite x(SHIP#)
yyy = sprite y(SHIP#)
sprite MISSILE# ,xxx,yyy,5
endif
ENDFUNCTION
Function BarrierWTCollision()
rem hide sprite 6
if sprite y(SHIP#) < 20
sprite BarrierWT#,0,5,7
show sprite BarrierWT#
endif
rem hide sprite 5
if sprite y(SHIP#) > 730
sprite BarrierWT#,0,760,7
show sprite BarrierWT#
endif
EndFunction
Function BarrierHTCollision()
rem hide sprite 5
newangle = sprite angle(SHIP#)
if sprite x(SHIP#) < 20
sprite BarrierHT#,0,5,6
show sprite BarrierHT#
endif
rem hide sprite 5
if sprite x(SHIP#) > 1010
sprite BarrierHT#,1015,0,6
show sprite BarrierHT#
endif
EndFunction
function free_sprite()
repeat
inc s,1
until sprite exist(s)=0
endfunction s
Try this.. i not 100% sure does it work because havent tested.. if it gives error tell me.