Geachte medeforumleden,
Ik zal eerst een introductie geven van het programma wat ik geschreven heb. Voor school hebben wij de opdracht om met Javacode in het Programma Processing 3 een hardloopwedstrijd te ontwerpen. Op het startscherm bevinden zich twee sliders. Een slider om het aantal hardlopers/robots in te stellen en een tweede slider om de marge tussen de hardlopers/robots in te stellen. Van nu af aan zal ik het robots noemen. Hieronder bevindt zich een akkoordknop. Wanneer je op akkoord klikt worden de driehoeken getekend. Wanneer de driehoeken hun maximale vlak overschrijden, dan wordt de knop "exit" weergeven met daarboven de melding dat de veldgrootte is overschreden. De robots moeten met behulp van de knop "dobbel", die verschijnt wanneer de robots niet over hun marge gaan, bewegen naar rechts. Dit gaat helaas fout. Ik heb de x-coördinaten in een array gezet, waardoor zij tegelijk verplaatst worden, maar de robots onthouden hun nieuwe positie niet als de knop ingedrukt is en de robots gaan terug wanneer de knop uitgedrukt is.
Hieronder drie screenshots van het programma:



Hieronder volgt het stukje code van de robots
Hier wordt geregeld wat er met de knop "dobbel" moet gebeuren:
Hieronder het evenement voor de knop "dobbel" in mousePressed() en mouseReleased():
Ik zal eerst een introductie geven van het programma wat ik geschreven heb. Voor school hebben wij de opdracht om met Javacode in het Programma Processing 3 een hardloopwedstrijd te ontwerpen. Op het startscherm bevinden zich twee sliders. Een slider om het aantal hardlopers/robots in te stellen en een tweede slider om de marge tussen de hardlopers/robots in te stellen. Van nu af aan zal ik het robots noemen. Hieronder bevindt zich een akkoordknop. Wanneer je op akkoord klikt worden de driehoeken getekend. Wanneer de driehoeken hun maximale vlak overschrijden, dan wordt de knop "exit" weergeven met daarboven de melding dat de veldgrootte is overschreden. De robots moeten met behulp van de knop "dobbel", die verschijnt wanneer de robots niet over hun marge gaan, bewegen naar rechts. Dit gaat helaas fout. Ik heb de x-coördinaten in een array gezet, waardoor zij tegelijk verplaatst worden, maar de robots onthouden hun nieuwe positie niet als de knop ingedrukt is en de robots gaan terug wanneer de knop uitgedrukt is.
Hieronder drie screenshots van het programma:



Hieronder volgt het stukje code van de robots
Java: code-robots
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| //Hier worden de driehoeken geïntialiseerd en gedefinieerd. Dit stellen hardlopers voor. void robot(float Margin, float Aantal, int Kleur) { for (int i = 0; i < Aantal; i++) { //De array driehoekCoordinaten wordt aangemaakt en de coördinaten worden hieronder gedefinieerd float[][] driehoekCoordinaten; driehoekCoordinaten = new float[3][3]; driehoekCoordinaten[0][0] = margin; driehoekCoordinaten[1][0] = yKnop / 2 + margin; driehoekCoordinaten[2][0] = yKnop + margin; driehoekCoordinaten[0][1] = yKnop + margin; driehoekCoordinaten[1][1] = margin; driehoekCoordinaten[2][1] = driehoekCoordinaten[0][1]; driehoekCoordinaten[0][1] = (driehoekCoordinaten[0][1] - margin) + ((i * yKnop) + margin) + (Margin * i); driehoekCoordinaten[1][1] = (driehoekCoordinaten[1][1] - margin) + ((i * yKnop) + margin) + (Margin * i); driehoekCoordinaten[2][1] = (driehoekCoordinaten[2][1] - margin) + ((i * yKnop) + margin) + (Margin * i); if (dice == true) { for (int j = 0; j < driehoekCoordinaten.length; j++) { driehoekCoordinaten[j][0] = driehoekCoordinaten[j][0] + floor(random(1, 7)); } } fill(colours[floor(random(0, 10))]); triangle(driehoekCoordinaten[0][0], driehoekCoordinaten[0][1], driehoekCoordinaten[1][0], driehoekCoordinaten[1][1], driehoekCoordinaten[2][0], driehoekCoordinaten[2][1]); if (driehoekCoordinaten[0][1] > (((yRect / 4) * 3)+margin)) { returnMainMenu = true; } if (driehoekCoordinaten[0][1] < (((yRect / 4) * 3)+margin)) { diceButton = true; } } } |
Hier wordt geregeld wat er met de knop "dobbel" moet gebeuren:
Java: code-dobbel
55
56
57
58
59
60
61
62
63
64
65
| void diceButton(int x, int y, int breedte, int hoogte, int kleurRect, int kleurTekst) { if (diceButton == true) { fill(kleurRect); rectMode(CENTER); rect(x, y, breedte, hoogte); fill(kleurTekst); textAlign(CENTER, CENTER); textSize(margin / 2); text("dobbel", x, y); } } |
Hieronder het evenement voor de knop "dobbel" in mousePressed() en mouseReleased():
Java: event-dobbel
66
67
68
69
70
71
72
73
74
75
76
77
78
| if (diceButton == true) { if (mouseX > xPosKnop - xKnopDobbel && mouseX < xPosKnop + xKnopDobbel && mouseY > yPosKnop - yKnop && mouseY < yPosKnop + yKnop ) { dice = true; } } } void mouseReleased() { //Hier wordt geregeld dat de sliders uitgedrukt worden, wanneer de muis losgelaten wordt. Dit geldt ook voor dice, alleen daar gaat het mis SLIDERrobotsSelect = false; SLIDERmargeSelect = false; dice = false; } |