diff --git a/Battle Pong/GameSettings.gd b/Battle Pong/GameSettings.gd index 874eb085eb3c900702c7b50e084e029b7ff29073..a3e92d4cc6ade797867dcc1fec984402955d07db 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 032dd1d11ca327bf566891595720be88bc5901c5..43e797548303d62fcb1520e0c74fc0dcacb69f4f 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 55a9a1631cd44e176678813f54df2b8c288fbcd1..1684f90fc939ea2a276a80a92abd2534c0fa8794 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 d44016d220fa9325b963963a46e68c62aae7ae6a..15e891560a79f9d48f6bbd6c76835d7be67f975b 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.