Problem bei der Erstellung des Explosionsobjekts

  • GM 8

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

  • Problem bei der Erstellung des Explosionsobjekts

    Hi ,...

    Ich bräuchte mal einen TIp ,..ich weiß grad nicht weiter.
    Beispiel :
    Ich habe einen Gegner" X" der bewegt sich im Raum hin und her. Nun schieße ich auf diesen Gegner. Die Schüsse erstellen auf ( other.x , other.y ) ein Objekt Explosion.
    nun die Frage:
    Wie bekomme ich das hin das die , doch sehr umfangreiche Explosion ( 60 frames ) auch an der Trefferstelle mit den Gegner so zusagen " mitgeht " . Also momentan sieht es so aus das die Schüsse halt am sich bewegenden Gegner einschlagen und dort das Obj_ exp erzeugen. Der Gegner bewegt sich aber weiter und die Explosion findet nur beim Einschlag am Gegner statt. Wäre schön wenn die Explosion mit dem Gegner mitgeht an der Einschlagstelle des Schusses.

    LG Neogeo
  • Wenn ich das jetzt richtig verstanden habe, möchtest du das die Explosion nicht an der Aufschlagstelle stehen bleibt, sondern dem andern Objekt folgt.

    Dann sag dem explosionsobjekt, im Step Event, doch einfach, dass X & Y den gleichen Wert wie das andere Objekt hat.

    ich weiss jetzt nicht ob das funktioniert, ich habe das jetzt nicht ausprobiert, oder besser, ich weiss nicht ob das mit other funktioniert.

    Step:

    GML-Quellcode

    1. if place_meeting(x,y,other) {
    2. x = other.x
    3. y = other.y
    4. }


    - LG Nils
  • Ja, so meinte ich es. Schuss trifft Gegner an beliebiger Stelle---> an Aufschlagstelle wird OBJ_ Exp erstellt ( 60 Frames) -----> diese Explosion sollte gerne an besagter Aufschlagstelle dem Objekt( Gegner) folgen.
    Leider klappt dein Code von oben nicht. Die Explosion bleibt nun an Ort und Stelle ( Aufschlag des Schusses ) stehn. Geht aber leider nicht mit dem Gegner mit.
  • hmm, jetzt hab ich schon ein paar mal hin-und her probiert.
    Mit dem Ersetzen des Names , erscheint jetzt die Explosion genau in der Mitte des Gegner. Bleibt aber am Gegner !!! Weil wahrscheinlich dort der " Centerpunkt " gesetzt wurde. Hab den Centerpunkt mal auf 0 , 0 gesetzt . klappte aber auch nicht.
  • Oh , man .Erstmal vorab,.. danke für deine Ausdauer. Hier bei diesem Problemchen^^ Schade, ist!!... geht wieder nicht. Der Code läßt das Explosionsobjekt wieder in der Mitte des Gegner erscheinen. Nicht dort wo der Schuss aufprallt.
    Geht wahrscheinlich , bei großflächigen Objekten nicht so wie ich das gerne hätte.
  • ja,klar. Bin aber heute nicht mehr an meinem Rechner. Morgen denn....
    Vielen Dank, schon mal vorab...für deine Mühe

    THE Code:
    Obj_explosion
    Create

    GML-Quellcode

    1. sprite_index=spr_Exp_1;
    2. image_angle=random(360);
    3. image_speed=0.8;

    step

    GML-Quellcode

    1. if image_index>image_number-1
    2. {
    3. image_speed=0;
    4. instance_destroy();
    5. }
    6. if place_meeting(x,y,obj_torso)
    7. x = obj_torso.x
    8. y = obj_torso.y


    Draw

    GML-Quellcode

    1. draw_set_blend_mode(bm_add);
    2. draw_sprite_ext(sprite_index,image_index,x,y,1,1,image_angle,c_white,1);
    3. draw_set_blend_mode(bm_normal);


    Obj_ Gegner ( Torso)
    Create

    GML-Quellcode

    1. hp = 1000 + (global.hitpointstorso);
    2. timer = 30
    3. rotation = 0
    4. direction=150
    5. x=obj_gegner.x-100*sin(degtorad(direction))
    6. y=obj_gegner.y-100*cos(degtorad(direction))


    Step

    GML-Quellcode

    1. direction+=0.1
    2. rotation+=global.rotation
    3. x=obj_gegner.x-0*sin(degtorad(direction))
    4. y=obj_gegner.y-0*cos(degtorad(direction))
    5. if direction>360
    6. {
    7. direction=direction-360
    8. }
    9. if rotation=0
    10. {
    11. rotation=360
    12. }
    Alles anzeigen


    Collision mit Schuss ( Missle )

    GML-Quellcode

    1. global.dmgtakenm = irandom_range(10,14);
    2. hp -= global.dmgtakenm
    3. instance_create(other.x+20, other.y+50, obj_damage_text)
    4. instance_create(other.x, other.y, obj_explosion)

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

  • Fehler gefunden:




    Collision mit Schuss ( Missle )

    GML-Quellcode

    1. global.dmgtakenm = irandom_range(10,14);
    2. hp -= global.dmgtakenm
    3. instance_create(other.x+20, other.y+50, obj_damage_text)
    4. instance_create(other.x, other.y, obj_explosion)



    Du lässt das Objekt auch schon in der Mitte erstellen, dass ist der fehler...

    lass das other beim erstellen der Explosion einfach weg.

    GML-Quellcode

    1. instance_create(x,y, obj_explosion)


    und benutz dann wieder den Code:

    GML-Quellcode

    1. if place_meeting(x,y,GEGNER)
    2. direction = GEGNER.direction
    3. speed = GEGNER.speed
    4. }