feat: 开始实现多人游戏

This commit is contained in:
2026-02-14 14:17:34 +08:00
parent b811bced09
commit 6cc1e03e1b
3 changed files with 20 additions and 7 deletions
+2
View File
@@ -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 的函数外,任何函数都不应该以下划线(`_`)开头。
+18 -6
View File
@@ -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
multiplayer.multiplayer_peer = peer
func _on_peer_connected(id: int):
pass
-1
View File
@@ -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: