Java - variabel växer aldrig över 1?

Permalänk
Medlem

Java - variabel växer aldrig över 1?

Håller på och bygger ett Breakoutspel, har lite problem med min variabel som ska ta bort ett liv.
Hur får jag den att växa mer än 1? Ursäkta min säkerligen fula kod. Men började med Java förra veckan.
Variabeln i sig är fetmarkerad (removeLife).

edit: NVM hade hjärnsläpp - tråden kan tas bort.. / låsas

Visa signatur

10700K | NVIDIA RTX 3080

Permalänk

Har inte själv skrivit Java men något som slår mig: är du säker på att din if-sats är true någon gång?

Om det gör det så finns det någon sidoeffekt av ball.removeLife(removeLife); som gör att du påverkar variablen removeLife?

Permalänk
Medlem
Skrivet av kwame:

Håller på och bygger ett Breakoutspel, har lite problem med min variabel som ska ta bort ett liv.
Hur får jag den att växa mer än 1? Ursäkta min säkerligen fula kod. Men började med Java förra veckan.
Variabeln i sig är fetmarkerad (removeLife).

int removeLife=0; // Här är removeLife = 0 ball.removeLife(removeLife); // vilket är lika med ball.removeLife(0); removeLife++; // samma sak som removeLife = removeLife + 1; System.out.println(removeLife); //

Vad händer om du anropar ball.removeLife(1); ?

Permalänk
Medlem

Problemet löste du själv på ca 10minuter.
Du behöver https://en.wikipedia.org/wiki/Rubber_duck_debugging

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

I dessa situationer föreslår jag breakpoints på variabeln och steppa genom koden, det är ju det debuggern är till för

Permalänk
Medlem

Jag skrev under klassen
private int removeLife=0;

Då fungerade allt som det skulle. Nu tar den bort ett liv (en boll) för varje gång den missar mitt "slagträ"

public class Breakout extends Frame { private Board board; private Ball ball; private Bat bat; private Brick[] bricks; private int removeLife = 0;

Visa signatur

10700K | NVIDIA RTX 3080