Sprite wechsel dich, Animation lass laufen =)

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

  • Sprite wechsel dich, Animation lass laufen =)

    Hey^^

    Ich hab da wieder ein rießen Problem welches sich höchstwahrscheinlich wieder total einfach lösen lässt :o)

    Also ..Spiel soll n Topdown shooter werden.

    Nun kann ich mit der figur laufen und sprite ändert sich und sobald es am Controllerobject ist (Controllerobjekt folgt der Maus) stop die Figur auch und das stehen sprite wechselt sich.
    Da ich aber im Press Button das Sprite ändern drin hab wechselt das Sprite nicht mehr ins Laufensprite wenn ich die Bewegentaste halte und mit der Maus weiterfahre. Die figur bewegt sich aber das es wird das Sprite stehen angezeigt.

    Nun hab ich versuch im Step event zu machen wenn speed ist 0 dann stehen sprite. Wenn über 0 dann gehen sprite allerdings wird dann immer das erste Bild der animation angzeigt. das gleiche ist ja auch im "genrellen" Button drücken so ....

    Wie könnte man das lösen ..komm leider nicht drauf :(

    Lg
  • Hmm...

    GML-Quellcode

    1. //Step - Event
    2. if x != xprevious && y != yprevious && sprite_index != sprPlayerWalk //Wenn der Player sich bewegt hat und der Sprite nicht dem Laufsprite entspricht...
    3. {
    4. sprite_index = sprPlayerWalk //Den Laufsprite einstellen.
    5. image_speed = 0.25 //Die Bewegungsanimation einstellen.
    6. }
  • Hi

    ...ja habs gerade runtergeladen und da fehlen ein paar dateien
    bzw. ein Objekt.

    lad bitte mal das ganze hoch, oder möchtest du es nicht online stellen?

    und eins könttest du noch probieren spiele mit der "Test Variable" herum
    da lassen sich solche Probleme meistens lösen.

    Edit---und kleiner Tipp am Rande: drück oben auf dem Bildschirm "Mein Profil" und gib an das du Drag&Drop Einsteiger bist sonst wirsd du nur Scripts als Antwort kriegen,
    so wie Phoenix eines geschrieben hat
  • Hey,

    jub die sollen auch fehln ^^
    aber...mir gehts auch nur darum wenn man W drückt geht er und dann eben das oben beschriebene Problem wenn du einmal an das "Maus" object stößt und weiterhin auf W bleibst und die maus wegziehst dann wechselt das sprite ja nicht mehr...... bzw.. wenn ichs in step mach wird immer nur das erste bild der bewegen animation geändert.

    Mhh was Test Variable ????

    Hab mal auf deinen Tipp gehört aber GML anfänger gemacht ^^..weil die ein oder andere Zeile weiß ich sogar :D
  • nimm eínfach das Maus Objekt raus und sag ihm

    GML-Quellcode

    1. if hspeed!=0 && vspeed!=0 // wenn hspeed ungleich 0 ist(kleiner oder größer und vspeed ungleich 0 ist)
    2. {
    3. sprite_index=player_geht //verändert das bild in---- 'jetzt Name des Sprites wo dein spieler geht'
    4. image_speed=0.5 //wie schnell sich das bild bewegt (0.5 ist halbe geschwindigkeit musst halt schauen)
    5. }

    probier das mal
    ist glaub es ist kein Problem für dich das auch in Drag&Drop zu verwandeln
  • Ich habe jetzt mal Eumis Lösung ausprobiert und folgendermaßen angepasst:

    GML-Quellcode

    1. if(hspeed!=0 || vspeed!=0) // wenn sich die Figur bewegt
    2. {
    3. sprite_index=Spieler_gehen; //verändert das bild, entspricht "Change Sprite"
    4. }


    Das einfach als Execute a piece of Code ins Step Event vom Spieler, funktioniert bei mir.
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • W-key-event:

    GML-Quellcode

    1. if x!=obj_control.x && y!=obj_control.y
    2. {
    3. If keyboar_check_key(w)
    4. {
    5. //deine Laufaktion
    6. //bsp:
    7. speed=2
    8. sprite_index=lauf_spr
    9. }
    10. }
    11. //step
    12. If speed=0
    13. { X(
    14. Sprite_index=stehen_spr
    15. }
    16. //auf die gleiche Weise checkst du ob er auf der gleichen Position ist wie die Maus
    17. Wkeyeelease
    18. //hier machst du einfach das sprite zum stehen sprite
    Alles anzeigen


    Sry das ich es nicht vollstandig machen kann aber ich hab zu tun X(