Seite 1 von 1

Lösung Tutorial

Verfasst: 26. August 2008 20:08
von Ivanhoe
Hallo,

ich fange gerade mit Qt an und arbeite zu diesem Zweck das Tutorial von Trolltech durch. Zu jedem Teil des Tuts gibts am Ende ja meist ein paar Aufgaben und für eben diese Aufgaben hätte ich gern gewusst ob es irgendwo ne Musterlösung dazu gibt. Einerseits möchte ich wissen ob ich, wenn ich die Aufgabe gelöst habe, den "besten" weg gefunden habe und andererseits beiße ich mir grad die zähne an einer Aufgabe aus und brauch einfach mal einen Gedankenanstoß.

Danke schonmal.

Bye
Ivanhoe

Verfasst: 27. August 2008 07:08
von macman
Musterlösungen sind mir nicht bekannt. Jeder hat seinen eigenen Programmierstil und da würde das auch nichts bringen.

Verfasst: 27. August 2008 09:07
von upsala
Ich würde sagen: Wenn's geht, dann geht's, ansonsten hier fragen...

Verfasst: 27. August 2008 15:09
von Ivanhoe
Hmm, okay dann will ich hier gleich mal fragen. Vielleicht nutzt der Thread ja dann auch anderen Anfängern was, die das Tutorial durcharbeiten.

#Problem<Chapter 11>

Im 11. Kapitel wird die Aufgabe gestellt: "Change the color of the cannon when a shot is in the air."

Mein bisheriger Versuch die Aufgabe zu lösen bestand darin in die Funktion CannonField::shoot() eine boolsche Variable einzubauen die Auskunft darüber geben soll ob gerade ein Schuss unterwegs ist. Es stand ja im Tut "This function shoots a shot unless a shot is in the air.", also dachte ich es wäre der richtige Ort für meine boolsche Variable. Also habe ich den Code wie folgt erweitert:

Code: Alles auswählen

void CannonField::shoot()
 {
     if (autoShootTimer->isActive())
     {
         shotInTheAir = false;
         return;
      }
     else shotInTheAir = true;
     timerCount = 0;
     shootAngle = currentAngle;
     shootForce = currentForce;
     autoShootTimer->start(5);
 }
Abhängig von 'shotInTheAir' wollte ich dann in CannonField::paintCannon die Brush-Farbe ändern.

Leider führt das nicht zum gewünschten Ergebnis, die Kanone ändert zwar ihre Farbe einmal, aber nur bei Betätigung der Angle oder Force Regler und da auch nicht immer.

Wäre nett wenn jemand einen Hinweis für mich hat, wie ich da weiter komme.

Bye
Ivanhoe

Verfasst: 27. August 2008 17:50
von upsala
Zeichne die Kanone in einer anderen Farbe, wenn der Timer aktiv ist, bzw. wenn der Schuss gezeichnet wird...

Verfasst: 29. August 2008 19:53
von Ivanhoe
Oh mann, ich komm net drauf :oops: ... ist bestimmt irgendwas einfaches.
Ich werd mir das mal als UML-Klassendiagramme aufmalen, vll wirds mir dann klarer ... gibts eigentlich qt-spezifische UML-Notation oder zählt man da Signale und Slots einfach mit zu den "normalen" Methoden?