From b844b48ad7f54740b898b55822c28fe6784e9afc Mon Sep 17 00:00:00 2001 From: Frederic Aust <frederic.aust@hs-bochum.de> Date: Sat, 6 Mar 2021 22:21:28 +0100 Subject: [PATCH] =?UTF-8?q?Local=202=20Player=20Modus=20implementiert,=20b?= =?UTF-8?q?ei=20dem=20zwei=20Menschen=20lokal=20an=20einem=20Computer=20ge?= =?UTF-8?q?geneinander=20spielen=20k=C3=B6nnen.=20Damit=20der=20Spielfluss?= =?UTF-8?q?=20m=C3=B6glichst=20fluessig=20ist=20wird=20eine=20PLaytime=20p?= =?UTF-8?q?er=20Step=20von=200.01=20empfohlen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Battle Pong/GameSettings.gd | 1 + Battle Pong/Main.gd | 44 ++++++++++++++++++++++++------------- Battle Pong/Main.tscn | 4 ++++ Battle Pong/MainMenu.gd | 4 ++++ 4 files changed, 38 insertions(+), 15 deletions(-) diff --git a/Battle Pong/GameSettings.gd b/Battle Pong/GameSettings.gd index 874eb08..a3e92d4 100644 --- a/Battle Pong/GameSettings.gd +++ b/Battle Pong/GameSettings.gd @@ -3,6 +3,7 @@ extends Node export var rendering_enabled = false export var learn_with_images = true export var trainings_mode_enabled = false +export var local_two_player = false # Constant values !!!! Keep always up to date !!! var display_window_width = 1024 diff --git a/Battle Pong/Main.gd b/Battle Pong/Main.gd index 032dd1d..43e7975 100644 --- a/Battle Pong/Main.gd +++ b/Battle Pong/Main.gd @@ -51,21 +51,26 @@ func _ready(): $Player1Score.hide() $Player2Score.hide() - # Connect base signals to get notified of new client connections, - # disconnections, and disconnect requests. - _server.connect("client_connected", self, "_connected") - _server.connect("client_disconnected", self, "_disconnected") - _server.connect("client_close_request", self, "_close_request") - # This signal is emitted when not using the Multiplayer API every time a - # full packet is received. - # Alternatively, you could check get_peer(PEER_ID).get_available_packets() - # in a loop for each connected peer. - _server.connect("data_received", self, "_on_data") - # Start listening on the given port. - var server_err = _server.listen(port) - if server_err != OK: - print("Unable to start server") - set_process(false) + if( $"/root/GameSettings".local_two_player): + $LocalTwoPlayerTimer.wait_time = $"/root/GameSettings".game_playtime_per_step + $LocalTwoPlayerTimer.start() + + else: + # Connect base signals to get notified of new client connections, + # disconnections, and disconnect requests. + _server.connect("client_connected", self, "_connected") + _server.connect("client_disconnected", self, "_disconnected") + _server.connect("client_close_request", self, "_close_request") + # This signal is emitted when not using the Multiplayer API every time a + # full packet is received. + # Alternatively, you could check get_peer(PEER_ID).get_available_packets() + # in a loop for each connected peer. + _server.connect("data_received", self, "_on_data") + # Start listening on the given port. + var server_err = _server.listen(port) + if server_err != OK: + print("Unable to start server") + set_process(false) set_ball() $PlayerOne.start($StartPositionPlayerOne.position) @@ -384,3 +389,12 @@ func unpause(): ball.set_pause(false) $PlayerOne.set_pause(false) $PlayerTwo.set_pause(false) + + +func _on_LocalTwoPlayerTimer_timeout(): + unpause() + $PlayerOne.run(game_playtime_per_step) + $PlayerTwo.run(game_playtime_per_step) + ball.run(game_playtime_per_step) + timeout() + pass # Replace with function body. diff --git a/Battle Pong/Main.tscn b/Battle Pong/Main.tscn index 55a9a16..1684f90 100644 --- a/Battle Pong/Main.tscn +++ b/Battle Pong/Main.tscn @@ -82,5 +82,9 @@ __meta__ = { [node name="WallBottom" parent="." instance=ExtResource( 3 )] position = Vector2( 0, 600 ) + +[node name="LocalTwoPlayerTimer" type="Timer" parent="."] +wait_time = 0.01 [connection signal="hit" from="PlayerTwo" to="." method="_on_PlayerTwo_hit"] [connection signal="hit" from="PlayerOne" to="." method="_on_PlayerOne_hit"] +[connection signal="timeout" from="LocalTwoPlayerTimer" to="." method="_on_LocalTwoPlayerTimer_timeout"] diff --git a/Battle Pong/MainMenu.gd b/Battle Pong/MainMenu.gd index d44016d..15e8915 100644 --- a/Battle Pong/MainMenu.gd +++ b/Battle Pong/MainMenu.gd @@ -12,6 +12,10 @@ func _ready(): func _on_but_local_two_player_pressed(): + $"/root/GameSettings".rendering_enabled = true + $"/root/GameSettings".learn_with_images = false + $"/root/GameSettings".local_two_player = true; + get_tree().change_scene("res://Main.tscn") pass # Replace with function body. -- GitLab