整理了一下文件位置
This commit is contained in:
19
GUI/LoginPanel.gd
Normal file
19
GUI/LoginPanel.gd
Normal file
@@ -0,0 +1,19 @@
|
||||
extends Panel
|
||||
|
||||
#用户登录账号,用QQ号代替
|
||||
@onready var username_input = $username_input
|
||||
#用户登录密码
|
||||
@onready var password_input = $password_input
|
||||
#登录按钮
|
||||
@onready var login_button = $login_button
|
||||
|
||||
|
||||
func _ready():
|
||||
|
||||
pass
|
||||
|
||||
func _process(delta):
|
||||
pass
|
||||
|
||||
func _on_login_button_pressed():
|
||||
pass
|
||||
87
GUI/login.gd
Normal file
87
GUI/login.gd
Normal file
@@ -0,0 +1,87 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user