bullet fliegt durch target (Kollision)

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

  • bullet fliegt durch target (Kollision)

    helloo!

    Folgendes Prob: Meine "Kugeln" fliegen ab und zu (jedoch viel zu häufig!!) einfach durch die Dinge hindurch, mit denen sie eigentlich kollidieren sollten :vogel:!

    ich verwende für die bullets ein "8x8" großes sprite, natürlich invisible (aber ob visible an oder aus ist macht ja keinen unterschied). Nun habe ich schon ausprobiert "precise" an und auszuschalten, aber das scheint auch keinen Unterschied zu machen, die fliegen weiter durch.
    Beim Playerbullet hab ich jetzt mal die Geschwindigkeit von 50 auf 40 runter und jetzt kommt es seltener vor, dass die Kugel durch Objekte hindurchfliegt, aber ich kann ja nicht alle bullets scheisslangsam machen :bg:.

    wenn ich zb in einem bestimmten Winkel an die Decke schiese, fliegt die Kugel durch, und die Gegnerbullets, die mit 50 fliegen, fliegen fast jedes 2. mal durch mich (also die Spielerfigur) hindurch.
    Hängt das mit dem Winkel zusammen, oder liegts am Sprite(an der Form, der Größe!?) oder woran liegt das?!Hat da jmd von euch Erfahrung mit?

    danke!

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

  • Da sind deine Kugeln wohl einfach zu schnell und überspringen kleine Hindernisse einfach.
    Lösung: Mach die Kugeln langsamer, dafür den room_speed höher.
    Einige meiner Spiele:
  • hm...gute idee :D
    nur leider hab ich schon einiges an dem Game gebastelt und es wär ne Heidenarbeit die ganzen Speeds, Gegner usw. jetzt nochmal an nen neuen Roomspeed anzupassen ... :/!

    Man muss doch auch die Kollisionsabfrage irgendwie so beeinflussen können, dass es funktioniert!?

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

  • Bei einem speed von 40(oder 50) ist es logisch, dass dein Schuss manchmal an Instanzen vorbeifliegt. Du kannst dann einfach folgendes Script benutzen ob die Kollision zu kontrollieren:

    GML-Quellcode

    1. if(collision_line(x,y,xprevious,yprevious,OBJEKT,true,true))
    2. {
    3. //Code ausführen
    4. }


    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • hm...klingt zwar logish, aber funktioniert nicht :/
    hab jetzt mal in das Gegnerbullet-Objekt
    folgenden Code in das collision_with_obj_player-event gemacht:

    GML-Quellcode

    1. if(collision_line(xprevious,yprevious,x,y,obj_player,0,0))
    2. {
    3. // Aktionen ausführen
    4. }


    prec hatte ich zunächst auf 1, das hat aber nicht funktioniert also hab ichs mal auf 0 gestellt, was aber nix verändert hat. und notme mus ja auf false gestellt werden in diesem fall.
    Außerdem hab ich mal die Geschwindigkeit auf 40 runtergeschraubt, die Kugeln fliegen aber immernoch häufig durch :/.
    liegt es vielleicht an dem bulletsprite?!
  • Im Step Event des Schusses:

    GML-Quellcode

    1. if(collision_line(xprevious,yprevious,x,y,obj_player,1,1))
    2. {
    3. show_message("Getroffen");
    4. game_end();
    5. }

    Das muss so funktionieren. Falls nicht schick mir mal die gm6 per PN.

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Ja Leute, ich hatte da natürlich schon Code drinstehen der ausgeführt werden soll :wink:!
    aber dat will trotzdem nich. Hab jetzt im Stepevent des Gegnergeschosses

    GML-Quellcode

    1. if(collision_line(xprevious,yprevious,x,y,obj_player,1,1))
    2. {
    3. script_blood_low(x,y); //Bisschen Blut spritzen
    4. script_player_pain(30); //Den Player schreien lassen
    5. instance_destroy(); //und tschüss!
    6. }


    Aber die Geschosse fliegen weiter durch.

    edit:
    habs in den end step event, jetzt gehts :D

    thx2all

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