plop problem

Blitz3D Forums/Blitz3D Programming/plop problem

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

One solution is to parent everything to a pivot, then FreeEntity the pivot when you need to reset the game...

; ############################# 
; Board Thingy
;
; If you use something from this a THANK YOU would be nice!
; Rook Zimbabwe aka SSG R. W. Dunn TXSG
; 5 MARCH 2005
; ############################# 
Graphics3D 800,600,32,1
SetBuffer BackBuffer()
SeedRnd=(MilliSecs())

camera=CreateCamera()
PositionEntity camera,0,0,-85
lights=CreateLight()
; make some arrays... I use them to compare things simply
Dim boardarea(9,9)
Dim boardx(9)
Dim boardy(9)
Dim turnpiecex(9)
Dim turnpiecey(9)
; some globals for the game I have in mind
Global square
Global xx
Global yy
Global what
Global wp
Global bp
Global colorflag
; ################################### MAKE INITIAL COLOR ARRAY FOR BOARD
For fillx = 0 To 9
	For filly=0 To 9
		colr=Rnd(5)
		boardarea(fillx,filly)=colr
	Next
Next
; ###################################
; Arrays to hold positions... I use it later in mousepick etc.
boardx(0)=-45
boardx(1)=-35
boardx(2)=-25
boardx(3)=-15
boardx(4)=-5
boardx(5)=5
boardx(6)=15
boardx(7)=25
boardx(8)=35
boardx(9)=45

boardy(0)=-45
boardy(1)=-35
boardy(2)=-25
boardy(3)=-15
boardy(4)=-5
boardy(5)=5
boardy(6)=15
boardy(7)=25
boardy(8)=35
boardy(9)=45
; ############################## Make simple colors for y'all
red=CreateBrush(255,0,0)
blue=CreateBrush(0,0,255)
yellow=CreateBrush(255,255,0)
green=CreateBrush(0,255,0)
orange=CreateBrush(255,80,0)
violet=CreateBrush(122,23,255) 
; ############################# Make the board pieces here and paint them with the brushes
Global gamePivot = CreatePivot() ;------------- added by BlackJumper

Global mesh=CreateCube()
ScaleEntity mesh,4,4,4
PaintEntity mesh,red
HideEntity mesh
;DebugLog "mesh created"
Global mesh2=CopyEntity(mesh)
PaintEntity mesh2,blue
HideEntity mesh2
;DebugLog "mesh2 created"
Global mesh3=CopyEntity(mesh)
PaintEntity mesh3,yellow
HideEntity mesh3
;DebugLog "mesh3 created"
Global mesh4=CopyEntity(mesh)
PaintEntity mesh4,green
HideEntity mesh4
;DebugLog "mesh4 created"
Global mesh5=CopyEntity(mesh)
PaintEntity mesh5,orange
HideEntity mesh5
;DebugLog "mesh5 created"
Global mesh6=CopyEntity(mesh)
PaintEntity mesh6,violet
HideEntity mesh6
;DebugLog "mesh6 created"
; ############################# Light it
PointEntity lights,mesh
; ############################# CALL setupboard() function to plop the board peices accd
; ############################# TO COLOR in the array BOARDAREA
setupboard()
; ############################# START OF PROGRAM LOOP
While Not KeyHit(1)


  If KeyDown(57) Then 
		FreeEntity gamePivot		;---------------- added by Blackjumper
    	gamePivot = CreatePivot()	;---------------- added by BlackJumper
		Cls
		For fillx = 0 To 9
			For filly=0 To 9
				colr=Rnd(5)
				boardarea(fillx,filly)=colr
			Next
		Next
	setupboard()
	EndIf
	
  ;If KeyDown(208) Then MoveEntity camera,0,0,-1

  UpdateWorld()
  RenderWorld()

