88 lines
2.6 KiB
GDScript
88 lines
2.6 KiB
GDScript
extends Node
|
|
|
|
var http_request: HTTPRequest
|
|
var farm_lots = []
|
|
|
|
@onready var harvest = $harvest
|
|
@onready var label1 = $Label
|
|
@onready var username_input = $Panel/username_input
|
|
@onready var password_input = $Panel/password_input
|
|
@onready var login_button = $Panel/login_button
|
|
@onready var panel = $Panel
|
|
@onready var item_list = $item_list #ItemList
|
|
|
|
func _ready():
|
|
# 创建 HTTPRequest 节点
|
|
http_request = HTTPRequest.new()
|
|
add_child(http_request)
|
|
# 连接信号
|
|
http_request.connect("request_completed", Callable(self, "_on_request_completed"))
|
|
# 连接登录按钮点击事件
|
|
login_button.connect("pressed", Callable(self, "_on_login_button_pressed"))
|
|
|
|
# 登录按钮按下事件
|
|
func _on_login_button_pressed():
|
|
# 隐藏面板(只有在输入后才进行隐藏)
|
|
panel.hide()
|
|
|
|
# 获取用户名和密码输入
|
|
var username = username_input.text # 直接获取输入
|
|
var password = password_input.text # 直接获取输入
|
|
|
|
# 打印调试信息
|
|
print("Username entered: ", username)
|
|
print("Password entered: ", password)
|
|
|
|
# 检查用户名和密码是否为空
|
|
if username == "" or password == "":
|
|
print("用户名和密码不能为空")
|
|
panel.show() # 如果输入为空,显示面板
|
|
return
|
|
|
|
# 构建登录请求的 URL 和参数
|
|
var url = "https://api.shumengya.top/smyfarm/login.php"
|
|
var body = {
|
|
"username": username,
|
|
"password": password
|
|
}
|
|
|
|
# 发送 POST 请求进行登录
|
|
var err = http_request.request(url, [], HTTPClient.METHOD_POST, JSON.stringify(body))
|
|
if err != OK:
|
|
print("Error making HTTP POST request: ", err)
|
|
|
|
# 请求完成后的回调函数
|
|
func _on_request_completed(result, response_code, headers, body):
|
|
if response_code == 200:
|
|
var json = JSON.new()
|
|
var parse_result = json.parse(body.get_string_from_utf8())
|
|
|
|
if parse_result != OK:
|
|
print("Error parsing JSON: ", json.get_error_message())
|
|
return
|
|
|
|
var json_data = json.data
|
|
|
|
if json_data.has("error"):
|
|
print("Error: " + str(json_data["error"]))
|
|
panel.show() # 如果登录失败,显示面板,允许重新输入
|
|
elif json_data.has("message"):
|
|
print(json_data["message"])
|
|
|
|
# 处理登录成功
|
|
if json_data.has("data"):
|
|
var player_data = json_data["data"]
|
|
print("欢迎, " + player_data["username"])
|
|
|
|
# 加载玩家数据,进入游戏逻辑
|
|
_load_player_data(player_data)
|
|
else:
|
|
print("HTTP Request failed with response code: " + str(response_code))
|
|
panel.show() # 请求失败,重新显示面板
|
|
|
|
# 加载玩家数据
|
|
func _load_player_data(player_data):
|
|
# 根据返回的 player_data 初始化玩家的农场状态等
|
|
pass
|
|
|