diff --git a/README.md b/README.md index fdd4de6..8f50dd9 100644 --- a/README.md +++ b/README.md @@ -51,3 +51,5 @@ game/ 你的开发应当遵循 Godot 引擎提供的[最佳实践](https://docs.godotengine.org/zh-cn/4.x/tutorials/best_practices/)及[GDScript 编写风格指南](https://docs.godotengine.org/zh-cn/4.x/tutorials/scripting/gdscript/gdscript_styleguide.html)。但下面提到的除外: 除 `autoload` 目录下的单例脚本使用大驼峰式命名,其余脚本均应使用小蛇形式命令。所有节点均应使用大驼峰式命名。 + +除连接了信号或 HTTPRequest、MultiplayerAPI 的函数外,任何函数都不应该以下划线(`_`)开头。 diff --git a/scripts/autoload/MultiGame.gd b/scripts/autoload/MultiGame.gd index e97a7a8..dfdc699 100644 --- a/scripts/autoload/MultiGame.gd +++ b/scripts/autoload/MultiGame.gd @@ -1,13 +1,25 @@ extends Node -# 基于 ENet 多人游戏 +var peer = ENetMultiplayerPeer.new() +var players: Array +var player_num -func create_server(player_num: int) -> void: - var peer = ENetMultiplayerPeer.new() - peer.create_server(8989, player_num) +func add_player(id: int): + if players.size() < player_num: + players.append(id) + +func create_server(playern: int) -> void: + player_num = playern + var error = peer.create_server(8989, playern) + if error != OK: + printerr(error) + return multiplayer.multiplayer_peer = peer + multiplayer.peer_connected.connect(_on_peer_connected) func create_client(ip: String) -> void: - var peer = ENetMultiplayerPeer.new() peer.create_client(ip, 8989) - multiplayer.multiplayer_peer = peer \ No newline at end of file + multiplayer.multiplayer_peer = peer + +func _on_peer_connected(id: int): + pass \ No newline at end of file diff --git a/scripts/main_menu/create_game_ui.gd b/scripts/main_menu/create_game_ui.gd index abe16d9..454b46f 100644 --- a/scripts/main_menu/create_game_ui.gd +++ b/scripts/main_menu/create_game_ui.gd @@ -1,6 +1,5 @@ extends Node2D - func _on_create_game_button_pressed() -> void: var player_num = int($CreateGameEdit.text) if 2 <= player_num and player_num <= 4: