NipponDaniel
New member
Hallo erstmal,
bin neu im Forum.
ich programmiere grade ein Browsergame, zum Spass und zur Übung. Man bekommt Punkte beim klicken auf Objekte, bzw. sollte ein Treffer als "hit-", und ein Klick daneben, als "missed" gewertet werden.
Nur leider wird, je nach dem aus welchem Scope ich abgreife, entweder nur das letzte Objekt im Loop, oder alle gewertet. Damit die Statistik stimmt, und auch Partikeleffekte usw. gehen, sollte nur einmal hit oder missed gewertet werden. Es ist eigentlich simpel, aber ich steh hier schon zu lange auf dem Schlauch. Ich denke grade an ein temporäres Array, welches bei jedem Klick mit Bools gefüllt wird, und ein tempArray.indexOf(true). Aber gibts noch eine elegantere Lösung? Bzw. hat jemand Tipps für die Implementierung?
Ich benutze p5.js.
vielen Dank für deine Zeit. lg
bin neu im Forum.
ich programmiere grade ein Browsergame, zum Spass und zur Übung. Man bekommt Punkte beim klicken auf Objekte, bzw. sollte ein Treffer als "hit-", und ein Klick daneben, als "missed" gewertet werden.
Nur leider wird, je nach dem aus welchem Scope ich abgreife, entweder nur das letzte Objekt im Loop, oder alle gewertet. Damit die Statistik stimmt, und auch Partikeleffekte usw. gehen, sollte nur einmal hit oder missed gewertet werden. Es ist eigentlich simpel, aber ich steh hier schon zu lange auf dem Schlauch. Ich denke grade an ein temporäres Array, welches bei jedem Klick mit Bools gefüllt wird, und ein tempArray.indexOf(true). Aber gibts noch eine elegantere Lösung? Bzw. hat jemand Tipps für die Implementierung?
Ich benutze p5.js.
Code:
let tom = [Tomate, ...];
let mx = mouseX;
let my = mouseY;
let mOver = false;
let hit = 0;
let missed = 0;
/*
...
*/
function mouseClicked(){
hitBox();
}
function hitBox(){
for (let i = 0; i < tom.length; i++) {
if (mx > tom[i].pos.x - hb &&
mx < tom[i].pos.x + hb &&
my > tom[i].pos.y - hb &&
my < tom[i].pos.y + hb) {
mOver = true;
hit += 1;
} else {
mOver = false;
missed += 1;
}
}
}
vielen Dank für deine Zeit. lg
Zuletzt bearbeitet von einem Moderator: