Laden...

Variable um 1 dekrementieren

Erstellt von Sizzla vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.009 Views
Thema geschlossen
S
Sizzla Themenstarter:in
28 Beiträge seit 2009
vor 15 Jahren
Variable um 1 dekrementieren

Hy leute ich versuche jetz schon seit 2 stunden bei meinen Jumpn Run
Wenn die Zeit abläuft dass mein Abenteurer ein Leben verliert aber ich kriegs einfach nicht hin. Könnt ihr mir bitte ein paar denk anstösse geben ? X(

else if (level.TimeRemaining == TimeSpan.Zero)
                {
                    if (level.ReachedExit)
                        LoadNextLevel();
                    else
                    {
                        lives--;
                        ReloadCurrentLevel();
                    }
                }

dass "lives--;" ist immer falsch aber ich weiss einfach nicht wie ich das schreiben soll.

Danke schon mal.

Sizzla

1.002 Beiträge seit 2007
vor 15 Jahren

Hallo Sizzla,

an "lives--;" direkt ist nichts auszusetzen.
Deklarierst du denn die Variable auch irgendwo und weist ihr vor dieser Rechnung auch einen Wert zu?

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

S
Sizzla Themenstarter:in
28 Beiträge seit 2009
vor 15 Jahren

ja die variable deklariere ich hier:

 private int lives = 3;

hoffe das reicht... =)

und der Fehler lautet:

Fehler 2 Der Operator "--" kann nicht auf einen Operanden vom Typ "Platformer1.PlatformerGame.Lives" angewendet werden. B:\Programmierung\meine Games\Platformer1\Platformer1\PlatformerGame.cs 131 25 Platformer1

N
335 Beiträge seit 2006
vor 15 Jahren

Hallo Sizzla,

offenbar ist deine Variable lives vom Typ Lives (genauer: Platformer1.PlatformerGame.Lives). Und dieser Typ kennt keinen Dekrement-Operator.
Heißt also: lives ist kein Integer, sondern eine Klasse/Struct. Du musst dir eine Methode / Property schreiben, um an die private Member-Variable lives heranzukommen, die du zitierst.
Oder alternativ: Den Dekrement-Operator in der Klasse / Struct implementieren.

Mehr kann ich aber bei dem Fehler und dem kurzen Code-Fragmentsplitter nicht sagen. Poste bitte die relevanten Stellen.

Mfg NeuroCoder

S
Sizzla Themenstarter:in
28 Beiträge seit 2009
vor 15 Jahren

Ok danke für die Antworten ich habe die Lösung also:

Habe eine kleine Änderung vorgenommen und schwups passt es 😃

lives = lives -1;

Jetz habe ich nur noch 1 problem, es wird zwar ein Leben abgezogen aber auf meiner Lebensanzeige bleibt der wert gleich..
Übrigens ich arbteite mit XNA falls es weiterhilft.

Sizzla

1.346 Beiträge seit 2008
vor 15 Jahren

Offenbar befindet sich in deiner Updatemethode irgendwo:


...
Lives lives;
...

Daswegen updatest du wahrscheinlich die falsche Variable. benenne deine lives Variable an beiden Stellen um. Dann sollte auch der -- Operator funzen. Dann sollte sich deine Anzeige auch updaten.

Gruß pdelvo

49.485 Beiträge seit 2005
vor 15 Jahren
S
Sizzla Themenstarter:in
28 Beiträge seit 2009
vor 15 Jahren

tut mir leid herbivore aber in diesem Fall gibt es ja keine Fehlermeldung, da es ja kein Fehler ist sondern nur ein Befehl der irgendwo fehlt und i habe meine bücher schon durchwühlt aber leider nicht den passenden Befehl gefunden der mein Problem löst.

Sizzla

EDIT: Ok das mit den Grundlagen verstehe ich, ich werde es in Zukunft vermeiden. Nur leider gibt es nirgends ein Forum wo man solche Fragen stellen kann.

Gelöschter Account
vor 15 Jahren

Fehler 2 Der Operator "--" kann nicht auf einen Operanden vom Typ "Platformer1.PlatformerGame.Lives" angewendet werden. B:\Programmierung\meine Games\Platformer1\Platformer1\PlatformerGame.cs 131 25 Platformer1

das ist für mcih ein compilerfehler und der link von herbivore passt sehr gut zu diesem. hier ist im übrigen auch dein ansatzpunkt, um festzustellen was du flasch machst. wenn du dir diesen thread aufmerksam durchließt, wird dir auch erklärt warum dieser compilerfeher kommt. wenn du es dennoch nciht verstehst, dann fehlen dir ein paar wesentliche grundlagen und das ist dann auch der grund für
Wichtig: [Hinweis] Wie poste ich richtig?
Punkt 1.1.1

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Sizzla,

Nur leider gibt es nirgends ein Forum wo man solche Fragen stellen kann.

glücklicherweise(!) gibt es das nicht. Wir sollten die Anfänger nicht vergraulen, sondern erwarten nur, dass sie sich die nötigen Grundlagen selbst aneignen. Das ist durchaus im Sinne der Anfänger.

herbivore

1.346 Beiträge seit 2008
vor 15 Jahren

Noch etwas: Crossposts sind hier generell unerwünscht.

Gruß pdelvo

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Sizzla,

also es ist schon sehr dreist, mit sowas dann auch noch mehrere Foren zu beschäftigen. Siehe [Hinweis] Wie poste ich richtig? Punkt 2.

Zumal du hier schon eine gute Antwort hattest, bevor du das zweite Forum eingeschaltet hast.

So oder so, lass das bitte.

herbivore

Thema geschlossen