Code archives/3D Graphics - Effects/MISSLE COMMAND

This code has been declared by its author to be Public Domain code.

Download source code

MISSLE COMMAND by ANIMAL2006
PARTICALS MADE EASY ( RIP ) THIS ROTINE APART
TO MAKE PARICALS MUTI EXPLOTIONS
AND MACHINEGUNS OR SPACE INVADERS

THIS ONES EASY TO UNDER STAND AND EASY TO USE
; THIS SHOULD RUN IN VERSIONS OF BLITZ 2D PLUS 3D MAX

; MY FRENDS SAY MY CODE IS SCRUFFY I THINK THERE RIGHT
; BUT IT WORKS AND THATS THE MAIN THING 
; I DIDT GO TO COLLOAGE I LERNT ME SELF 
; THIS IS A SMALL MISSILE COMMAND ROTINE 
; IT HELPS YOU LEARN TYPES THE QUIK WAY

;								 TYPES And NOT ARRAYS 

; 


;						 PARTICLES MAD EASY WITH MISSILE COMMAND 


;	TYPES AND ARRAYS 
; THAY ARE BOTH  VERY COOL TO USE ; A BEGINNER SHOULD LERN THEM BOTH
; BEFOR ATTEMPTING 3D SUPPER COOL GRAPHICS 
; PS I HOPE MY CODE ISNT TO SCRUFFY LOL
; EASY AS  A.B.C  ( AKA ANIMAL ) WELL HERE ANY WAY 



	; THIS IS NOT IN 3D BUT WILL CONVERT VERY EASY

	Graphics 800,600,16,1		; SORRY NO GRAPHICS TEST O WELL FULL SCREEN
	;Graphics 800,600,16,2		; SORRY NO GRAPHICS TEST O WELL WINDOW MODE

	SetBuffer BackBuffer()
	HidePointer    ;    use this  in full screen mode	HIDES THE MOUSE U KNOW
	
	Global ant,GROUND,CITY ;ONLY FREE NEEDED
		
	Const miss=10   ; HOW MANY MISSILES 			
	;Const colr=9437584 ; window mode  COLOUR TEST
	Const colr=9437328  ; fullscreen mode COLOUR TEST
			
			
	 ; 	A CUSTOM TYPE FOR THERE WEPONS		
	Type missiles
	Field	ox 
	Field	oy
	Field	ny
	Field	nx
	End Type
	
	; ANOTHER CUSTOM TYPE FOR YOUR WEPON
	
	
	Type WEP
	Field X#
	Field Y#
	Field R#
	Field V#
	Field DX
	Field flag
	End Type
	

			
		
	For t=1 To miss
		m.missiles = New missiles
		m\Ox=400
		m\Ox=Rnd(800)
		m\Ny=0
		m\NX=Rnd(800)
	Next
		
		makecircles() ; GO MAKE SOME CIRCLES
	

		 ClsColor 400,000,400  ; THE COLOUR OF THE BACKGROUND
		
		
	m.missiles = First missiles	
	W.WEP = First WEP		
	Color 255,170,0 
		
		
		; PLEASE DELETE THE REM STATMENTS TO MAKE PROGRAM EASY TO READ FROM HERE
		
		
		; BUT READ THEM FIRST
		
	While Not KeyDown(1)
		mx=MouseX()
		my=MouseY()
		Cls
		
		; draw a cross 
		Line MX,MY,MX+6,MY
		Line MX+3,MY-3,MX+3,MY+3	
	
	; THIS IS IT A CONSTANT NEW WEPONS ROTINE 
	; ALLSO USED FOR PATICAL EXPLOSIONS IN 3D MODE WITH A LITTLE WORK
	; AND 3D WEPONDS ROKETS AND MACHINE GUNS QUICK AND SIMPLE 
	; UNLIKE THE OTHERS IV DOWNLOLDED ALL VERY LONG WINDED  
	; BUT I MUST SAY A LOT MORE ADVANCED THAN MINE 
	;											     ILL HAVE TO LEARN A ?
	; DO  REMEBER TO DELETE THE TYPE VAR= AFTER U HAVE FINSHED WITH IT ( SAVE YOUR MEMORY )
	; PS  GOT LOTS OF MEMORY LOL  SO I DIDENT BOTHER
		
		If MouseDown (1)  ; NEW EXPLOTION ON MOUSE CLICK TADA ( OR ENTITY )
							;       IF U WISH TO USE AN ENTITY USE THE Z VECTOR 
							;		 LEAVE THE FLASHY STUFF TO THE EXSPERTS
							;
							;		IE ( MOVEENTITY BLA,0,0,W\Z ) IN BLTZ3D AND MAX
							
							;			           ( DONT FORGET IN MAX TO INT ALL VARS FIRST)
							
 
				w.WEP = New WEP
				w\X#=0
				w\Y#=0
				w\R#=0
				w\V#=0
				w\DX=0
				w\flag=0
				
				W\flag=1
				W\x#=mx
				W\y#=my
				
				
				
				W\v#=-0.5 
				; W\V#=-0.5  IS AN OFFSET BECUSE OVAL DOSENT DRAW CIRCLES FROM THE MIDDLE EM
				;
				;  DRAW A REAL CIRCLE FROM THE MIDDLE And ANY X,Y Origin U CHOSE
				;
				; X=300:Y=300:R=50	; R BEING THE RADIUS X AND Y POINT OF ORIGIN
				; 
				; For ANGLE=0 To 359 
				; 	
				;	NX=X+R*Sin(ANGLE):NY=Y+R*Cos(ANGLE)
				; 	
				;		Line X,Y,NX,NY
				; 			X=NX:Y=NY
				; NEXT
				;
				; FROM THE MIDDLE
				; ALSO GOOD FOR SENDING 3D ENTITYS AROUND IN CIRCLES LWITH POSITION ENTITY
				
 				Line 400,600,mx,my ; DRAW A LINE TO YOUR EXPLOSION
				w\DX=1 ; W\DX IS THE AMOUST IM MOVEING MY OFFSET BY 1 
		EndIf
		
		
		; HERE IT IS WEPONS GO BANG 
		
    For W.WEP = Each WEP
		
		If W\flag>0 
			W\r=W\r+W\dx ;THIS IS WHERE U MOVE GO BANG OR LUNCH MISSILE BULLET BOME SPACEINVADER
			
			; ANT IS THE NAME OF MY  CIRCLES IMAGE	
			 DrawImage ant,W\x#,W\y#,W\r ; WEPON BANG MISILE BOME EXPLODE WHAT EVERR U LIKE 
										; W\R IS USED FOR MY IMAGE FRAME  AT THE MOMENT
										; BUT YOU CAN USE IT FOR SAY AN ENTITY >??????		
			 W\x#=W\x#+W\V# ; THIS BIT PUTS ME CIRCLES CENTRE
			 W\y#=W\y#+W\V# ; THIS BIT PUTS ME CIRCLES CENTRE
		
			 If W\r>50  ; THIS BIT SWITCS MODE FROM OUT TO IN
			W\flag=2
			W\DX=-1 ; NOW DX SETS -1 TO GOT BACK TO ORIGINAL POS 
			W\v#=1
			EndIf
			
					If W\r<1 ; THIS BIT KILLS THE EXPLOTION
	 					W\r=0      ; R IS MY LIFE TIMMER R=0 END OF EXPLOSION OR DISTANCE TRAVALED
						W\flag=0   ; SET FLAG TO 0 SO IT DOSENT APEAR AGAIN
						
						W\x#=0		; QUICK CLEANUP
						W\y#=0		;
						W\DX=0		; CLEAN UP END
					EndIf
			
		  EndIf 
		
	Next
		
