3d
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package main
|
||||
|
||||
import rl "vendor:raylib"
|
||||
|
||||
SCREEN_W :: 1280
|
||||
SCREEN_H :: 720
|
||||
TARGET_FPS :: 60
|
||||
|
||||
|
||||
main :: proc() {
|
||||
rl.InitWindow(SCREEN_W, SCREEN_H, "Iso Arena 3D")
|
||||
rl.SetTargetFPS(TARGET_FPS)
|
||||
defer rl.CloseWindow()
|
||||
|
||||
camera := rl.Camera3D {
|
||||
position = {0, 80, 80},
|
||||
target = {0, 0, 0},
|
||||
up = {0, 1, 0},
|
||||
fovy = 400,
|
||||
projection = .ORTHOGRAPHIC,
|
||||
}
|
||||
|
||||
state := GameState {
|
||||
camera = camera,
|
||||
}
|
||||
state.collisions = make([dynamic]CollisionPair)
|
||||
defer delete(state.collisions)
|
||||
|
||||
state.player = spawn(&state, make_player())
|
||||
spawn(&state, make_enemy({200, 200}))
|
||||
spawn(&state, make_enemy({-200, 200}))
|
||||
spawn(&state, make_enemy({200, -200}))
|
||||
|
||||
for !rl.WindowShouldClose() {
|
||||
dt := rl.GetFrameTime()
|
||||
|
||||
sys_input(&state, dt)
|
||||
sys_update(&state, dt)
|
||||
sys_sweep(&state)
|
||||
|
||||
if pe := get_entity(&state, state.player); pe != nil {
|
||||
p := get_base(pe).pos
|
||||
state.camera.target = {p.x, 0, p.y}
|
||||
state.camera.position = state.camera.target + {600, 600, 600}
|
||||
}
|
||||
sys_draw(&state)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user