Heyho 
Ich arbeite momentan an einem sehr kleinen lokalen Multiplayer Projekt, wo man, ähnlich wie in Worms, jeder Mitspieler einen Panzer steuert und die anderen abschießen soll. Es wird nacheinander gespielt, d.h. Panzer 2 ist erst dran, nachdem Panzer 1 geschossen hat. Die Panzer sind 4 mal das Objekt oTank, im Creation Code hat jeder Panzer eine individuelle turn_number: 0, 1, 2, oder 3. Ich habe ein Controller Objekt mit der globalen Variable global.player_turn = 0.
Für jede vom Spieler ausgeführte Aktion wird abgefragt, ob die turn_number mit global.player_turn übereinstimmt. Nachdem man geschossen hat, soll global.player_turn 1 weiter zählen und somit ist der nächste Spieler dran. Das funktioniert auch super, bis jeder Spieler einmal geschossen hat und der erste Panzer dran ist, denn auch wenn ich global.player_turn wieder auf 0 setze, schießen auf einmal alle Panzer beim Klicken. Andere Aktionen allerdings, wie das ausrichten des Kanonenrohrs funktionieren nur noch für den ersten Panzer.
Hier das Step Event des oTanks:
Alles anzeigen
global.player_turn wird nicht wirklich zurück auf 0 gesetzt, die turn_number des aktuellen Panzers wird einfach um 4 erweitert. Es ist aber dasselbe Resultat als würde man global.player_turn auf 0 zurücksetzen.
Freue mich über jede Hilfe

Ich arbeite momentan an einem sehr kleinen lokalen Multiplayer Projekt, wo man, ähnlich wie in Worms, jeder Mitspieler einen Panzer steuert und die anderen abschießen soll. Es wird nacheinander gespielt, d.h. Panzer 2 ist erst dran, nachdem Panzer 1 geschossen hat. Die Panzer sind 4 mal das Objekt oTank, im Creation Code hat jeder Panzer eine individuelle turn_number: 0, 1, 2, oder 3. Ich habe ein Controller Objekt mit der globalen Variable global.player_turn = 0.
Für jede vom Spieler ausgeführte Aktion wird abgefragt, ob die turn_number mit global.player_turn übereinstimmt. Nachdem man geschossen hat, soll global.player_turn 1 weiter zählen und somit ist der nächste Spieler dran. Das funktioniert auch super, bis jeder Spieler einmal geschossen hat und der erste Panzer dran ist, denn auch wenn ich global.player_turn wieder auf 0 setze, schießen auf einmal alle Panzer beim Klicken. Andere Aktionen allerdings, wie das ausrichten des Kanonenrohrs funktionieren nur noch für den ersten Panzer.
Hier das Step Event des oTanks:
GML-Quellcode
- key_right = keyboard_check(vk_right);
- key_left = keyboard_check(vk_left);
- key_up = keyboard_check(vk_up);
- key_down = keyboard_check(vk_down);
- mouse_click = mouse_check_button_pressed(mb_left);
- if (turn_number = global.player_turn)
- {
- // Rotate Canon
- if (key_right)
- rotation-=2;
- if (key_left)
- rotation+=2;
- rotation = clamp(rotation, 0, 180);
- // Set strength
- if (key_up)
- strength+=.15;
- if (key_down)
- strength-=.15;
- strength = clamp(strength, 0, max_strength);
- // Shoot
- if (mouse_click && !keyboard_check(vk_anykey) && other.strength > 0)
- {
- bullet = instance_create(x, y, oBullet);
- with(bullet)
- {
- direction = other.rotation;
- speed = other.strength;
- }
- turn_number += 4;
- global.player_turn++;
- }
- }
global.player_turn wird nicht wirklich zurück auf 0 gesetzt, die turn_number des aktuellen Panzers wird einfach um 4 erweitert. Es ist aber dasselbe Resultat als würde man global.player_turn auf 0 zurücksetzen.
Freue mich über jede Hilfe

Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun 
