Kollisions Linien Problem

  • Kollisions Linien Problem

    Ich habe ein Bullet Objekt, dass beim Zusammenprall mit dem objekt obj_zerstoerbar_platzgeber (=parent, und teilweise sehr klein) sich selbst und das andere zerstören soll. Da die Bullet eine Geschwindigkeit zw. 8 und 10 hat und das andere objekt nicht oft größer als 4*4 ist, hab ich das mit einer kollisions Linie probiert. Aber aus irgendeinem Grund funkt das nicht. (Anmerkung: Irgenwie funkt bei mir diese Kollisionslinie nie richtig)
    Achja die Variable ii bringt immer 0 oder -4 (also nichts) zurück, weshalb ja auch nichts pasiert.
    Dieser Code steht im step event von dem bullet obj:

    GML-Quellcode

    1. ii=collision_line(x,y,lengthdir_x(speed,image_angle)+x,lengthdir_y(speed,image_angle)+y,obj_zerstoerbar_platzgeber,false,true)
    2. if ii>0
    3. {
    4. move_contact_solid(image_angle,speed);
    5. with (ii){instance_destroy()}; instance_destroy()
    6. }



    Vielleicht findet ja jemand den fehler
    ps: image_angle und direction ist im meinen fall das gleiche, hab nur rumprobiert.

    mfg trompadon
    PULSE

    Zweispieler [||||||||||]
    Einspieler [||||||||||]

    [Die Entgrater ist auf Eis gelegt]
  • Ich nehme, an das Problem liegt daran, dass der Schuss so schnell ist, dass er durch das andere objekt durchgeht. da gibts auch eine einfachere lösung: halbiere den speed überall und gib den room_speed auf 60. Dann kannst du die normale Kollisionsabfrage nehmen.

    © 2008 by Teamgrill Productions
  • Der room_speed=50 und da die Objekte immer sehr klein sind (sind zerstörbar), werden sie selten zusammenprallen. Die Engine die du mir gelinkt hast ist zu lahm, in verbindung mit meiner "Blut engine" sacken die fps sehr weit runter, da der test vorgang der jeden step bei der engine ausgeführt wird sehr ineffizient ist (schätz ich mal).
    anmerkung: eigentlich ist es in diesem fall völlig bahnhof ob die bullet das andere objekt durchdringt, da sie ja eigentlich den gesamten weg=>speed den sie während des nächsten steps macht abfragt, also muss der fehler wo anders liegen...

    EDIT: Verdammt, hab mich beim Objekt verschrieben (wie ich das hasse), das was ich geschrieben habe funkt...
    Kann geclosed werden
    PULSE

    Zweispieler [||||||||||]
    Einspieler [||||||||||]

    [Die Entgrater ist auf Eis gelegt]

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