[bb] MISSLE COMMAND by ANIMAL [ 1+ years ago ]

Started by BlitzBot, June 29, 2017, 00:28:42

Previous topic - Next topic

BlitzBot

Title : MISSLE COMMAND
Author : ANIMAL
Posted : 1+ years ago

Description : 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


Code :
Code (blitzbasic) Select
; 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
mOx=400
mOx=Rnd(800)
mNy=0
mNX=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 ) IN BLTZ3D AND MAX

;           ( DONT FORGET IN MAX TO INT ALL VARS FIRST)

 
w.WEP = New WEP
wX#=0
wY#=0
wR#=0
wV#=0
wDX=0
wflag=0

Wflag=1
Wx#=mx
Wy#=my



Wv#=-0.5
; WV#=-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
wDX=1 ; WDX IS THE AMOUST IM MOVEING MY OFFSET BY 1
EndIf


; HERE IT IS WEPONS GO BANG

    For W.WEP = Each WEP

If Wflag>0
W=W+Wdx ;THIS IS WHERE U MOVE GO BANG OR LUNCH MISSILE BULLET BOME SPACEINVADER

; ANT IS THE NAME OF MY  CIRCLES IMAGE
DrawImage ant,Wx#,Wy#,W ; WEPON BANG MISILE BOME EXPLODE WHAT EVERR U LIKE
; WR IS USED FOR MY IMAGE FRAME  AT THE MOMENT
; BUT YOU CAN USE IT FOR SAY AN ENTITY >??????
Wx#=Wx#+WV# ; THIS BIT PUTS ME CIRCLES CENTRE
Wy#=Wy#+WV# ; THIS BIT PUTS ME CIRCLES CENTRE

If W>50  ; THIS BIT SWITCS MODE FROM OUT TO IN
Wflag=2
WDX=-1 ; NOW DX SETS -1 TO GOT BACK TO ORIGINAL POS
Wv#=1
EndIf

If W<1 ; THIS BIT KILLS THE EXPLOTION
W=0      ; R IS MY LIFE TIMMER R=0 END OF EXPLOSION OR DISTANCE TRAVALED
Wflag=0   ; SET FLAG TO 0 SO IT DOSENT APEAR AGAIN

Wx#=0 ; QUICK CLEANUP
Wy#=0 ;
WDX=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
y=m
y+3 ; MOVE THE MISSILE

; GET THE COLOUR OFF THE SCREEN IN FROUNT OF YOU MISSILE
u=ReadPixelFast (m
x,m
y) And $FFFFFF ; JUST SOMETIMES THIS IS EASYER THAN COLLISION TESTING EM

If m
y>600 Or U<>colr ; DO SOME TESTS
mox=Rnd(800)
If mox<400  Then m
x=mox-(Rnd(50))
If mox>400 Then m
x=mox+(Rnd(50))
If mox=400 Then m
x=400
moy=0
m
y=0
EndIf
Line mox,moy,m
x,m
y
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...