3D Tic-Tac-Toe

BlitzMax Forums/BlitzMax Tutorials/3D Tic-Tac-Toe

GeekTeacher(Posted 2005) [#1]
I'm making a version of 3D tic-tac-toe and I want to be able to select where to place the next move useing the left mouse click.

I already have the easy things done, 3d array to keep track of which player owns what spots and a 3d array of cubes also. I also have it so when you right click and move the mouse the camera will rotate around the cube of cubes.

Any help on how I can finish this or make it any easier will be much appreciated.

Graphics3D 800,600,0,2
SetBuffer = BackBuffer()

Dim spot(2,2,2)
Dim player(2,2,2)

pivot = CreatePivot()
camera = CreateCamera()
light = CreateLight()

PositionEntity camera,0,0,-10

Xtex = LoadTexture("X.bmp")
Otex = LoadTexture("O.bmp")
Blank = LoadTexture("Blank.bmp")

For x = 0 To 2
For y = 0 To 2
For z = 0 To 2
spot(x,y,z) = CreateCube(pivot)
PositionEntity spot(x,y,z), x*2-2, y*2-2, z*2-2
EntityTexture spot(x,y,z), Blank
player(x,y,z) = 0
Next
Next
Next

While (Not KeyDown(1))

Cls

If MouseDown(2)
rx = MouseX() / 2
ry = MouseY() / 2
EndIf

RotateEntity pivot,rx,ry,0

RenderWorld

Flip

Wend

End


Ryan Moody(Posted 2005) [#2]
How would you select the central cube?

Ryan


lo-tekk(Posted 2005) [#3]
Here you have something to start with:
Graphics3D 800,600,0,2
SetBuffer = BackBuffer()

Dim spot(2,2,2)
Dim player(2,2,2)

pivot = CreatePivot()
camera = CreateCamera()
light = CreateLight()

PositionEntity camera,0,0,-20

;Xtex = LoadTexture("X.bmp")
;Otex = LoadTexture("O.bmp")
;Blank = LoadTexture("Blank.bmp")

blank=CreateTexture(256,256,9)
SetBuffer TextureBuffer(blank)
Color 200,200,200
Rect 0,0,256,256,1
Color 0,0,0
Line 0,0,255,0
Line 0,1,255,1
Line 0,0,0,255
Line 1,0,1,255
Line 2,0,2,255
Line 2,0,2,255

SetBuffer BackBuffer()

cube = CreateCube()

For x = 0 To 2
For y = 0 To 2
For z = 0 To 2
spot(x,y,z) = CopyEntity (cube, pivot)
PositionEntity spot(x,y,z), x*2-2, y*2-2, z*2-2
EntityTexture spot(x,y,z), blank

EntityPickMode spot ( x,y,z ), 3 

player(x,y,z) = 0
Next
Next
Next

While (Not KeyDown(1))

Cls

If MouseDown(2)
rx = MouseX() / 2
ry = MouseY() / 2
EndIf

RotateEntity pivot,rx,ry,0

If MouseHit(1)

	selected_cube = CameraPick ( camera, MouseX(), MouseY()) 
	If selected_cube 
	
		EntityColor selected_cube, 255,0,0
	
	EndIf 

EndIf 

RenderWorld

Flip

Wend

End


--------------------------------------------------------------------

http://www.moonworx.de