hilfe sprite bewegen

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

  • hilfe sprite bewegen

    hy wieder einmal eine frage von mir an euch


    also ich will wenn der player auf einen gegner springt und ihn somit tötet das dann ein coin erscheint an der stelle .
    und das der coin dann nach ganz oben am linken rand zur anzeige fliegt wo steht wieviele coins man schon hat.


    das mit dem player töten und dann das objekt zu erschaffen an der stelle versteh ich von alleine.

    mein problem ist nur wie ich es machen kann das es am oberen linken rand hin fliegt.egal ob ich grad springe oder renne oder nichts tue.es soll immer dort hin fliegen.


    wie kann man das machen??



    danke euch allen für eure hilfe.... besonders @Aku_Ryou @Husi012 und all den anderen die ich grad nicht aufgezählt habe .aber bitte nicht bös sein weil ich euch nicht erwähne...ihr seid alle toll :troll:
  • Das machst du in dein create event von dem coin das erstellt wird...
    move_towards_point( obenlinkscoin.x,obenlinkscoin.y, 5);
    Und dann im step event if place_meeting(obenlinkscoin.x,obenlinkscoin.y){
    Coin +=1:
    Instance_destroy();
    }
    Wir stehen zusammen und wir fallen zusammen
  • danke toll..

    aber wie sage ich das ich gleich 4 mal die instance erstellen will???




    EDIT:

    also ich hab es jetzt so gemacht wie ihr gesagt habt:

    Obj_Coin
    Create Event

    GML-Quellcode

    1. move_towards_point(view_xview+10,view_yview+120,10);



    Obj_Coin
    Step Event

    GML-Quellcode

    1. if place_meeting(view_xview+10,view_yview+120,obj_steuer) /// obj_steuer ist das objekt das die anzeige drawt für das geld usw..
    2. {
    3. global.xp=+15;
    4. audio_play_sound(snd_cashsound,15,false);
    5. instance_destroy();
    6. }




    Obj_Enemy
    Collision Event mit Player

    GML-Quellcode

    1. instance_create(x,y,obj_kugelxp)random_range(-10,10)///random_range dafür das es immer wo anders ersellt wird...aber ich will ja noch das er gleich 4 davon macht..





    aber es funktioniert nicht...also schon aber nicht richtig...es fliegt zwar bis rauf aber
    1: es fliegt noch viel weiter raus.....
    2: wenn ich mich währenddessen bewege fliegt es ganz woanders hin..und es sollte trotzdem zu diesen punkt fliegen.


    was mach ich falsch??? und wie mach ich das gleich mehrer davon erstellt werden??

    das problem ist das move_towards_point nur einmal einen punkt setzt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von acidrain833 ()

  • Hallo ich bin zwar schon sehr aus der Übung da ich lange nicht mit dem Gamemaker gearbeitet habe und kann es auch nicht testen wei ich gerade vom handy schreibe aber versuche mal den code vom CreateEvent in das StepEvent zu schreiben.

    Edit:
    Wenn du mehr davon erstellen willst würde ich eine Variable hochzählen lassen und sagen wir mal alle 5 steps das Objekt erstellen lassen bis wie in deinem Fall 15 Objekte erstellt wurden, dan die Variable wieder auf 0 stellen. Das sollte ungefähr so aussehen wie die Bananen in Donkey Kong Country vom snes.

    Lg
    lg Vectorhead

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Vectorhead ()

  • so wie vectorhead sagt kannst die variable hochzählen... am leichtesten geht das mit einer repeat schleife... einfach da wo deine münze erstellt wird
    repeat(4){
    instance_create(x,y,coin);
    }

    oder du kannst es mit einer for schleife machen
    for(var i=0;i<1;i++){
    instance_create(x,y,coin);
    }
    Wir stehen zusammen und wir fallen zusammen
  • ich weiß nicht ob ihr es richtig verstanden habt ...

    also ich iwll das wenn der player auf den enemy springt der enemy verschwindet und dann 4 x gleichzeitig der coin erstellt wird

    alles mit dem player und enemy kann ich selbst...und auch den coin erstellen kann ich jetzt ja auch mit

    GML-Quellcode

    1. instance_create(x,y,obj_coin)random_range(-10,10)


    aber muss ich da jetzt 4 mal den selben code von oben schreiben damit es funkt??
    und ich hab für den coin mehre images...und ich würde gern für jede der 4 instancen(falls der code 4 mal geschrieben werden muss) ein eigenes image davon nehmen...
    mach ich das mit image_index oder?? muss ich das einfach dazu hängen??? und das mit dem random_range(-10,10) funktioniert nicht ganz.
    ich will das jedes von den 4 instanzen an einer anderen stelle erscheint...aber alle 4 aufeinmal


    @Vectorhead danke das mit dem code ins step event war richtig...es fliegt jetzt genau dort hin thx...

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von acidrain833 ()

  • also im Code von dir macht random_range überhaupt nichts. Diese Funktion gibt einen Zufälligen Wert zurück.
    Ich sag jetzt mal, das ding Verwandelt sich in einen Wert.

    am besten benutzt du eine For-Schleife. Die Funktionsweise hab ich in meinem Tutorial (in der Signatur verlinkt) erklärt.

    GML-Quellcode

    1. ​for (i = 0; i < 4; i ++)

    Diese zählt für uns von 0 bis 3. Der Code darunter wird dann so oft ausgeführt.
    In diesem Fall das Objekt erstellen, es an andere Positionen stellen und andere images geben.
    Die x Koordinate legst du schon bei instance_create(x,y,obj) fest. Dort kannst du dann x+random_range(-10,10) machen.
    Um dann aber genau gezielt das image vom grad erstelltem Objekt zu ändern, brauchen wir ja die Id vom Objekt. Die gibt uns instance_create. Diese "verwandelt" sich in die Id vom Objekt.
    Wir nehmen eine Variable und speichern darin die Id ab und greifen dann beim Objekt mit dieser Id auf die Variable image_index zu.
    Um auf Variablen anderer Objekte zuzugreifen können wir das so machen: object.variable = wert;
    Ist also kein Hexenwerk.
    Der Code komplett:

    GML-Quellcode

    1. var obj; //Mache die variable obj Local, da wir diese nicht in anderen Events brauchen.
    2. for (i = 0; i < 4; i ++){ //Lasse den darauffolgenden Code 4 Mal ausführen und die Variable i dabei von 0 bis 3 mitzählen.
    3. obj = instance_create(x+random_range(-10,10), y, obj_coin); //Erstelle das Objekt obj_coin, auf der x Koordinate etwas zufällig. Dann auf deiner Y Koordinate. Speicher dann die Id von dem grad erstelltem Objekt in die Lokale Variable obj.
    4. obj.image_index = i; //Greife auf image_index vom Objekt mit der ID obj und gebe ihr den Wert von i. i zählt ja bei jedem ausführen einmal hoch, sodass jedes Image einmal benutzt wird.
    5. }


    Ich hoffe ich konnte dir helfen :)
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • acidrain833 schrieb:


    2: wenn ich mich währenddessen bewege fliegt es ganz woanders hin..und es sollte trotzdem zu diesen punkt fliegen.


    was mach ich falsch??? und wie mach ich das gleich mehrer davon erstellt werden??

    das problem ist das move_towards_point nur einmal einen punkt setzt



    ich bin mir jetzt nicht ganz sicher aber von der theorie her sollte es schon klappen, mache deine move_toward_point funktion in step event somit wird der code jedes frame abgerufen und sollte somit jedes mal deinen punkt aktuallisieren... falls ich mich irre bekehrt mich bitte :D

    Husi012 schrieb:


    Der Code komplett:

    GML-Quellcode

    1. var obj; //Mache die variable obj Local, da wir diese nicht in anderen Events brauchen.
    2. for (i = 0; i < 4; i ++){ //Lasse den darauffolgenden Code 4 Mal ausführen und die Variable i dabei von 0 bis 3 mitzählen.
    3. obj = instance_create(x+random_range(-10,10), y, obj_coin); //Erstelle das Objekt obj_coin, auf der x Koordinate etwas zufällig. Dann auf deiner Y Koordinate. Speicher dann die Id von dem grad erstelltem Objekt in die Lokale Variable obj.
    4. obj.image_index = i; //Greife auf image_index vom Objekt mit der ID obj und gebe ihr den Wert von i. i zählt ja bei jedem ausführen einmal hoch, sodass jedes Image einmal benutzt wird.}


    husi müsste das nicht obj.image_index =i-1 sein ? image_index fängt ja ab 0 an... oder hab ich jetzt grad einen denkfehler ?
    Wir stehen zusammen und wir fallen zusammen

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von Eddysoulo ()

  • danke @Husi012

    aber irgendwie nimmt er das mit dem image index nicht an...es ist immer nur das selbe image.....ich hab ein sprite mit 4 images und jedes davon hat ne andere farbe aber es ist immer nur die erste zu sehn


    wahrscheinlich passt das event nicht was ich hab.


    ich habs im obj_enemy im collision event mit player
  • Setzt du denn auch image_speed = 1?
    Oh irgendwie das Problem verpeilt....
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe

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

  • @Husi012

    hy

    also hab bemerkt das es schon funktioniert...es ändert das image_index...jedoch ist das nicht das was ich wollte......

    also jetzt ist es so das die coins erstellt werden und dann die image_index immer geändert werden...aber ich will
    das jede einzelne instanz ein image_index hat...und dann auch bei diesem bleibt.




    ich versteh das mit der for schleife schon......das hauptproblem bei mir ist nur das ich oft nicht weiß wie oder bei was ich es
    anwenden kann.das ist mein problem

    danke für deine tolle hilfe immer....werd dich bei den credits meines spiels erwähnen thx
  • danke @Husi012

    es funktioniert...eins noch...gibt es bei gamemaker eine möglichkeit das man wärend das spiel rennt man codes ändern kann das somit gleich zu sehn ist was sich ändert.


    weil es ist sehr mühsam ständig einen kleinen code zu ändern dann das spiel zu starten und dann wieder und wieder das selbe bis es endlich passt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von acidrain833 ()

  • Liegt dran. Wenn du nur etwas "perfektionieren" willst kannst du ja eine Variable nehmen und die dann über eine Eingabe ändern.
    Code ändern geht eher.. nicht
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe