Problem mit der Position beim erstellen von Instanzen

  • GM 8

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

  • Problem mit der Position beim erstellen von Instanzen

    Hi,...
    Ich hab flogendes Problem.
    Ich lasse ein Objekt erstellen,.... das Sprite dieses Objektes heißt " spr_obj" .
    image_angle des Objekts ist im step event auf ein anderes objekt gerichtet.( auf obj_gegner)
    Nun lasse ich im draw event des Objektes auf seiner Position , ein anderes Sprite " drawen".

    draw_sprite_ext(spr_shot,image_index,x,y,1,1,point_direction(x,y,obj_myshipparent.x,obj_myshipparent.y),c_white,1);
    Das gedrawte Sprite auf den Objekt richtet sich nach der Position des Spielers.

    Nun mein Problem,...
    Ich würde gerne , da es sich bei dem " gedrawten Sprite " um eine Kanone handelt ,... Kanonenkugeln erstellen und zwar am Ende des Kanonenrohres. Problem bei der Sache ist ja , das ich nicht von Sprite_Kanone.x , Sprite_Kanone.y die Kugel erstellen kann. Objekt erstellung von losen Sprite geht ja nicht.
    Hat da jemand ne Lösung wie ich das hinbekommen könnte.
  • Jop,

    der schmutzige Weg (bitte nicht benutzen):
    du erstellst das Kanonenkugel sprite so, das dessen origin soweit von der eigtl Kugel entfernt ist wie das Kanonenrohr
    das kann allerdings müsahme Problme bei Kollisionen hervorrufen weil du überall ausser bei der Erstellung der Kugel diesen Offset einberechnen musst.

    der saubere Weg:
    du benutzt die lengthdir funktionen

    GML-Quellcode

    1. xx = x+lengthdir_x(direction,kanonenrohrlänge);
    2. yy = y+lengthdir_y(direction,kanonenrohrlänge);
    3. //instance_create(xx,yy...)

    damit entstehen die Kugeln entlang eines Kreises mit Radius kanonenrohrlänge(zB 20px)

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • hi,.. ich habs gleich mal ausprobiert.
    Ich glaube die länge muß als erstes rein.
    Also
    gh =point_direction(x,y,obj_myshipparent.x,obj_myshipparent.y)


    xx = x+lengthdir_x(10,gh);
    yy = y+lengthdir_y(10,gh);


    Instance_create(xx,yy,obj_Kugel)


    10 pixel ist die Kanone lang.

    Leider werden hier die Kugeln weit vor der Kanonensprite gesetzt.
    Als locker 200 pixel davor. Und wenn der spieler sich besewegt auch.
  • dreh die parameter um.
    (gh,10)


    Sorry, nicht nachgedacht: Totaller Blödsinn ;) Kommt davon, wenn man mit Dem Handy schreibt.
    In welcher instanz führst du den code aus? könntest du ein bsp hochladen?
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.

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

  • Ah sry, länge muss natürlich als erstes rein und mitunter musst du mit x+length... und y-length dir rumprobieren

    Das hat man davon wenn man seit 2 Wochen nicht mehr zum programmieren gekommen ist :(

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Benutzer online 1

    1 Besucher