This commit is contained in:
Smile Rex
2026-01-21 18:30:37 +03:00
parent 77fa4cbd03
commit 29f2e0b165
28 changed files with 1515 additions and 1574 deletions

26
src/entities/Player.ts Normal file
View File

@@ -0,0 +1,26 @@
import Phaser from "phaser";
import { TouchInput } from "../input/TouchInput";
export class Player {
sprite: Phaser.GameObjects.Rectangle;
speed = 160; // пикселей в секунду
constructor(scene: Phaser.Scene, x: number, y: number) {
this.sprite = scene.add.rectangle(x, y, 32, 32, 0x00ff00);
}
update(delta: number, input: TouchInput) {
const dt = delta / 1000;
this.sprite.x += input.dx * this.speed * dt;
this.sprite.y += input.dy * this.speed * dt;
this.sprite.x = Phaser.Math.Clamp(this.sprite.x, 16, 360 - 16);
this.sprite.y = Phaser.Math.Clamp(this.sprite.y, 16, 640 - 16);
}
setPosition(x: number, y: number) {
this.sprite.x = x;
this.sprite.y = y;
}
}

View File

@@ -0,0 +1,29 @@
import Phaser from "phaser";
export class RemotePlayer {
sprite: Phaser.GameObjects.Rectangle;
targetX: number;
targetY: number;
constructor(scene: Phaser.Scene, x: number, y: number, color: number) {
this.sprite = scene.add.rectangle(x, y, 32, 32, color);
this.targetX = x;
this.targetY = y;
}
setTarget(x: number, y: number) {
this.targetX = x;
this.targetY = y;
}
update() {
// магия сглаживания
this.sprite.x = Phaser.Math.Linear(this.sprite.x, this.targetX, 0.15);
this.sprite.y = Phaser.Math.Linear(this.sprite.y, this.targetY, 0.15);
}
destroy() {
this.sprite.destroy();
}
}