Initial simple entity system.

This commit is contained in:
2026-09-07 07:54:02 +02:00
parent 0fdc2843da
commit abd6f0a81f
2 changed files with 58 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
package game
import rl "vendor:raylib"
/*
Entites are generic structures shared between enemies, environment items, player etc
Anything here is intended to be used with any entity some optional and some required
*/
Entity_Type :: enum {
Player,
Enemy,
Ball,
}
Shape_Type :: enum {
Rectangle,
Circle
}
Entity :: struct {
type: Entity_Type,
active: bool,
pos: rl.Vector2,
vel: rl.Vector2,
shape: Shape_Type,
shape_size: rl.Vector2,
}
+30
View File
@@ -0,0 +1,30 @@
package game
import rl "vendor:raylib"
init_player :: proc() -> Entity {
return Entity{
type = .Player,
active = true,
pos = rl.Vector2{0,0},
vel = rl.Vector2{450,0},
shape = .Rectangle,
shape_size = rl.Vector2{50, 250}
}
}
update_player :: proc(dt: f32, player: ^Entity) {
// Input
if rl.IsKeyDown(.W) do player.pos.y -= player.vel.x * dt
if rl.IsKeyDown(.S) do player.pos.y += player.vel.x * dt
}
render_player :: proc(player: Entity) {
rl.DrawRectangle(
i32(player.pos.x),
i32(player.pos.y),
i32(player.shape_size.x),
i32(player.shape_size.y),
rl.BLACK
)
}