; ############################# PRINT the array so I can check it... 
; ############################# for some reason my array shows backwards... I did some thing silly!
Text 0,10,"ROW  1: "+boardarea(0,9)+boardarea(1,9)+boardarea(2,9)+boardarea(3,9)+boardarea(4,9)+boardarea(5,9)+boardarea(6,9)+boardarea(7,9)+boardarea(8,9)+boardarea(9,9)
Text 0,20,"ROW  2: "+boardarea(0,8)+boardarea(1,8)+boardarea(2,8)+boardarea(3,8)+boardarea(4,8)+boardarea(5,8)+boardarea(6,8)+boardarea(7,8)+boardarea(8,8)+boardarea(9,8)
Text 0,30,"ROW  3: "+boardarea(0,7)+boardarea(1,7)+boardarea(2,7)+boardarea(3,7)+boardarea(4,7)+boardarea(5,7)+boardarea(6,7)+boardarea(7,7)+boardarea(8,7)+boardarea(9,7)	
Text 0,40,"ROW  4: "+boardarea(0,6)+boardarea(1,6)+boardarea(2,6)+boardarea(3,6)+boardarea(4,6)+boardarea(5,6)+boardarea(6,6)+boardarea(7,6)+boardarea(8,6)+boardarea(9,6)	
Text 0,50,"ROW  5: "+boardarea(0,5)+boardarea(1,5)+boardarea(2,5)+boardarea(3,5)+boardarea(4,5)+boardarea(5,5)+boardarea(6,5)+boardarea(7,5)+boardarea(8,5)+boardarea(9,5)	
Text 0,60,"ROW  6: "+boardarea(0,4)+boardarea(1,4)+boardarea(2,4)+boardarea(3,4)+boardarea(4,4)+boardarea(5,4)+boardarea(6,4)+boardarea(7,4)+boardarea(8,4)+boardarea(9,4)	
Text 0,70,"ROW  7: "+boardarea(0,3)+boardarea(1,3)+boardarea(2,3)+boardarea(3,3)+boardarea(4,3)+boardarea(5,3)+boardarea(6,3)+boardarea(7,3)+boardarea(8,3)+boardarea(9,3)
Text 0,80,"ROW  8: "+boardarea(0,2)+boardarea(1,2)+boardarea(2,2)+boardarea(3,2)+boardarea(4,2)+boardarea(5,2)+boardarea(6,2)+boardarea(7,2)+boardarea(8,2)+boardarea(9,2)
Text 0,90,"ROW  9: "+boardarea(0,1)+boardarea(1,1)+boardarea(2,1)+boardarea(3,1)+boardarea(4,1)+boardarea(5,1)+boardarea(6,1)+boardarea(7,1)+boardarea(8,1)+boardarea(9,1)
Text 0,100,"ROW 10: "+boardarea(0,0)+boardarea(1,0)+boardarea(2,0)+boardarea(3,0)+boardarea(4,0)+boardarea(5,0)+boardarea(6,0)+boardarea(7,0)+boardarea(8,0)+boardarea(9,0)
; ############################# This is the real problem HIT SPACEBAR and watch what happens
; ############################# How can I clear the models OFF the Screen and plop new ones???
Text 0,140,"TrisRendered "+TrisRendered()

Flip

Wend

End
; ######################################################################## FUNCTIONS
Function setupboard()

For row=0 To 9
	For col=0 To 9
		what=boardarea(row,col)
		Select what
			Case 0 
			 red=CopyEntity (mesh,gamePivot)					;------- modified by BlackJumper
				PositionEntity red,boardx(row),boardy(col),0
			
			Case 1 
			 blue=CopyEntity (mesh2,gamePivot)					;------- modified by BlackJumper
				PositionEntity blue,boardx(row),boardy(col),0
			
			Case 2 
			 grey=CopyEntity (mesh3,gamePivot)					;------- modified by BlackJumper
				PositionEntity grey,boardx(row),boardy(col),0
			
			Case 3 
			 purp=CopyEntity (mesh4,gamePivot)					;------- modified by BlackJumper
				PositionEntity purp,boardx(row),boardy(col),0
			
			Case 4 
			 orng=CopyEntity (mesh5,gamePivot)					;------- modified by BlackJumper
				PositionEntity orng,boardx(row),boardy(col),0
			
			Case 5 
			 yell=CopyEntity (mesh6,gamePivot)					;------- modified by BlackJumper
				PositionEntity yell,boardx(row),boardy(col),0
			End Select
	Next
Next

End Function
; end of all things