16 lines
562 B
Odin
16 lines
562 B
Odin
package ecs
|
|
|
|
PhysicsSystem :: struct {
|
|
using base: SystemBase,
|
|
}
|
|
|
|
physics_system_update :: proc(physics_system: ^PhysicsSystem, coordinator: ^Coordinator, dt: f32) {
|
|
for entity in physics_system.entities {
|
|
rigid_body := coordinator_get_component(RigidBody, coordinator, entity)
|
|
transform := coordinator_get_component(Transform, coordinator, entity)
|
|
gravity := coordinator_get_component(Gravity, coordinator, entity)
|
|
|
|
transform.position += rigid_body.velocity * dt
|
|
rigid_body.velocity += gravity.force * dt
|
|
}
|
|
}
|