Finish testing
This commit is contained in:
@@ -1,5 +0,0 @@
|
|||||||
import type { Vector } from "#/engine/Vector.ts";
|
|
||||||
|
|
||||||
export function moveAndCollide<T>(body: T, velocity: Vector): void {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
import type { Box } from "#/engine/Box.ts";
|
|
||||||
|
|
||||||
export type Component<T> = Record<string, Box<T>>;
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
import { drawSprite, type Sprite, spriteSheetMap } from "#/engine/Sprite.ts";
|
|
||||||
import type { Vector } from "#/engine/Vector.ts";
|
|
||||||
|
|
||||||
export type Drawable = {
|
|
||||||
position: Vector;
|
|
||||||
sprite: Sprite;
|
|
||||||
};
|
|
||||||
|
|
||||||
export function isDrawable<T>(
|
|
||||||
entity: {
|
|
||||||
position?: Vector;
|
|
||||||
sprite?: Sprite;
|
|
||||||
} & T,
|
|
||||||
): entity is Drawable & T {
|
|
||||||
return (
|
|
||||||
typeof entity.position === "object" && typeof entity.sprite === "object"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function draw(ctx: CanvasRenderingContext2D, drawable: Drawable): void {
|
|
||||||
drawSprite(
|
|
||||||
ctx,
|
|
||||||
spriteSheetMap.get(drawable.sprite.src)!,
|
|
||||||
drawable.sprite.xStart,
|
|
||||||
drawable.sprite.yStart,
|
|
||||||
drawable.position.x,
|
|
||||||
drawable.position.y,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -5,7 +5,7 @@ import {
|
|||||||
type SpritePlayback,
|
type SpritePlayback,
|
||||||
} from "#/engine/Sprite.ts";
|
} from "#/engine/Sprite.ts";
|
||||||
|
|
||||||
export function animateSprites(delta: number) {
|
export function animateSprites(delta: number): void {
|
||||||
for (const [id, playback] of $<SpritePlayback>("playback").entries()) {
|
for (const [id, playback] of $<SpritePlayback>("playback").entries()) {
|
||||||
const sprite = $<Sprite>("sprite").get(id)!;
|
const sprite = $<Sprite>("sprite").get(id)!;
|
||||||
animateSprite(sprite.value, playback.value, delta);
|
animateSprite(sprite.value, playback.value, delta);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ sceneChangeSet.add((sceneData) => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
export function drawSprites(ctx: CanvasRenderingContext2D) {
|
export function drawSprites(ctx: CanvasRenderingContext2D): void {
|
||||||
for (const drawable of drawables.sort(
|
for (const drawable of drawables.sort(
|
||||||
(a, b) => a.position.value.y - b.position.value.y,
|
(a, b) => a.position.value.y - b.position.value.y,
|
||||||
)) {
|
)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user