; AND THATS THAT CONSTANT WEPONS THE EASY WAY IN 32 LINES OF CODE ( IF U DOUBLE THEM UP LESS )


		
		
	For m.missiles = Each missiles
		
		m\ny=m\ny+3 ; MOVE THE MISSILE
		
; GET THE COLOUR OFF THE SCREEN IN FROUNT OF YOU MISSILE		
u=ReadPixelFast (m\nx,m\ny) And $FFFFFF ; JUST SOMETIMES THIS IS EASYER THAN COLLISION TESTING EM 
		
		If m\ny>600 Or U<>colr ; DO SOME TESTS 
			m\ox=Rnd(800)
			If m\ox<400  Then m\nx=m\ox-(Rnd(50))
			If m\ox>400 Then m\nx=m\ox+(Rnd(50))
			If m\ox=400 Then m\nx=400
				m\oy=0
				m\ny=0
		EndIf
			Line m\ox,m\oy,m\nx,m\ny
	Next		
		
		Text 100,100,U
		DrawImage CITY,100,500,0
		DrawImage CITY,350,500,0
		DrawImage CITY,650,500,0
		DrawImage GROUND,0,500,0  
		
		
		
		Delay 10 ; TO SLOW THINGS DOWN 
	
	
	Flip ; SOMETHING ABOUT DOUBLE BUFFERING
Wend ;		 END OFF THE LOOP
		
		
		
		Function makecircles()
		; THIS IS THE ONLY FUNCTION IM USING CUZ THE THING WILL RUN TO FAST TRY IT AND SEE
		
ant=CreateImage (100,100,60)
ql=1:xl#=100:yl#=100
For tl=0 To 100 Step 2
ql=ql+1
xl#=xl#+0.1:yl#=yl#+0.1
Color 200+Rnd(40),Rnd(50),0 
Oval xl#,yl#,tl,tl

GrabImage ant,100,100,ql
Cls
;Flip
Next
Cls

Color 255,0,0 ; RED
GROUND=CreateImage (800,100) 
Rect 0,50,800,50,1
GrabImage GROUND,0,0



Cls

CITY=CreateImage (100,50)
Color 255,255,0 ; YELLOW

Rect 10,30,50,50,1

Rect 20,20,30,20,1
Color 0,255,0 ; GREEN
Rect 0,40,70,20,1
GrabImage CITY,0,0


End Function

Comments

None.

Code Archives Forum