Zwei grundlegende Probleme

  • Zwei grundlegende Probleme

    Hi, habe noch kaum Erfahrung und hänge an zwei grundlegenden Problemen fest, die mich an der Arbeit an meinem Spiel hindern.

    Erstes Problem:
    Wie kann ich dafür sorgen, dass ein Objekt mit einem zweiten so zusammenhängt, dass sie sich gemeinsam bewegen. Beispiele:
    Ein Panzerrumpf, dessen Turm ein eigenes Objekt ist, das aber immer auf dem Rumpf bleiben soll.
    oder
    Man steuert zum laufen die Beine, der Torso eines Menschen soll sich aber immer zusammen mit ihnen bewegen (also wie bei "ultimate chuchu" oder "comander mani").

    Zweites Problem:
    Wie bestimmt man die relative Position des Mauszeigers zu einem anderen Objekt (also dass sich der Fadenkreuzposition entsprechend der Sprite des Torsos des Helden verändert; auch ähnlich wie in "ultimate chuchu").

    Hoffe Ihr könnt mir damit helften.
  • Also das erste ließe sich folgendermaßen lösen:

    x.objekt2 = x.objekt1+bla1
    y.objekt2 = y.objekt1+bla1

    (Wobei du objekt1 und objekt2 durch die Namen der jeweiligen Objekte ersetzen musst.
    bla ist der Abstand zwischen den beiden Objekten.)

    Wenn jetzt also z.B. der Turm immer 5 pixel über dem Rumpf sein soll wäre bla1 = 0 und bla2 = -5

    Dein 2. Problem wurde hier schon recht gut erklärt:
    sprite soll zur maus zielen
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • hmmmmm
    normalerweise heisst es object1.x nicht x.object1 .........
    das wäre dann:
    torso.x = beine.x+bla1
    torso.y = beine.y+bla2

    bla1=horizontale verschiebung
    bla2=vertikale verschiebung

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Original von Kilik
    Dein 2. Problem wurde hier schon recht gut erklärt:
    sprite soll zur maus zielen


    Naja, nicht ganz. Ich will ja nicht, dass sich die Sprites einfach in die Richtung drehen, sondern, dass die Sprites ausgetauscht werden. Vielleicht kennt Ihr alle "The Ultimate Chuchu" nicht, aber man kann es sich auf der offiziellen Game Maker Seite downloaden. Dort ist es so, dass für bestimmte Winkel spezielle Sprites angefertigt wurden. Also sagen wir mal die Beine zeigen nach rechts, aber man zielt mit der Maus nach links, dann nimmt "Chuchu" eine völlig andere Position ein, als wenn sie die Beine auch nach links gerichtet hätte.

    Ein Beispiel in Gutdeutsch (oder möchtegern Programmiersprache):
    Wenn der Mauszeiger zwischen 45° und 90° Grad relativ zum Objekt einnimt, wird der Sprite "derundder" gezeigt, zwischen 90° und 135° "blabla" usw... Versteht Ihr worauf ich hinaus will?

    Heureka! Jetzt hab ich´s! Jetzt weiss ich wie ich euch FRAGEN muss! Was ich von euch einfach nur wissen will ist: Wie fragt man die Position (vor allem den Winkel) des Mauszeigers relativ zu einem Objekt ab? Das ist das einzige was ich eigentlich wissen muss!

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

  • Original von Dragoon
    hmmmmm
    normalerweise heisst es object1.x nicht x.object1 .........
    das wäre dann:
    torso.x = beine.x+bla1
    torso.y = beine.y+bla2

    bla1=horizontale verschiebung
    bla2=vertikale verschiebung

    Dragoon

    Oh stimmt.^^
    Naja, is wohl schon etwas spät.^^

    @F4LL0UT:
    Dann musst du die Richtung abfragenabfragen, (mit point_direction(x1,y1,x2,y2) ), und je nach Richtung das Sprite ändern.

    GML-Quellcode

    1. switch (angle){
    2. case < 45:
    3. case => 0:
    4. sprite_index = angle1; break;
    5. case < 90:
    6. case => 45:
    7. sprite_index = angle2; break;
    8. case < 135:
    9. case => 90:
    10. sprite_index = angle3; break;
    11. case < 135:
    12. case => 180:
    13. sprite_index = angle4; break;
    14. usw...}
    Alles anzeigen
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik

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

  • Benutzer online 1

    1 Besucher