Farbe eines Balles ändern (Java)?

1 Antwort

So wie ich das sehe, arbeitest du mit Processing, nicht Java.

Zum Lösungsverfahren:

Sobald ein Ball kreiert wird, wird ihm eine Lebensdauer zugewiesen. Das machst du schon. In der update-Funktion müsstest du folgend prüfen, wann eine Sekunde vergangen ist und dann die Lebenszeiten deiner Bälle aktualisieren (1 herunterrechnen) und überprüfen.

Nutze für den Timer millis. Zu Programmstart holst du dir die Startzeit und in draw holst du dir nochmal eine aktuelle Angabe (in einer zweiten Variable). Die Differenz zwischen aktueller Zeit und Startzeit muss 1000 betragen, dann ist eine Sekunde vergangen. Aktualisiere die Startzeit darauf, damit der Timer praktisch wieder auf 0 steht.

Alternativ könntest du auch einfach immer schauen, ob die aktuelle Zeit geteilt durch 1000 den Rest 0 ergibt.

Wenn gerade ein Zeitintervall (eine Sekunde) vergangen ist und einer deiner Bälle seine gesamte Lebenszeit aufgebraucht hat, darfst du ihn nicht mehr zeichnen. Das setzt voraus, dass du bei jedem Aufruf von update die Zeichenfläche einmal überzeichnest:

background(255);

// draw all other elements again ...
Javaanfaenger48 
Fragesteller
 02.09.2021, 10:13

Ja ich arbeite mit Processing habe gedacht es wäre trotzdem Java wie gesagt ich habe letzte Woche erst damit angefangen und hatte davor wirklich gar keine Ahnung. Aber danke schonmal es funktioniert mittlerweile

0
Javaanfaenger48 
Fragesteller
 02.09.2021, 10:51
@Javaanfaenger48

Es funktioniert doch nicht die Bälle bekommen die Lebensdauer zugewiesen und verschwinden auch nach der Zeit dann wieder das funktioniert schon alles aber mein Problem ist ja nur das ich nicht weiß wie ich die Farbe der Bälle ändere wenn sie nur noch z.B. 500 zu sehen sind sollen sie Rot werden. Das war ja das einzige Problem was ich habe der Rest funktionierte auch vorher schon

0
regex9  02.09.2021, 10:57
@Javaanfaenger48

Wenn du die Lebenszeit aktualisierst (weil eine Sekunde vorbei ist), prüfst du im Anschluss einfach ebenso, ob der Ball noch 500s hat oder nicht.

if (ball.lifespan <= 500) {

Sollte dem so sein, änderst du seine Farbe:

ball.circleColor = color(255, 0, 0);

Ich gehe davon aus, dass du beim Zeichnen eines Balls die circleColor auch jedesmal verwendest.

fill(ball.circleColor);
circle(ball.x, ball.y, ball.radius);
0
Javaanfaenger48 
Fragesteller
 02.09.2021, 11:08
@regex9

Und dass muss ich dann einfach da hinschreiben wo momentan die Farbe vom Ball definiert wird oder hab ich das falsch verstanden

0
regex9  02.09.2021, 11:11
@Javaanfaenger48

Spätestens bevor du den Ball zeichnest, musst du prüfen, ob er eine bestimmte Lebensphase schon überschritten hat oder nicht.

0
Javaanfaenger48 
Fragesteller
 02.09.2021, 11:59
@Javaanfaenger48

Du hast nur für ein bisschen Verwirrung bei mir gesorgt wo ich geschrieben hab dass ich mit Java programmiere meintest du ich nutze Processing und da ich immer noch kompletter anfänger bist wie du wahrscheinlich schon gemerkt hast wollte ich jetzt noch mal die vermutlich dümmste Frage überhaupt stellen und zwar ist Processing jetzt nh eigene Sprache also zum Programmieren oder einfach nur das Programm mit dem man andere Programme schreibt und Java die eigentliche Programmiersprache

0
regex9  02.09.2021, 12:01
@Javaanfaenger48

Processing ist eine eigene Programmiersprache mit einer gleichnamigen Entwicklungsumgebung. Das ganze zugrundeliegende System (Entwicklungsumgebung und Kernfunktionalitäten für Processing) wurden mit Java entwickelt.

0
regex9  02.09.2021, 12:06
@regex9

Mit Entwicklungsumgebung ist der Editor gemeint, in dem du deinen Code schreibst und ausführen lässt.

0