Schuss

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

  • Hi leute,

    ich komm gleich zur sache:

    wie kann ich bei einem panzer das KanonenRohr mit der Maus drehen (das rohr soll quasi immer richtung maus zeigen)

    Bitte schnell antworten

    Gardon

    I am who I am. And who I wanna be. Avril Lavigne
  • Hi Gardon
    also du brauchst einen "Panzerkörper" und das Kanonenrohr
    Beim Kanonenrohr schreibst du ins STEP EVENT

    GML-Quellcode

    1. x=111.x;
    2. y=111.y;
    3. image_angle=point_direction(x,y,mouse_x,mouse_y)


    wobei 111 der Name deines Panzerkörpers ist

    mit x=111.x/y=111.y springt das Rohr immer zum Panzerkörper ( immer zum Origin )
    und mit "image_angle=point_direction()" dreht sich das Rohr immer zur Maus (vom Origin aus)
    Keyboard not found! Press F1! :D
  • "image_angle" gibt's doch in der Lite garnicht, oder? o.o

    Da müsste man das kanonenrohrsprite im Spriteeditor rotieren lassen und dann sprite_index auf point_direction(x,y,mouse_x,mouse_y) / *den richtigen faktor* stellen. Kann da konkret nicht helfen, weil ich nicht weiß wieviele Sprites man machen sollte und durch wieviel man teilen müsste - passende Tutorials finde ich spontan auch nicht. o_o
  • F4LL0UT hat völlig recht. Den befehl image_angle kannst du in der Lite Version nicht benutzen. Du must unter sprites eine Animation erstellen. Und zwar um 360 grad. Ich hab das zwar noch nie gemacht, aber 360 Bilder reichen auf jeden fall. Je nach dem kannst du natürlich auch weniger machen, aber mit 360 ist es am einfachsten.

    Dann musst du nur noch folgendes machen:

    1. Im Create event den Sprite neu zuordnen, sodass er sich nicht von selbst dreht.

    GML-Quellcode

    1. sprite_index = spr_kanonenrohr; //Ersetze spr_kanonenrohr durch den namen des sprites
    2. image_index = round(point_direction(x, y, mouse_x, mouse_y));
    3. image_speed = 0;


    2. Im Step event den sprite drehen, also:

    GML-Quellcode

    1. image_index = round(point_direction(x, y, mouse_x, mouse_y));


    Und falls es nicht deutlich genug aus den posts hervorgegangen ist: Das Kanonenrohr muss ein extra sprite sein und darf nicht mit auf dem Panzer sein.

    €dit: Hab den round befehl in meinem quellcode vergessen gehabt
    Dies ist eine kreative Signatur: Stell dir genau JETZT etwas lustigs vor, das hier stehen könnte...

    Meine Homepage
    1. Wie soll ich die 360 bilder machen??? (wol kaum alle zeichnen)
    2. Biite normal schreiben und nicht in Programm-codes,wei ich damit leier nichts anfangen kann. ;( ^^ :!:
    3. Danke im foraus
    4. Sorry das ich euch so auf den Geißt gehe
    5. Ich glaube ich schreib zu viel,also nochals:sorry leute
    I am who I am. And who I wanna be. Avril Lavigne
  • zu 1.: Im GM Sprite Editor gibt es einen befehl dafür. Allerdings ist das nicht besonders intelligent,
    weil ein Sprite mit 360 Unterbildern nicht gerade speicherschonend ist. Ich würde da eher eine
    geringere Anzahl nehmen, z.B. in 45° Schritten gedrehte Bilder.
    Um das umzusetzen, machst du einen Sprite mit in 45° Schritten gedrehten Unterbildern
    (Sprite Editor=>Edit=>Animation=>RotationSequence=>Clockwise=> und bei Degrees 45 eingeben.
    Dann wird eine Sequenz von Unterbildern erstellt.

    Die aktuelle Ausrichtung deiner Kanone wird in der Variablen "direction" abgespeichert (nehme ich jetzt
    einfach mal an, dass du die vorgefertigte nimmst).
    Um daraus das aktuelle Bild zu berechnen, nimmst du das Symbol und trägst in die Zeile Variable
    "Image_index" ein, damit wird das Unterbild gesetzt. Bei "Value" trägst du ein "floor(direction/45)*45".
    Damit dürfte er eigentlich das gewünschte Unterbild wählen. Wenn dir die 45° Drehung nicht gefällt, ersetze
    einfach überall den 45er Wert durch deinen Wert.
    Gruß, Spellmaker

    Edit: Um die Kanone mit der Maus zu drehen, ziehst du in das Step Event nochmal das Symbol von oben,
    trägst als Variable direction und als value "point_direction(x,y,mouse_x,mouse_y);" ein. Dahinter machst
    du dann das Symbol von oben.
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Spellmaker schrieb:

    zu 1.: Im GM Sprite Editor gibt es einen befehl dafür. Allerdings ist das nicht besonders intelligent,
    weil ein Sprite mit 360 Unterbildern nicht gerade speicherschonend ist. Ich würde da eher eine
    geringere Anzahl nehmen, z.B. in 45° Schritten gedrehte Bilder.
    Um das umzusetzen, machst du einen Sprite mit in 45° Schritten gedrehten Unterbildern
    (Sprite Editor=>Edit=>Animation=>RotationSequence=>Clockwise=> und bei Degrees 45 eingeben.
    Dann wird eine Sequenz von Unterbildern erstellt.

    Die aktuelle Ausrichtung deiner Kanone wird in der Variablen "direction" abgespeichert (nehme ich jetzt
    einfach mal an, dass du die vorgefertigte nimmst).
    Um daraus das aktuelle Bild zu berechnen, nimmst du das Symbol und trägst in die Zeile Variable
    "Image_index" ein, damit wird das Unterbild gesetzt. Bei "Value" trägst du ein "floor(direction/45)*45".
    Damit dürfte er eigentlich das gewünschte Unterbild wählen. Wenn dir die 45° Drehung nicht gefällt, ersetze
    einfach überall den 45er Wert durch deinen Wert.
    Gruß, Spellmaker

    Edit: Um die Kanone mit der Maus zu drehen, ziehst du in das Step Event nochmal das Symbol von oben,
    trägst als Variable direction und als value "point_direction(x,y,mouse_x,mouse_y);" ein. Dahinter machst
    du dann das Symbol von oben.





    1. Wenn ich es versuche ersceint das hier:

    FATAL ERROR in
    action number 1
    of Step Event
    for object object0:

    COMPILATION ERROR in code action
    Error in code at line 1:
    direction = point_direction(x,y,mouse_x,mouse_y);"

    at position 51: Variable name expected.



    Und was meinst du mit vorgefehrtigt?
    I am who I am. And who I wanna be. Avril Lavigne
  • direction = point_direction(x,y,mouse_x,mouse_y);"

    Wahrscheinlich hat bei dir copy & paste nicht funktioniert, das " gehört weg. Du solltest die Fehlercodes mal genauer durchgehen, so ein Fehler entdeckt selbst ein Anfänger in 20 Sekunden.



  • Benutzer online 2

    2 Besucher