Camera and outline rect functions
This commit is contained in:
28
window.ts
28
window.ts
@@ -4,7 +4,7 @@ import {
|
||||
gl,
|
||||
} from "./deps.ts";
|
||||
export {mainloop} from "./deps.ts";
|
||||
import { palette } from "./colors.ts";
|
||||
import { COLOR, palette } from "./colors.ts";
|
||||
|
||||
export const gameWindow = createWindow({
|
||||
title: "Faux",
|
||||
@@ -128,7 +128,12 @@ const allPixelColors = new Float32Array(
|
||||
Array(pixelsPerRow*pixelsPerRow).fill(null).flatMap(() => c(1))
|
||||
)
|
||||
|
||||
export const setPixelColor = (x: number, y: number, color: number) => {
|
||||
export const cameraPos = {
|
||||
x: 0,
|
||||
y: 0,
|
||||
}
|
||||
|
||||
export const setPixelColorRaw = (x: number, y: number, color: number) => {
|
||||
if (x < 0 || y < 0 || x > 127 || y > 127) {
|
||||
return;
|
||||
}
|
||||
@@ -138,18 +143,33 @@ export const setPixelColor = (x: number, y: number, color: number) => {
|
||||
}
|
||||
}
|
||||
|
||||
export const setPixelColor = (x: number, y: number, color: number) => {
|
||||
return setPixelColorRaw(x - cameraPos.x, y - cameraPos.y, color);
|
||||
}
|
||||
|
||||
export const setPixelsInRect = (x: number, y: number, w: number, pixels: Array<number>) => {
|
||||
for (let i = 0; i < pixels.length; i++) {
|
||||
setPixelColor(x+i%w, y+Math.floor(i/w), pixels[i]);
|
||||
}
|
||||
}
|
||||
|
||||
export const setPixelsInRectRaw = (x: number, y: number, w: number, pixels: Array<number>) => {
|
||||
for (let i = 0; i < pixels.length; i++) {
|
||||
setPixelColorRaw(x+i%w, y+Math.floor(i/w), pixels[i]);
|
||||
}
|
||||
}
|
||||
|
||||
export const fillRect = (x: number, y: number, w: number, h: number, color: number) => {
|
||||
setPixelsInRect(x, y, w, Array(w*h).fill(color));
|
||||
}
|
||||
|
||||
export const clearScreen = () => {
|
||||
allPixelColors.fill(0);
|
||||
export const fillRectRaw = (x: number, y: number, w: number, h: number, color: number) => {
|
||||
setPixelsInRectRaw(x, y, w, Array(w*h).fill(color));
|
||||
}
|
||||
|
||||
export const clearScreen = (color?: number) => {
|
||||
fillRectRaw(0, 0, 128, 128, color ?? COLOR.BLACK);
|
||||
// allPixelColors.fill(0);
|
||||
}
|
||||
|
||||
export const frame = () => {
|
||||
|
||||
Reference in New Issue
Block a user