mehrere Aktionen auf eine Taste

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

  • mehrere Aktionen auf eine Taste

    Hi,
    ich habe folgendes Problem:
    Ich habe ein Spiel erstellt, mit einer Ansicht aus der Vogelperpektive.
    (von schräg oben).
    Genau wie bei dem beliebten Gameboyspiel "Pokemon".
    Nur kann die Hauptfigur schlagen.
    Meine Frage:
    Wie bekomme Ich es hin, dass ich insgesammt 4 SPRITES
    auf einer Taste belege?
    (Nämlich nach oben, nach unten, nach links und nach rechts)
    Die Figur soll ja schließlich auf einer Taste (z.B. "D") in alle Richtungen
    schlagen können.

    Es wäre sehr nett, wenn mir einer den Quelltext dazu schreiben könnte.
    Und wenn es möglich ist, innerhalb der nächsten zwei Wochen.

    PS: Ich habe die unregistrierte GameMaker- Version 6.1

    Danke schonmal im Voraus..
    Das wichtigste BACK- UP ist das, wozu man keine Zeit mehr hatte
  • ich rate folgendes: mach einfach beim "press key d event" immer den test für Richtung.
    "if direction == 270 { image_sprite = schlag_oben }" und damit sich's nicht wiederholt stellst Du bei "release key d event" den sprite wieder auf den stehenden typen. Das war jetzt das Beispiel für oben. Außerdem musst Du das gleiche mit 0 für rechts, 90 für unten und 180 für links machen, fertig.
  • mehrere Aktionen auf eine Taste

    Ich bin`s wieder.
    Erstmal danke für eure Tipps.
    Leider funktioniert es immer noch nicht.

    Ich habe, wie ihr gesagt habt, in den Skript folgendes eingegeben
    (und zwar genau so, wie ich es jetzt hier hinschreibe):

    if direction == 270 { image_sprite = vorneschlagen }
    if direction == 90 { image_sprite = untenschlagen }
    if direction == 0 { image_sprite = schlagenrechts }
    if direction == 180 { image_sprite = schlagenlinks }


    Muss ich villeicht noch irgendwelche Variablen erstellen?
    Oder habe ich beim Schreiben des Skripts etwas wichtiges vergessen?

    Es wäre nett wenn mir jemand helfen würde.
    Das wichtigste BACK- UP ist das, wozu man keine Zeit mehr hatte
  • Original von copyboy
    achwas! sprite_index ist das sub-sprite, das im moment aktiv ist


    Nein, was du meinst ist image_index.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Original von mauge
    Original von copyboy
    achwas! sprite_index ist das sub-sprite, das im moment aktiv ist


    Nein, was du meinst ist image_index.
    Genau darauf wollte ich hinaus. Ich verwende die ktion kaum, ich nehme meistens ne eigene Variable dazu her, da bei mir ein Objekt mehrere Sachen zeichnet und da ist es sinnvoller.
  • sprite_index = das sprite mit einzelelbildern
    image_index = einzelnes bild von sprite_index
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • Also Leute:
    ich bin dafür, dass derjenige, der glaubt dieses Problem lösen zu können,
    einfach mal den Quelltext hier angibt.

    Das würde die Sache erleichtern..
    Das wichtigste BACK- UP ist das, wozu man keine Zeit mehr hatte
  • GML-Quellcode

    1. if direction = 270 { sprite_index = vorneschlagen }
    2. if direction = 90 { sprite_index = untenschlagen }
    3. if direction = 0 { sprite_index = schlagenrechts }
    4. if direction = 180 { sprite_index = schlagenlinks }


    dein sprite_image gibts nicht, aber darauf hat king_andre ja schon hingewiesen.
    nebenbei ist die bezeichnung deiser sprites etwas konfus. manche beginnen mit schlagen, manche enden damit. zudem gibt es kein "schlagenoben" sondern ein "vorneschlagen". sowas kann sehr unübersichtlich werden.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • mehrere Aktionen auf einer taste

    Also, ich zeig euch mal wie mein Spiel ausieht:

    Zu allererst musste ich die figur zum laufen bekommen. da sie nicht nur nach links und rechts und nach oben und nach unten laufen können soll, habe ich einen Quelltext geschrieben, der die figur auch in die Zwischenräume laufen lässt. (schräg oben, schräg unten, usw...).

    der Quelltext sieht folgendermaßen aus:
    (den hab ich beim "Step- Event" eingegeben)

    if( hspeed > 0 and vspeed == 0 )
    sprite_index = Seitegehen1;
    if ( hspeed > 0 and vspeed > 0 )
    sprite_index = vornegehen;
    if ( hspeed == 0 and vspeed > 0 )
    sprite_index = vornegehen;
    if ( hspeed < 0 and vspeed > 0 )
    sprite_index = vornegehen;
    if ( hspeed < 0 and vspeed == 0 )
    sprite_index = Seitegehen2;
    if ( hspeed < 0 and vspeed < 0 )
    sprite_index = hintengehen;
    if ( hspeed == 0 and vspeed < 0 )
    sprite_index = hintengehen;
    if ( hspeed >0 and vspeed < 0 )
    sprite_index = hintengehen;
    if ( hspeed == 0 and vspeed == 0 ) {
    visible = true;
    image_index = 0;
    image_speed = 0;
    }
    image_speed = 1;

    Und beim "key Press"- Event (Taste: D) hab ich folgendes eingegeben:
    if sprite_index = vornestand { sprite_index = vorneschlagen }
    if sprite_index = hintenstand { sprite_index = kampfvornetreten }
    if sprite_index = Seitestand { sprite_index = schlagenrechts }
    if sprite_index = seitestand2 { sprite_index = schlagenlinks }

    SO:
    Und das ist alles was ich in Bezug auf die Hauptfigur habe:
    Das Problem ist, dass die Figur läuft, aber nicht in alle Richtungen schlägt.
    Das wichtigste BACK- UP ist das, wozu man keine Zeit mehr hatte