feat: Add physics objects with square, circle, and triangle tools

This commit is contained in:
Kacper Kostka (aider) 2025-04-05 17:15:40 +02:00
parent 34dd7e2d62
commit 20f5036848
3 changed files with 20 additions and 0 deletions

View File

@ -20,6 +20,9 @@
<button id="tree-seed-btn">Tree Seed</button>
<button id="fire-btn">Fire</button>
<button id="lava-btn">Lava</button>
<button id="square-btn">Square</button>
<button id="circle-btn">Circle</button>
<button id="triangle-btn">Triangle</button>
<button id="eraser-btn">Eraser</button>
</div>
<div class="navigation">

View File

@ -28,6 +28,12 @@ function setTool(tool) {
document.getElementById('fire-btn').classList.add('active');
} else if (tool === LAVA) {
document.getElementById('lava-btn').classList.add('active');
} else if (tool === SQUARE) {
document.getElementById('square-btn').classList.add('active');
} else if (tool === CIRCLE) {
document.getElementById('circle-btn').classList.add('active');
} else if (tool === TRIANGLE) {
document.getElementById('triangle-btn').classList.add('active');
} else if (tool === EMPTY) {
document.getElementById('eraser-btn').classList.add('active');
}
@ -98,6 +104,14 @@ function draw(x, y) {
const worldX = Math.floor(x / PIXEL_SIZE) + worldOffsetX;
const worldY = Math.floor(y / PIXEL_SIZE) + worldOffsetY;
// Special handling for physics objects
if (currentTool === SQUARE || currentTool === CIRCLE || currentTool === TRIANGLE) {
// Create a physics object at the cursor position
const size = 10; // Default size
createPhysicsObject(currentTool, worldX, worldY, size);
return;
}
// Draw a small brush (3x3)
for (let dy = -1; dy <= 1; dy++) {
for (let dx = -1; dx <= 1; dx++) {

View File

@ -25,6 +25,9 @@ window.onload = function() {
document.getElementById('tree-seed-btn').addEventListener('click', () => setTool(TREE_SEED));
document.getElementById('fire-btn').addEventListener('click', () => setTool(FIRE));
document.getElementById('lava-btn').addEventListener('click', () => setTool(LAVA));
document.getElementById('square-btn').addEventListener('click', () => setTool(SQUARE));
document.getElementById('circle-btn').addEventListener('click', () => setTool(CIRCLE));
document.getElementById('triangle-btn').addEventListener('click', () => setTool(TRIANGLE));
document.getElementById('eraser-btn').addEventListener('click', () => setTool(EMPTY));
// Navigation controls