Een developer heeft een mini-game gemaakt: een speler beweegt over het scherm en moet een “coin” oppakken.
Maar… de coin wordt soms onzichtbaar, teleporteert of wordt nooit opgepakt.
De duo's moeten ontdekken welke 3 bugs erin zitten, waarom ze gebeuren en hoe ze op te lossen.
De studenten krijgen deze code:
let playerX = 50;
let playerY = 50;
let coinX;
let coinY;
let score = 0;
function setup() {
createCanvas(400, 400);
coinX = random(width);
coinY = random(height);
}
function draw() {
background(30);
// Player
fill(0, 200, 255);
rect(playerX, playerY, 30, 30);
// Coin (soms onzichtbaar)
if (frameCount % 120 == 0) {
coinX = random(width);
coinY = random(height);
}
fill(255, 220, 0);
ellipse(coinX, coinY, 20);
// Movement
if (keyIsDown(LEFT_ARROW)) playerX -= 2;
if (keyIsDown(RIGHT_ARROW)) playerX += 2;
if (keyIsDown(UP_ARROW)) playerY -= 2;
if (keyIsDown(DOWN_ARROW)) playerY += 2;
// Collision check (werkt niet goed!)
if (dist(playerX, playerY, coinX, coinY) < 20) {
score++;
coinX = random(width);
coinY = random(height);
}
// HUD
fill(255);
text("Score: " + score, 10, 20);
}
Laat duo’s 15 minuten zoeken naar deze drie problemen:
Hint: is het raakpunt gevallen terwijl de speler er nog niet is?
Hint: De speler heeft een rect, maar collision gebruikt distance vanaf de linkerbovenhoek, niet het midden.
Hint: willekeurig moment (frameCount % 120) = elke 2 seconden → ongewenst gedrag.