Code: Geht nur bei einem Objekt, in anderen nicht

  • GM 8

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

  • Code: Geht nur bei einem Objekt, in anderen nicht

    Hallo,
    Ich weiß einfach nicht, warum der Bewegungscode nicht bei anderen Objekten geht!

    GML-Quellcode

    1. {
    2. if ( !place_snapped(32,32) ) exit;
    3. var dx, dy;
    4. hspeed = keyboard_check(vk_right)-keyboard_check(vk_left);
    5. vspeed = keyboard_check(vk_down)-keyboard_check(vk_up);
    6. if ( hspeed != 0 ) vspeed = 0;
    7. speed *= 4 ;
    8. if ( speed != 0 )
    9. {
    10. angle = direction;
    11. switch ( direction )
    12. {
    13. case 0: sprite_index = rechts; break;
    14. case 90: sprite_index = oben; break;
    15. case 180: sprite_index = links; break;
    16. case 270: sprite_index = unten; break;
    17. }
    18. image_speed = 0.75;
    19. } else image_speed = 0;
    20. dx = lengthdir_x(speed,direction);
    21. dy = lengthdir_y(speed,direction);
    22. }
    Alles anzeigen

    Dieser Code geht nur in der Form nur in einem Objekt, sobald ich ihn übertrage, geht er nicht, also ersetze ich [links, etc (Bilder) ]!
    Ich habe noch "dy, dx, angle" durch -II-2 ersetzt:

    Kein Erfolg!

    Brauche dringend Hilfe!

    LG TPFunGame
  • Ich verstehe dein Problem auch nicht, aber die Variablen zu ersetzen macht keinen Sinn.

    Warum verwendest du hspeed, vspeed UND speed, angle alles gleichzeitig?


    Ich tippe jetzt mal drauf dass es mit einem aufgeräumteren Bewegungscode funktionieren wird... bzw probier es einfach mal mit zwei Objecten und einem ganz simplen Bewegungscode. Das wird gehen und dann kannst du Stück für Stück mehr hinzufügen und siehst dann sofort worans hängt/hängen sollte.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Also ich hab hier eine gmk im Anhang die Bewegung auf einem Grid lößt, ich schätze das ist dass was du bräuchtest. Aber es gibt mehrere Ansätze, entweder über (speed, direction) , (hspeed, vspeed) , (x+-a,y+-a).
    Ich hab mich eher an dem was du bisher hast orientiert und habs mit hspeed und vspeed gemacht.

    Ich hoffe ich kann dir damit helfen :)
    Dateien
    • grid_bewegung.gmk

      (13,51 kB, 111 mal heruntergeladen, zuletzt: )

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Ja Danke! Ich werde mich damit beschäftigen. Ich werkel grade an INIs!

    EDIT: Der Code funktioniert bei dem normalen Sammler, kaum setze ich ihn in ein anderes Objekt ein, geht er nicht!?!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von TPFunGame ()

  • Mein Code? Ich hab ihn mit mehreren Objecten getestet, der geht. Ich glaube um dir helfen zu können musst du mal deine gmk hochladen oder zumindest eine gmk mit den objecten die es betrifft.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Ich konnte jetzt beim überfliegen nichts bemerken was falsch ist, ich kann aber auch dein Problem nicht sehen, bei mir funkt alles.
    Gucke ob alle Variablen die du in dem script benutzt, in dem Object in dem du sie nutzten möchtest richtig verwendet und initialisiert werden.
    Außerdem würde ich ein anders Movement script benutzten, wie Ryou schon angemerkt hat.

    Hier sonst noch ein paar allgemeine Tips zu deinem project: Nutze keine Groß / kleinschreibung in den Namen deiner Resourcen (Sprites, Objects etc)
    Nutze auf keinen Fall Leerzeichen.
    Mach vor jedes Object ein obj_ vor jedes sprite ein spr_ for jeden sound ein snd_ etc. Somit gehst du sicher das kein Name zweimal vorkommt. Da dieses Project schon sehr weit scheint, rate ich dir außerdem (abgesehen von den Leerzeichen! ) diesen Rat erst in zukünftigen Projekten zu herzen zu nehmen. Dir wird auffallen das automatisch alles übersichtlicher wird. Und zu guter Letzt: Alles kommentieren! Sonst guckst du dir Code später noch an, und weißt nicht was er macht (ist mir auch schon [oft] passiert :----S )

    MFG Hellfish
  • Okay Danke. Wo sind Leerzeichen? Habe diesbezüglich schonmal geguckt. Wo haben sich noch welche versteckt?

    Nochmal zum Problem.
    Der Code funkt beim Sammler super. Sobald ich ihn auch in den (z.B.) Schwert-Sammler tue, bewegt er sich nicht mehr! (Ich habe natürlich die Sprites angepasst!)
  • Also bei mir gehts ohne Probleme, die Menge an Code generell hat mich zwar ein wenig erschlagen^^ aber ich konnte sonst auch keinen Fehler finden, alle Sammler konnten sich gleichzeitig bewegen. Ich weiß nicht worans bei dir liegen könnte 8|

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Ich musste nichts an deiner gmk dafür ändern, ich habe einfach alle sammler in den Raum gestellt und konnte sie alle gleichzeitig steuern :)

    Übrigens funktioniert der Code den du hast überraschend gut^^ aber ich würde dir trotzdem empfehlen einen aufgeräumten klaren und klar zu verstehenden zu verwenden.

    PS: Dadurch dass ich alle Sammler zusammen im Raum gesteuert habe, habe ich sie mit versch Bewegungscodes gesteuert, deinem und meinem.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)