Der Titel sagt mal wieder nicht genau worum es geht
In meinem Spieler-Objekt habe ich (per Drag&Drop) eine Kollisions-Abfrage mit einem Katana-Schwert (Globale Variable 1) mit folgendem Code:
Wenn ich also auf dem Schwert stehe und die rechte Maustaste drücke, nimmt der Spieler das Schwert auf (Änderung des Sprites) und zerstört das Objekt selbst (da wir es ja aufgenommen haben, soll es nicht mehr auf dem Boden liegen).
Das klappt soweit. Nun soll es aber nicht nur eine Waffe geben. Als Test erstellte ich einen Vorschlaghammer mit der globalen Variable 2 (0 ist übrigens unbewaffnet) und machte die gleiche Kollisionsabfrage wie mit dem Katana.
Lief auch gut, nur sollte das Schwert dann nicht einfach verschwinden, sondern weggeworfen werden und wieder irgendwo "landen". Bis zum "landen" bin ich nicht gekommen, da sich ein anderes Problem auftat. Mein Step-Code beim Spieler (der relevante Teil nehme ich an):
Alles anzeigen
Wenn ich damit zum Katana gehe und die rechte Maustaste drücke, wird das Schwert zwar aufgenommen und verschwindet vom Boden aber leider wirft der Spieler es auch gleichzeitig wieder weg. Das ist nicht in meinem Sinne, wie Ihr Euch denken könnt. Ich bin halt ein Noob und finde den Fehler/ die Lösung nicht. Hat da wer vielleicht eine Idee, die er mit mir teilt
In meinem Spieler-Objekt habe ich (per Drag&Drop) eine Kollisions-Abfrage mit einem Katana-Schwert (Globale Variable 1) mit folgendem Code:
Wenn ich also auf dem Schwert stehe und die rechte Maustaste drücke, nimmt der Spieler das Schwert auf (Änderung des Sprites) und zerstört das Objekt selbst (da wir es ja aufgenommen haben, soll es nicht mehr auf dem Boden liegen).
Das klappt soweit. Nun soll es aber nicht nur eine Waffe geben. Als Test erstellte ich einen Vorschlaghammer mit der globalen Variable 2 (0 ist übrigens unbewaffnet) und machte die gleiche Kollisionsabfrage wie mit dem Katana.
Lief auch gut, nur sollte das Schwert dann nicht einfach verschwinden, sondern weggeworfen werden und wieder irgendwo "landen". Bis zum "landen" bin ich nicht gekommen, da sich ein anderes Problem auftat. Mein Step-Code beim Spieler (der relevante Teil nehme ich an):
GML-Quellcode
- // prüfen durch eine Variable (global.weapon) welche Waffe der Spieler gerade nutzt, 1 = Katana
- if global.weapon == 1
- {
- // Wenn der Spieler sich nicht bewegt wird das Sprite Stay (Stehen) verwendet, sonst der normale Sprite mit Lauf-Animation
- if (speed==0)
- {
- sprite_index = sprKatanaStay;
- direction = point_direction(x,y,mouse_x,mouse_y)
- }
- else
- {
- sprite_index = sprKatanaWalk
- }
- // Wenn rechte Maustaste gedrückt wird, wirft der Spieler die genutzte Waffe weg
- if mouse_check_button_pressed(mb_right)
- {
- my_id = instance_create (x,y,objWeapon01) // die Waffe wird direkt beim Spieler neu erstellt
- my_id.speed = 10 // die Geschwindigkeit, mit der die Waffe geworfen wird
- my_id.direction = point_direction(x, y, mouse_x, mouse_y) // Bestimmt die Richtung, in der geworfen wird (hier: Mauszeiger)
- my_id.image_angle = my_id.direction // die Ausrichtung des Objekts, hier zeigt es in Richtung des Mauszeigers
- global.weapon = 0
- }
- }
Wenn ich damit zum Katana gehe und die rechte Maustaste drücke, wird das Schwert zwar aufgenommen und verschwindet vom Boden aber leider wirft der Spieler es auch gleichzeitig wieder weg. Das ist nicht in meinem Sinne, wie Ihr Euch denken könnt. Ich bin halt ein Noob und finde den Fehler/ die Lösung nicht. Hat da wer vielleicht eine Idee, die er mit mir teilt