If-Fehler
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Schreibe das if mal kleinEin Bug ist mehr als nur ein Bug, es ist ein... Käfer!
Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach
Willst du mit mir auf Discord Chatten/Quatschen?
Meine Husi's Tutorial Reihe -
Hast du "inst" deklariert? Wenn dein inst das sein soll, was du eine Zeile drüber erstellst, musst du das so machen:
inst = instance_create(JOHN.x,JOHN.y,throwing_stone)
Außerdem ist am Ende von deinem instance_create noch ein Komma, das musst du wegmachen. Was Husi schon sagte, das if dann auch noch klein schreiben.
Was genau möchtest du mit "direction = direction" bezwecken?
Das ist ja wie wenn mir ein Mathelehrer sagt, dass 1 genauso groß wie 1 ist, oder dass mir ein Koch sagt, dass eine Erbse eine Erbse ist
-
icqgamer ja aber ich habe doch Klammern, wo müssen die dann hin?
direction=direction ist, dass man in die Richtung schießt, in die man gerade lenkt. -
Wenn du die Richtung deines Objektes an die Richtung deines Spielers übertragen willst, musst du es dem Spiel so sagen.
Was du momentan machst ist, innerhalb deines erstellen Objektes zu sagen, dass direction = direction ist. Dies ändert jedoch rein garnichts. Das wollte ich dir damit sagen
Die Variable hasStone sollte mit dem Wert true oder false (in diesem Falle false) am besten im Create Event deines Spieler-Objektes deklariert sein.
Die Variable "inst" ist das Objekt, was du erstellen möchtest. Mitinst.xxxxx
übergibst du Attribute an dieses Objekt, in diesem Falle Speed und Direction.
Alles in der Klammer der If-Abfrage, da dieses Objekt ansonsten nicht existiert und du dann versuchst etwas zu beeinflussen, was es nicht gibt, was ebenfalls zu einem Fehler führt.
Was du mit den Klammern meinst, weiß ich jetzt nicht, die bleiben doch so wie sie sind. Du solltest lediglich das letze Komma von deinem instance_create entfernen, da es kein weiteres Argument für diese Funktion gibt.
-
Und wie kann ich jetzt mit "space" schießen?
-
-
Hä? Wenn ich jetzt SPACE drücke kommt nichts.
Eventuell liegt es ja an dem, dass ich wenn ich winzig bin nicht werfen kann oder??!
Keine Ahnung.
Bleibt dies mit dem Space dann nur in dem Raum oder für immer? -
cino schrieb:
Hä? Wenn ich jetzt SPACE drücke kommt nichts.
Eventuell liegt es ja an dem, dass ich wenn ich winzig bin nicht werfen kann oder??!
Keine Ahnung.
Bleibt dies mit dem Space dann nur in dem Raum oder für immer?
Liegt höchstwahrscheinlich daran, dass deine hasStone Variable nicht auf true gesetzt ist.
Solange das Objekt im Raum ist & hasStone auf true steht kannst du Space drücken bis dir die Finger wehtun. -
Ich habe den Stein eingesammelt und kann trotzdem nichts chießen.
Collision mit throwing_stone = hasStone: true -
Was steht da genau in der collisions-event?
es müsste stehen:
hasStone = true;huhu -
-
-
Gehört das ! auch wirklich dazu?
-
Ja, das negiert die Aussage, also wenn du noch keinen Stein eingesammelt hast, dann macht der Code alles, was in den {...}-Klammern steht.
-
ok, aber wenn ich den Raum verlasse, habe ich es wieder verloren.
-
Wahrscheinlich weil du es dann immer wieder einliest. Das Create Event wird bei jedem neuen Raum neu eingelesen.
Du könntest ein Objekt erstellen, wo du die Variable als globale Variable deklarierst, damit sie von jedem Objekt geändert werden kann, dieses Objekt packst du in deinem ersten Raum und machst anstatt des Create-Events ein Game-Start Event, wo du die Variablen definierst.
Dort schreibst du dann bspw.global.hasStone = false;
Sobald dein Spieler einen Stein aufsammelt, machst duglobal.hasStone = true
Du könntest auch auf Methode 1 verzichten und mit Ini-Dateien arbeiten, wo du Sachen wie hasStone reinschreibst und dann im Create Event immer ausliest. Die sollte man aber eher für Einstellungen nehmen und nicht für Spielinterne Geschehnisse meiner Meinung nach.