Problem mit der Variablen für Diesel

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit der Variablen für Diesel

    Hallo!

    Ich habe eine Schneeraupe entwickelt, mit Kollisionsabfrage nach rechts links und unten.

    Nun will ich ihr Diesel geben damit sie fahren kann und auch nur fährt wenn sie welchen hat.
    Also habe ich bei der Raupe als Event "Create" hinzugefügt und und als Action "VAR set variable Diesel +10"

    Wenn ich dann über den grünen Pfeil starte kommt folgender ERROR:


    ___________________________________________
    FATAL ERROR in
    action number 1
    of Create Event
    for object raupe stand:

    COMPILATION ERROR in code action
    Error in code at line 1:
    Diesel = + 10

    at position 8: Variable name expected.



    Wie bekomme ich es hin das der Diesel angenommen wird und dieser auch bei bewegung der Schneeraupe abnimmt?


    SuFu benutzt aber nichts gefunden :(

    Danke im vorraus für eure Hilfe!!!!
  • henrik: 10 und +10 sind genau das gleiche. Der GM macht bei sowas keine Probleme. Bitte probier die Lösungsvorschläge, die du geben willst, vorher mal selbst aus.

    Skaw:

    var <- ganz ganz schlecht - damit existiert die Variable nämlich nur im Create-Event, danach wird sie aus dem Speicher gelöscht und kann nicht mehr als Referenz benutzt werden.

    GML-Quellcode

    1. diesel=10

    genügt schon, um die Variable so lange im Objekt zu lagern, bis die Instanz zerstört wird. var solltest du nur bei temporären Variablen benutzen, die du später nicht mehr brauchst.

    Ich könnte mir gut vorstellen, dass der Objektname früher oder später auch Probleme machen wird. "raupe stand" sollte durch "raupe_stand" ersetzt werden - Leerzeichen in Ressourcennamen sind im Allgemeinen genauso tödlich wie Umlaute und Sonderzeichen.
  • Wow, danke für die schnelle Antwort!!!

    Also die "VAR" hab ich nun in diesel umgenannt und nun löst sie keinen ERROR mehr aus,

    Doch nun taucht das nächste Problem auf. Ich kann nur solange fahren wie ich die Bewegungstaste drücke, dabei ist es egal ob die Raupe sich 1 oder 4 sec bewegt. (also nicht gerade abhängig vom Diesel)

    Hier mal ein Bild der Actions:

  • @Irrenhaus3

    diesen süßen Button habe ich leider nicht... liegt daran das ich nicht die Vollversion habe^^


    Habe mal die VAR in einen ordner gelegt den ich Steuerung genannt habe, so in etwa wie bei dem Autospiel

    kann das Spiel zwar starten jedoch kommt dann


    ___________________________________________
    ERROR in
    action number 2
    of Key Press Event for <Right> Key
    for object raupe_stand:

    Error in expression:diesel
    position 1: Unknown variable diesel

    ___________________________________________
    ERROR in
    action number 2
    of Key Press Event for <Right> Key
    for object raupe_stand:

    Cannot compare arguments.

    ___________________________________________
    ERROR in
    action number 2
    of Key Press Event for <Right> Key
    for object raupe_stand:

    Error in expression:diesel
    position 1: Unknown variable diesel



    OMG
  • Das hat mit Vollversion nichts zu tun, der ist in Lite und Pro drin.
    Vielleicht hast du deinen Game Maker auch noch nicht in den Advanced
    Mode geschalten, schau mal danach in der Hilfe (Ich weiß grad nicht mehr,
    wo man das umstellen konnte).
    Gruß, Spellmaker

    Edit: Außerdem solltest du die Variable nicht mit var deklarieren, dann vergisst
    der GM sie nach dem Skript wieder. Lass das var weg.
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • okay, habs gefunden

    hier nun die informationen zur Paupe

    Information about object: raupe_stand

    Sprite: raupe stand
    Solid: false
    Visible: true
    Depth: 0
    Persistent: false
    Parent: <no parent>
    Mask: <same as sprite>

    Step Event:
    if position (0,-1) is collision free for Only solid objects
    set the gravity to 1 in direction 270

    Collision Event with object obj block:
    move in direction 270 at most -1 till a contact with solid objects
    set the vertical speed to 0

    Key Press Event for <Left> Key:
    if position (-1,0) is collision free for Only solid objects
    if diesel is larger than 0
    set the sprite to raupe links with subimage 0 and speed 5
    set the horizontal speed to -5
    set variable diesel to -1

    Key Press Event for <Right> Key:
    if position (1,0) is collision free for Only solid objects
    if diesel is larger than 0
    set the sprite to Raupe rechts with subimage 0 and speed 5
    set the horizontal speed to 5
    set variable diesel to -1

    Key Release Event for <Left> Key:
    set the horizontal speed to 0
    set the sprite to raupe stand links with subimage 0 and speed 5

    Key Release Event for <Right> Key:
    set the horizontal speed to 0
    set the sprite to raupe stand with subimage 0 and speed 0
  • Was ist denn aus dem Create-Event geworden? Dort musst du die Variable "diesel" definieren.
    Füg einfach
    Set variable "diesel" to (Dein Wert hier)
    ins Create-Event ein.

    Außerdem hast du wohl bei einigen Aktionen das Häkchen bei "Relative" vergessen - nämlich hier (Verbesserungen sind hervorgehoben):

    Step Event:
    if relative position (0,-1) is collision free for Only solid objects

    Key Press Event for <Left> Key:
    set variable diesel relative to -1

    Das gleiche im Key Press Event for <Right> Key


    Außerdem würde ich dir empfehlen, im Menüpunkt "Scripts" mal die Aktion "Check Resource Names" auszuführen und eventuelle Fehler zu beheben. (Oder poste die Liste hier, dann geben wir dir Bescheid, was verbesserungswürdig ist. ;) )
    Ansonsten sollte so alles glatt gehen.
  • Danke dir, nun klappt es so wie geadacht.

    Gecheckt habe ich das mal und Fehler gleich behoben.


    okay, diese relativ hatte ich bis eben nicht ganz verstanden... so wie ich es verstehe verändert es einen bestehenden Wert um den Faktor....
    Also bei mir geht dann der Dieselvorrat runter, ohne dieses relativ generiert er den Diesel gleich zu -1.... weiss nicht ob das verständlich ist aber glaub ich habs verstanden.... ?(


    So, nun werd ich mal versuchen noch eine Digitale Tankanzeige einzurichten.... mal schauen ob mir das gelingt.... wenn nicht lesen wir uns hier bald wieder.


    Vielen Dank fuer die schnelle Hilfe!!!!
  • Benutzer online 1

    1 Besucher