MilM
Legacy Member
Gewoon twee opmerkingen:
1) In plaats van een array, kun je ook aan ArrayList gebruiken.
Wanneer een blokje geraakt wordt, dan kun hem uit die ArrayList verwijderen in plaats van hem op destroyed te zetten.
Nu loopt hij alle blokjes telkens af, ook al zijn ze vernietigd
2) Nog beter zou zijn om het speeldveld bij te houden in plaats van de blokjes.
Stel je hebt bv 10 rijen van 10 blokjes.
Dan hou je een 2D-array bij van booleans van 10x10 (boolean[][] array = new boolean[10][10]; )
Nu neem je gewoon uw balleke en aan de hand van zijn coordinaten, bepaal je het blokje en hoef je enkel dat blokje te controleren.
Bv.
Uw speelveld is 200x200 en binnen dat speelveld bevinden zich de blokjes in een 100x100 vierkant. (dus links, recht, boven, onder 50 pixels vrije ruimte)
maw, het veld ligt tussen [50,150] hoogte/breedte.
Je hebt nu de x,y coordinaten van uw balleke.
Het eerste wat je moet doen is checken of beiden >= 50 zijn EN =< 150.
Indien nee -> doe niets
Indien ja:
Bepaal de coordinaten in het 100x100 vierkant.
Das simpel, gewoon x -50 en y -50.
Nu elk vierkant is 10x10 in dit voorbeeld.
Het enigste wat je nu nog moet doen dus, is
a = x/10;
b = y/10;
En je hebt uw blokje in het rooster overeenkomstig met de positie van het balletje, namelijk array[a].
Je controleert dus telkens maar één blokje ipv alle blokjes.
Uw oplossing werkt natuurlijk ook, het is dus niet dat je het moet gaan veranderen.
Is enkel eens ter info.
Trouwens straf dat je paar dagen geleden die vraag stelde en nu al zoiets gemaakt heb.
Volledig zelf gedaan ?
1) In plaats van een array, kun je ook aan ArrayList gebruiken.
Wanneer een blokje geraakt wordt, dan kun hem uit die ArrayList verwijderen in plaats van hem op destroyed te zetten.
Nu loopt hij alle blokjes telkens af, ook al zijn ze vernietigd
2) Nog beter zou zijn om het speeldveld bij te houden in plaats van de blokjes.
Stel je hebt bv 10 rijen van 10 blokjes.
Dan hou je een 2D-array bij van booleans van 10x10 (boolean[][] array = new boolean[10][10]; )
Nu neem je gewoon uw balleke en aan de hand van zijn coordinaten, bepaal je het blokje en hoef je enkel dat blokje te controleren.
Bv.
Uw speelveld is 200x200 en binnen dat speelveld bevinden zich de blokjes in een 100x100 vierkant. (dus links, recht, boven, onder 50 pixels vrije ruimte)
maw, het veld ligt tussen [50,150] hoogte/breedte.
Je hebt nu de x,y coordinaten van uw balleke.
Het eerste wat je moet doen is checken of beiden >= 50 zijn EN =< 150.
Indien nee -> doe niets
Indien ja:
Bepaal de coordinaten in het 100x100 vierkant.
Das simpel, gewoon x -50 en y -50.
Nu elk vierkant is 10x10 in dit voorbeeld.
Het enigste wat je nu nog moet doen dus, is
a = x/10;
b = y/10;
En je hebt uw blokje in het rooster overeenkomstig met de positie van het balletje, namelijk array[a].
Je controleert dus telkens maar één blokje ipv alle blokjes.
Uw oplossing werkt natuurlijk ook, het is dus niet dat je het moet gaan veranderen.
Is enkel eens ter info.
Trouwens straf dat je paar dagen geleden die vraag stelde en nu al zoiets gemaakt heb.
Volledig zelf gedaan ?

.