Sorry voor wazige titel, maar het lukte niet zo goed om probleem in 1 regel te beschrijven..
Ik heb nu afgelopen trimester een beetje leren programmeren (nog nooit eerder gedaan
), dit deden wij met Java. Nou was ik een beetje aan het spelen geslagen met een simpele opdracht die ergens in het boek stond. Dat was 'maak een programma waarin een bal in een vierkant rond kan stuiteren'.
Dat is wel gelukt
, maar ik vond het wel grappig en ging toen uitbreiden naar meerdere ballen, die van kleur moeten wisselen bij het aanraken van 1 van de zijdes van het vierkant.
Nu het probleem:
Het programma werkt eigenlijk prima, op het kleine feit na dat het me niet lukt om de ballen afzonderlijk van kleur te laten wisselen. Het lukt me alleen om ze allemaal van kleur te laten wisselen zodra eentje een muur raakt.
Het bestaat uit:
een 'Client' class (die runt alleen het programma),
een class 'Ball', die bevat de info over hoe de ballen zich gedragen
een class 'Bounce' die o.a. het aantal ballen bepaalt en zorgt dat ze op het scherm komen
Hieronder wat code, waar volgens mij het probleem zit: (ter info, bij het boek wordt gebruikt gemaakt van een CSLib.jar library, waarin ook een DrawingBox, hierin teken ik de ballen), setColor maakt een random rgb kleur.
De hele code staat hier in een zip-file.
Het gaat waarschijnlijk fout bij setColor(d); Nu wordt dus iedere keer als een van de ballen een muur raakt, de kleur voor alles in de DrawingBox verandert. Ik wil dus eigenlijk dat er ipv van setColor(d); iets komt waardoor alleen de desbetreffende bal van kleur wisselt.
In de Bounce class is een array met b1, b2 etc . voor iedere afzonderlijke bal.
Maar ik heb al van alles geprobeerd om iets van 'public void Draw(DrawingBox d, int SIZE, int RAD, Ball [] b )' en setColor(b[i]) (ook zonder [] etc. ) te maken, maar dat mag blijkbaar niet..
Het zal vast iets simpels zijn, maar ik weet niet wat
Ik heb nu afgelopen trimester een beetje leren programmeren (nog nooit eerder gedaan
Dat is wel gelukt
Nu het probleem:
Het programma werkt eigenlijk prima, op het kleine feit na dat het me niet lukt om de ballen afzonderlijk van kleur te laten wisselen. Het lukt me alleen om ze allemaal van kleur te laten wisselen zodra eentje een muur raakt.
Het bestaat uit:
een 'Client' class (die runt alleen het programma),
een class 'Ball', die bevat de info over hoe de ballen zich gedragen
een class 'Bounce' die o.a. het aantal ballen bepaalt en zorgt dat ze op het scherm komen
Hieronder wat code, waar volgens mij het probleem zit: (ter info, bij het boek wordt gebruikt gemaakt van een CSLib.jar library, waarin ook een DrawingBox, hierin teken ik de ballen), setColor maakt een random rgb kleur.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| public void Draw(DrawingBox d, int SIZE, int RAD ){ //teken een stip met random positie, straal RAD d.fillCircle( (rndx),(rndy), RAD ); rndx = rndx +dx; rndy = rndy +dy; //als de stip buiten een van de 'muren' komt, stuitert de stip terug, //en er wordt weer een random kleur gekozen. if ((rndx > SIZE-RAD) || (rndx <=RAD)) { dx= -dx; setColor(d); } if ((rndy > SIZE-RAD) || (rndy <=RAD)){ dy= -dy; setColor(d); } } |
De hele code staat hier in een zip-file.
Het gaat waarschijnlijk fout bij setColor(d); Nu wordt dus iedere keer als een van de ballen een muur raakt, de kleur voor alles in de DrawingBox verandert. Ik wil dus eigenlijk dat er ipv van setColor(d); iets komt waardoor alleen de desbetreffende bal van kleur wisselt.
In de Bounce class is een array met b1, b2 etc . voor iedere afzonderlijke bal.
Maar ik heb al van alles geprobeerd om iets van 'public void Draw(DrawingBox d, int SIZE, int RAD, Ball [] b )' en setColor(b[i]) (ook zonder [] etc. ) te maken, maar dat mag blijkbaar niet..
Het zal vast iets simpels zijn, maar ik weet niet wat
Kater? Eerst water, de rest komt later