
Type Camera
Field obj
End Type
Global terrain
Global fontA=LoadFont ("Times new roman",20)
SetFont fontA
Graphics3D 640,480,16,2
SetBuffer BackBuffer()
fnCreateCam1()
fnCreateTerr()
light=CreateLight()
RotateEntity light,90,0,0
cube1=CreateCube()
EntityColor cube1,0,0,255
cube2=CreateCube()
EntityColor cube2,255,0,0
PositionEntity cube2,10,0,0
Dim massiv(32,32)
Global c_x1=0,c_y1=0,c_x2=3,c_y2=0
Repeat
Cls
PositionEntity cube1,c_x1,0,c_y1
PositionEntity cube2,c_x2,0,c_y2
If KeyHit(2)
c_x1=c_x1+1
If(c_x1=c_x2) c_x1=c_x1-1
EndIf
If KeyHit(3)
c_x1=c_x1-1
If(c_x1=c_x2) c_x1=c_x1+1
EndIf
If(c_x1<0) c_x1=0
If(c_x1>32) c_x1=32
If(c_y1<0) c_y1=0
If(c_y1>32) c_y1=32
RenderWorld
Text 0,0,"Use cursor keys to move about the terrain"
For cam1.camera = Each camera
If KeyHit(1)
fnDeleteCam1(cam1)
End
FreeFont fonta
End If
Next
If KeyHit(2) Then freeTerrain()
Flip
Forever
Function fnCreateTerr()
terrain=CreateTerrain(32)
EntityColor terrain,0,128,255
EntityAlpha terrain,.5
End Function
Function freeTerrain()
FreeEntity terrain
End Function
Function fnCreateCam1.camera()
Local cam1.camera
cam1 = New Camera
cam1\obj = CreateCamera()
; CameraClsColor cam1\obj,0,255,0
PositionEntity cam1\obj,15,25,15
RotateEntity cam1\obj,90,0,0
Return cam1
End Function
Function fnDeleteCam1(cam1.camera)
For cam1.camera = Each camera
FreeEntity cam1\obj
Delete cam1
Next
End Function
На этом примере есть террайн 32 на 32
Массив 32 на 32
Дву кубика, один из них движется по нажатию 1 или 2 на клаве.
У меня есть этот семпл, но я никак не могу понять, как можно разбить карту на квадратики, и проверять, если клетка пустая, то кубик может туда идти, а елси там объект, то стоп...то есть так я собираюсь заменить коллизию и сделать удобным перемещение. Рднако я не до конца в этом разобрался + если удалить массив, то разницы никакой! Как мне это реализовать?
1) Что бы квадратик ходил при нажатии на 1 клетку, и, что бы эта клетка была "занята" когда квадратик там стоит
2) Нарисовать линии (или как-то спрайтами) ... что бы было видно, что террайн разделен на клетки...
Может я что-то не так описал, но я правда не очень понимаю как работает массив, но не прочь это усвоить!
Спасибо за внимание.