home *** CD-ROM | disk | FTP | other *** search
- rem Input Showcase
-
- rem Standard Setup Code for all examples
- sync on : sync rate 120 : hide mouse
- set text font "arial" : set text size 16
- set text to bold : set text transparent
-
- rem Prepare Force Feedback (if available)
- desc$="Machine Gun Joystick"
- ForcePresent=0
- empty checklist
- PERFORM CHECKLIST FOR CONTROL DEVICES
- for c=1 to checklist quantity()
- if checklist value a(c)=1
- SET CONTROL DEVICE checklist string$(c)
- ForcePresent=1
- desc$=desc$+" (with Force)"
- endif
- next c
-
- rem Load wall and images
- set image colorkey 255,0,255
- load bitmap "wall.bmp",1
- load image "hole.bmp",1
- load image "crosshair.bmp",2
- load image "fire.bmp",3
-
- rem Load sound
- load sound "gun.wav",1
- for t=2 to 10
- clone sound t,1
- next t
-
- rem Setup crosshair sprite
- set current bitmap 0
- set sprite 1,0,1
- offset sprite 1,16,16
- draw to back
-
- rem Setup bullet sprite
- sprite 2,-100,-100,1
- set sprite 2,0,1
- offset sprite 2,8,8
- size sprite 2,16,16
- set sprite alpha 2,128
-
- rem Particle effect setup
- autocam off : backdrop off
- make particles 1,3,50,2.0
- rotate particles 1,270,0,0
- set particle speed 1,0.02
-
- rem Set start pos
- posx#=320
- posy#=240
-
- rem Main loop
- do
-
- rem Read joystick
- posx#=posx#+(joystick x()/500.0)
- posy#=posy#+(joystick y()/500.0)
- posx=posx# : posy=posy#
- fire=joystick fire a()
-
- rem Paste backdrop
- copy bitmap 1,0
-
- rem Position crosshair
- sprite 1,posx,posy,2
-
- rem Make bullet hole if triggered
- if fire=1 and cool=0
-
- rem Make bullet hole
- set current bitmap 1
- r#=rnd(359)
- rx=cos(r#)*rnd(20)
- ry=sin(r#)*rnd(20)
- paste sprite 2,posx+rx,posy+ry
- paste sprite 2,1000,1000
- set current bitmap 0
-
- rem Generate some particles
- position particles 1,0,0,5
- position particle emissions 1,(posx-320)/120.0,0,(240-posy)/120.0
- emis=2
-
- rem Hear machine gun
- cool=10
- for t=1 to 10
- if sound playing(t)=0 then play sound t : t=11
- next t
-
- rem Gun recoil
- if ForcePresent=1 then force shoot 100,100
-
- endif
- if cool>0 then dec cool
-
- rem Control emissions
- set particle emissions 1, emis
- if emis>0 then dec emis
-
- rem Show Framerate
- ink rgb(255,255,255),0 : text 20,screen height()-40,desc$
- fps$="DBPro Fps: "+str$(screen fps())
- text screen width()-20-text width(fps$),screen height()-40,fps$
-
- rem Update screen
- sync
-
- rem End loop
- loop
-