require "scripts/constants/engine_const.lua"
RegisterAbstractPath(".")
Graphics(800,600)
fw = CreateFramework()
camera =fw.main.camera
camera:SetPosition(Vec3(0,20,-20))
light = CreateDirectionalLight()
light:SetRotation(Vec3(45,45,0))
camRotation=Vec3(0,0,0)
MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2)
HideMouse(1)
prevPos = Vec3(0)
cube = {}
cube1 = {}
cube2 = {}
gx=0
gy=0
cub=CreateCube()
for a = 0, 50, 1 do
for b = 0, 100, 1 do
cube[b] = CopyEntity(cub)
cube[b]:SetPosition(Vec3(prevPos.x + 1,prevPos.y + 1,prevPos.z))
prevPos = cube[b]:GetPosition()
end
prevPos = Vec3(0,0,prevPos.z + 2)
end
prevPos = Vec3(0)
for a = 0, 50, 1 do
for b = 0, 100, 1 do
cube[b] = CopyEntity(cub)
cube[b]:SetPosition(Vec3(prevPos.x - 1,prevPos.y + 1,prevPos.z))
prevPos = cube[b]:GetPosition()
end
prevPos = Vec3(0,0,prevPos.z + 2)
end
CameraClearMode(camera,-1)
minibuffer=CreateBuffer(256,256,BUFFER_COLOR+BUFFER_NORMAL+BUFFER_DEPTH)
thisbuffer=GetBuffer()
while KeyHit(KEY_ESCAPE)==0 do
--Camera look
gx=Curve(MouseX()- GraphicsWidth()/2,gx,10)
gy=Curve(MouseY()- GraphicsHeight()/2,gy,10)
MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2)
camRotation.x = camRotation.x+gy /10
camRotation.y = camRotation.y-gx /10
camera:SetRotation(camRotation,1)
--keys
move = Curve(KeyDown(KEY_W)-KeyDown(KEY_S),move,10)
strafe = Curve(KeyDown(KEY_D)-KeyDown(KEY_A),strafe,10)
camera:Move(Vec3(strafe ,0,move))
fw:Update()
thisbuffer=GetBuffer()
SetBuffer(minibuffer)
camera:Turnf(0,180,0)
RenderWorld();
RenderLights(minibuffer);
camera:Turnf(0,180,0)
SetBuffer(thisbuffer)
fw:Render()
SetBlend(1);
SetColor(Vec4(0,1,0,0.5));
DrawImage(GetColorBuffer(minibuffer,0),0,300,256,-256)
SetBlend(0);
Flip(0)
end