- Introduced a new Entity-Component-System (ECS) architecture for the game. - Created foundational components such as Transform, Velocity, Health, and Collidable. - Developed systems for handling input, movement, collision detection, and rendering. - Added game logic for player control, coin collection, and obstacle interactions. - Implemented a performance monitor for real-time metrics display. - Enhanced game initialization and entity creation processes. This update significantly refactors the game structure, improving maintainability and scalability.
28 lines
830 B
JavaScript
28 lines
830 B
JavaScript
import { System } from '../ecs/System.js';
|
|
import { Transform } from '../components/Transform.js';
|
|
import { MeshComponent } from '../components/MeshComponent.js';
|
|
|
|
/**
|
|
* RenderSystem - syncs Three.js mesh positions with Transform components
|
|
*/
|
|
export class RenderSystem extends System {
|
|
constructor(scene) {
|
|
super();
|
|
this.scene = scene;
|
|
}
|
|
|
|
update(_deltaTime) {
|
|
const entities = this.getEntities(Transform, MeshComponent);
|
|
|
|
for (const entityId of entities) {
|
|
const transform = this.getComponent(entityId, Transform);
|
|
const meshComp = this.getComponent(entityId, MeshComponent);
|
|
|
|
// Sync mesh transform with component
|
|
meshComp.mesh.position.copy(transform.position);
|
|
meshComp.mesh.rotation.copy(transform.rotation);
|
|
meshComp.mesh.scale.copy(transform.scale);
|
|
}
|
|
}
|
|
}
|
|
|