inflate and deflate sphere using TIMER
Blitz3D Forums/Blitz3D Tutorials/inflate and deflate sphere using TIMER
| ||
I got tired of some of the silly questions that are asked about time and case... Combined BOTH into a simple tutorial that is fun to watch in WIREFRAME... Commented heavily...;weird sphere code ;hit SPACEBAR To see WireFrame ;Rook Zimbabwe Graphics3D 800,600 ; sets GRAPHICS 3D MODE SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,0,-2 light=CreateLight() RotateEntity light,80,0,0 Global bop ; BOP controls WHICH phase we are in set by function call Global segments ; variable to tell how many segments to make the SPHERE Global oldtime = MilliSecs() ; INITIAL timer amount to be used later to segments and suck Global phase$ ; A string that tells which phase we are in B / S bop = 0 ; sets INITIAL phase to segments segments = 4 ; sets INITIAL segments to 4 While Not KeyDown( 1 ) ; ESC phase$ = " " ; clears previous phase$ sphere = CreateSphere(segments) ; Create the sphere with the segments xx=xx+1 ; rotation value in X yy=yy+2 ; rotation value in Y zz=zz+3 ; rotation value in Z RotateEntity sphere,xx,yy,zz ; Make that sphere DANCE!!! Select bop ; CASE selector for BOP (we started with 0 so Case 1 ; which function would we call?) segmentsdown() Case 0 segmentsup() End Select If KeyHit( 57 )=True Then ; SPACEBAR enables wireframe enable=1-enable EndIf WireFrame enable ; allows WIREFRAME to be enabled UpdateWorld RenderWorld Text 5,20,"Triangles Rendered: "+TrisRendered() Text 5,40,"SEGMENTS: "+segments Text 5,60,"PHASE: "+phase$ Flip Cls FreeEntity sphere ; CLEAN UP THE LAST SPHERE!!! Wend End Function segmentsup() Color 255,12,12 phase$ = "INFLATE" ; remember this is a GLOBAL VARIABLE (has to be to be passed to a function) If MilliSecs() > oldtime + 120 Then ; if it has been 1/4 second since the last time I made a variable with the timer... segments = segments + 1 ; then ADD 1 to the segments value If segments > 32 Then ; If we have 32 segments... bop = 1 ; Switch BOP to 1 (it will be picked up by main program loop) EndIf oldtime = MilliSecs() ; Get new OLDTIME value... EndIf End Function Function segmentsdown() Color 12,12,255 phase$ = "DEFLATE" If MilliSecs() > oldtime + 120 Then segments = segments - 1 ; SAME for this but in reverse! If segments < 4 Then bop = 0 EndIf oldtime = MilliSecs() EndIf End FunctionI can't see any questions necessary after this but if you have I am on the board... : ) RZ |