This commit is contained in:
makeyangcom
2024-03-07 09:52:31 +08:00
parent 247cd5be56
commit db5de75963
12 changed files with 3 additions and 3 deletions

View File

@@ -1,28 +0,0 @@
#*****************************************************************************
# @file client.gd
# @author MakerYang(https://www.makeryang.com)
# @statement 免费课程配套开源项目,任何形式收费均为盗版
#*****************************************************************************
extends Node
# 初始化自定义数据
var client_peer:ENetMultiplayerPeer
# 初始化数据结构
var data = {
"client_id": 0
}
# 创建客户端并返回客户端状态
func create_client() -> int:
client_peer = ENetMultiplayerPeer.new()
var error = client_peer.create_client(Global.get_server_address(), Global.get_server_port())
if error == OK:
multiplayer.multiplayer_peer = client_peer
# 更新客户端ID
update_client_id(multiplayer.get_unique_id())
return error
# 更新客户端ID
func update_client_id(client_id: int) -> void:
data["client_id"] = client_id

View File

@@ -1,62 +0,0 @@
#*****************************************************************************
# @file global.gd
# @author MakerYang(https://www.makeryang.com)
# @statement 免费课程配套开源项目,任何形式收费均为盗版
#*****************************************************************************
extends Node
# 初始化数据结构
var data = {
"varsion": "1.0.0",
"mode": "",
"server": {
"port": 9000,
"address": "game.makeryang.com"
},
"account": {
"token": ""
}
}
func _ready() -> void:
# 限制窗口最小尺寸
DisplayServer.window_set_min_size(Vector2(1280, 720))
# 服务器模式检测
if OS.has_feature("dedicated_server"):
print("[服务器模式]")
data["mode"] = "server"
var error = Server.create_server()
if error != OK:
printerr("[服务器创建失败]")
else:
print("[客户端模式]")
data["mode"] = "client"
Request.on_server_ping()
var error = Client.create_client()
if error == OK:
print("[服务器连接成功]")
else:
printerr("[服务器连接失败]")
# 是否为服务器模式
func is_server() -> bool:
var server = false
if data["mode"] == "server":
server = true
return server
# 获取服务器端口
func get_server_port() -> int:
return data["server"]["port"]
# 获取服务器IP
func get_server_ip() -> String:
return data["server"]["ip"]
# 获取服务器端口
func get_server_address() -> String:
return data["server"]["address"]
# 获取用户Token
func get_account_token() -> String:
return data["account"]["token"]

View File

@@ -1,29 +0,0 @@
#*****************************************************************************
# @file server.gd
# @author MakerYang(https://www.makeryang.com)
# @statement 免费课程配套开源项目,任何形式收费均为盗版
#*****************************************************************************
extends Node
# 初始化自定义数据
var server_peer:ENetMultiplayerPeer
# 创建服务器并返回服务器状态
func create_server() -> int:
print("[创建服务器...]")
server_peer = ENetMultiplayerPeer.new()
var error = server_peer.create_server(Global.get_server_port())
if error == OK:
multiplayer.multiplayer_peer = server_peer
multiplayer.peer_connected.connect(_on_peer_connected)
multiplayer.peer_disconnected.connect(_on_peer_disconnected)
print("[服务器创建成功]")
return error
# 客户端连接服务器时回调函数
func _on_peer_connected(id: int) -> void:
print("[新的客户端连接 " + str(id) + "]")
# 客户端断开服务器时回调函数
func _on_peer_disconnected(id: int) -> void:
print("[客户端连接断开 " + str(id) + "]")

View File

@@ -1,43 +0,0 @@
#*****************************************************************************
# @file request.gd
# @author MakerYang(https://www.makeryang.com)
# @statement 免费课程配套开源项目,任何形式收费均为盗版
#*****************************************************************************
extends Node
# 初始化自定义数据
var http_request:HTTPRequest = HTTPRequest.new()
var http_callback = null
# 初始化数据结构
var data = {
"headers": [
"Content-Type: application/json",
"Account-Token: ",
]
}
# 请求服务器接口
func on_server(path: String, method: int, parameter, callback) -> void:
if !http_request.is_inside_tree():
add_child(http_request)
var parameter_json = JSON.stringify(parameter)
data["headers"][1] = "Account-Token: " + Global.get_account_token()
if http_callback and http_request.is_connected("request_completed", http_callback):
http_request.request_completed.disconnect(http_callback)
http_request.request_completed.connect(callback)
http_callback = callback
http_request.request("https://" + Global.get_server_address() + path, data["headers"], method, parameter_json)
# 测试服务器接口
func on_server_ping() -> void:
on_server("/ping", HTTPClient.METHOD_GET, {}, func(_result, code, _headers, body):
if code == 200:
var response = JSON.parse_string(body.get_string_from_utf8())
if response["code"] == 0:
print("[服务器接口:/ping]", JSON.stringify(response))
else:
printerr("[服务器接口:/ping]", "服务器接口通讯失败")
else:
printerr("[服务器接口:/ping]", "服务器接口通讯失败")
)