41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
|
import "jasmine";
|
||
|
import {PlayerMovement} from "../../../src/Phaser/Game/PlayerMovement";
|
||
|
|
||
|
describe("Interpolation / Extrapolation", () => {
|
||
|
it("should interpolate", () => {
|
||
|
let playerMovement = new PlayerMovement({
|
||
|
x: 100, y: 200, moving: true, direction: "right"
|
||
|
}, 42000,
|
||
|
{
|
||
|
x: 200, y: 100, moving: true, direction: "up"
|
||
|
},
|
||
|
42200
|
||
|
);
|
||
|
|
||
|
|
||
|
expect(playerMovement.isOutdated(42100)).toBe(false);
|
||
|
expect(playerMovement.isOutdated(43000)).toBe(true);
|
||
|
|
||
|
expect(playerMovement.getPosition(42100)).toEqual({
|
||
|
x: 150,
|
||
|
y: 150,
|
||
|
direction: 'up',
|
||
|
moving: true
|
||
|
});
|
||
|
|
||
|
expect(playerMovement.getPosition(42200)).toEqual({
|
||
|
x: 200,
|
||
|
y: 100,
|
||
|
direction: 'up',
|
||
|
moving: true
|
||
|
});
|
||
|
|
||
|
expect(playerMovement.getPosition(42300)).toEqual({
|
||
|
x: 250,
|
||
|
y: 50,
|
||
|
direction: 'up',
|
||
|
moving: true
|
||
|
});
|
||
|
});
|
||
|
})
|