mirror of
https://github.com/collinsmith/riiablo.git
synced 2025-02-06 00:57:03 +07:00
Added physics system placeholder which manages velocity application on position
This commit is contained in:
parent
caec8d7032
commit
4ed6792996
28
core/src/com/riiablo/engine/system/PhysicsSystem.java
Normal file
28
core/src/com/riiablo/engine/system/PhysicsSystem.java
Normal file
@ -0,0 +1,28 @@
|
||||
package com.riiablo.engine.system;
|
||||
|
||||
import com.badlogic.ashley.core.ComponentMapper;
|
||||
import com.badlogic.ashley.core.Entity;
|
||||
import com.badlogic.ashley.core.Family;
|
||||
import com.badlogic.ashley.systems.IteratingSystem;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.riiablo.engine.component.PositionComponent;
|
||||
import com.riiablo.engine.component.VelocityComponent;
|
||||
|
||||
public class PhysicsSystem extends IteratingSystem {
|
||||
private final ComponentMapper<PositionComponent> positionComponent = ComponentMapper.getFor(PositionComponent.class);
|
||||
private final ComponentMapper<VelocityComponent> velocityComponent = ComponentMapper.getFor(VelocityComponent.class);
|
||||
|
||||
public PhysicsSystem() {
|
||||
super(Family.all(PositionComponent.class, VelocityComponent.class).get());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processEntity(Entity entity, float delta) {
|
||||
VelocityComponent velocityComponent = this.velocityComponent.get(entity);
|
||||
Vector2 velocity = velocityComponent.velocity;
|
||||
if (velocity.isZero()) return;
|
||||
PositionComponent positionComponent = this.positionComponent.get(entity);
|
||||
Vector2 position = positionComponent.position;
|
||||
position.mulAdd(velocity, delta);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user