Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ProAmateur

Alter Hase

  • »ProAmateur« ist der Autor dieses Themas

Beiträge: 434

Wohnort: Bei Simmern, Koblenz

Beruf: Schüler

  • Private Nachricht senden

1

27.11.2011, 14:24

boolsche-Variablen: Aktion bei Wertwechsel

Hi alle

Kennt jemand eine Lösung, bzw eine Funktion, wie ich es hin bekommen, wie bei einer if- Abfrage,
eine Aktion nur beim Wertwechel der bool Variable auszuführen?

Bei meiner anwendung:
Ich hab ein Billard-Spiel programmiert; nun will immer dann wenn alle Kugeln sich nicht mehr bewegen (bzw. nur nich sehr gering),
die nächste Runde einleiten.
das heißt aber, wenn ich in meinem Projekt einfach in jedem frame abfrage:

C-/C++-Quelltext

1
{if (tbVector3Length(m_Ball[x]->m_vVelocity) > 0.5f) m_bNextPush = false;


und dann

C-/C++-Quelltext

1
if (!m_bNextPush) Round++;


Dann erhöht er ja die Zähler-variable in jedem Frame, indem die sich nich mehr bewegen und das wäre ja falsch.

Ich müsste nur auf den Wertwechsel reagieren.
Irgendjemand eine Idee?

ProAmateur
"Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will."
Galileo Galilei
________________________________________________________________________

"Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

27.11.2011, 14:30

Wieso setzt du m_bNextPush nicht einfach wieder auf true?

Allgemein kann man das wechseln von Werten auf zwei Arten bemerkbar machen, wenn man beim Wechsel ein Event auslöst(z.b. über eine Setmethode ;) ) oder sich den letzten bekannten Wert speichert und überprüft ob sie gleich sind.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

ProAmateur

Alter Hase

  • »ProAmateur« ist der Autor dieses Themas

Beiträge: 434

Wohnort: Bei Simmern, Koblenz

Beruf: Schüler

  • Private Nachricht senden

3

27.11.2011, 14:41

Das mit dem letzen Wert speichern is mir auch grad eingefallen, gibt es da nicht aber auch eine Funktion schon zu,
denn das ist ja auch wieder mit ein wenig Aufwand verbunden, bzw mit verbrauchtem Quelltextplatz?

Und was meintest du mit der 1. Idee?

EDIT:: Achso, es bringt nix wenn ich die Variable wieder auf true setzen, da sie dann im nächsten Frame wieder auf false gesetzt wird.
Wäre also sinnlos... :P
"Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will."
Galileo Galilei
________________________________________________________________________

"Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

27.11.2011, 14:47

Hast du begrenzen Platz für deinen Quelltext? oO
Alles ist mit Aufwand verbunden, aber was muss das muss.

Du musst die Geschwindigkeit doch nur einmal Prüfen, sobald sie sich nichtmehr bewegen werden sie auch liegen bleiben. Jedenfalls bis ein Spieler den Ball anstößt.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

ProAmateur

Alter Hase

  • »ProAmateur« ist der Autor dieses Themas

Beiträge: 434

Wohnort: Bei Simmern, Koblenz

Beruf: Schüler

  • Private Nachricht senden

5

27.11.2011, 16:44

das Problem is ja nur, dass die Geschwindigkeit teoretisch nie auf Null geht, da ich sie in Jeden Frame um 10% verringerre und so keine 0 enstehen kann:-D
"Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will."
Galileo Galilei
________________________________________________________________________

"Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

27.11.2011, 17:43

Dann setz sie ab einem Schwellwert auf 0 ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

27.11.2011, 18:42

Stichwort Zustandsautomat.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Saik0

Treue Seele

Beiträge: 171

Beruf: Anwendungsentwickler

  • Private Nachricht senden

8

28.11.2011, 11:31

Vorallem müssen die Billiard Kugeln irgendwann stehen bleiben und wenn sie stehen, setzt du eben einen anderen Status.

Werbeanzeige