From 6cc1e03e1b0ad80918aae750a3e5abb527370c89 Mon Sep 17 00:00:00 2001 From: Tiger Date: Sat, 14 Feb 2026 14:17:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=80=E5=A7=8B=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E5=A4=9A=E4=BA=BA=E6=B8=B8=E6=88=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ scripts/autoload/MultiGame.gd | 24 ++++++++++++++++++------ scripts/main_menu/create_game_ui.gd | 1 - 3 files changed, 20 insertions(+), 7 deletions(-) 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: