Objekt zu langsam ?

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

  • Objekt zu langsam ?

    Hi, habe da 2 Objekte in einem Jump & Run. Eines ist der Spieler und das andere seine Waffe. Habe die Origins so gesetzt dass sozusagen ein "Gelenk" entsteht um die Waffe dann um die eigene Achse drehen zu lassen um zu zielen. Dann habe ich den Code hier

    GML-Quellcode

    1. x = spieler.xy = spieler.y

    ins Step-Event der Waffe eingegeben. Was passiert ? Wenn ich ein bisschen herummhüpfe kommt die Waffe nicht mehr mit, die schwimmt nur so hinten nach. Unpraktisch für eine Waffe :D . Wie kann ich das Problem jetzt lösen ? Das blöde ist, ich kann nicht einfach sagen, dass die Waffe beim Tastendruck gleich wie der Spieler reagieren soll (also gehen). Ich habe ja bei einem Jump & Run nicht nur die Bewegung des Spielers sondern auch die der Schwerkraft wenn der Spieler irgendwo runterfällt. Da kann ich nicht sagen "bei Tastendruck bewegst du dich gleich wie der Spieler...." damit die Waffe nachkommt. Ich hoffe ihr habt das Problem verstanden ^^
  • ich könnte es mir damit erklären, dass das Spielerobjekt nach der waffe im room createt wird und somit erst verschoben wird, wenn die Waffe an der (alten) Position ist.
    Eine Lösung wär das spielerobjekt nochmal in den room neu zu setzen oder viel effektiver die waffenposition gleich im stepevent des players zu verändern.
  • Jetzt funktionierts schon viel besser, aber wenn man von hoch runterfällt verschiebt die Waffe sich immer noch.....gut wenns keine Lösung gibt, könnte man das als gewolltes Spielelement aufnehmen :D

    Edit: Da war jemand schneller :) Gleich mal probieren

    Edit2: Also wie gesagt, dass mit dem Step-end Event klappt solala. Wenn ich die Position der Waffe im Step Event des Players steht, verändert sich mal nichts. Was meinst du mit " das Spielerobjekt nochmal in den room neu zu setzen " ? Wie würde das in Codeform aussehen ?

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

  • The Dust schrieb:

    Edit2: Also wie gesagt, dass mit dem Step-end Event klappt solala.
    Wenn ich die Position der Waffe im Step Event des Players steht, verändert sich mal nichts.
    Besser noch: Verändere die Position der Waffe im End-Step-Event.
    D
    Bis dahin wurden alle Koordinatenberechnungen schon durchgegangen und man setzt wirklich auf die Koordinate der Spieler-Instanz, welche dann auch gedrawed wird.

    The Dust schrieb:

    Was meinst du mit " das Spielerobjekt nochmal in den room neu zu setzen " ? Wie würde das in Codeform aussehen ?
    Manuell... Nix Code.
    Du gehst in den Raumeditor und setzt das Objekt noch einmal rein.
    Wobei das eine sehr unsaubere Lösung ist.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Oder mach (ich weiß nicht wie das bei dir ist, ich kann gmk nicht öffnen) mach bei der waffe im draw-event:

    GML-Quellcode

    1. x = spieler.x;
    2. y = spieler.y;
    3. draw_sprite(sprite_index,image_index,x,y);


    Wenn dieses vor der Draw Funktion ist zeichnet er dir auch genau die gleiche stelle.
    Also direkt vor den Zeichnen werden die Positionen verglichen, dazwischen kann nichts mehr passieren!


    wie gesagt hab leider kein gm7 (bekomme es nicht registriert)^^

    Achja hast du die waffe i-wie gedreht oder so musst du das nehmen:

    GML-Quellcode

    1. x = spieler.x;
    2. y = spieler.y;
    3. draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);
    „Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“
    Albert Einstein
  • maxda schrieb:

    Also: Ichdenke du musst einfach nur den Room-speed höher und alle Geschwindigkeitswerte entsprechend tiefer machen!
    Dadurch wird die fehlerhafte Entfernung nur geringer, aber es löst nicht das Problem.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • mach es so wie dave, nur dass du dann beim drawen nicht an x und y zeichnest sondern gleich an obj_spieler.x usw.. das hat bei mir das problem gelöst:

    GML-Quellcode

    1. x = spieler.x;
    2. y = spieler.y;
    3. draw_sprite(sprite_index,image_index,spieler.x,spieler.y);

    das x=.. y=.. ist dann eigentlich nur mehr nützlich, wenn du collisionen oder sonstiges der waffe brauchst..

    © 2008 by Teamgrill Productions
  • So, danke für eure Antworten. Die Lösung von dave funktioniert jetzt am besten. Die Idee den Roomspeed zu erhöhen ist mir auch gekommen, aber die ganzen Werte dann zu ändern ist nicht so das Wahre. Schaun wir mal ob ich die Waffe jetzt problemlos rotieren lassen kann ^^