#android #godot
#Android #godot
Вопрос:
Я программирую игру для Android с помощью Godot 3.2.2. Конечно, я хочу сохранить данные игры, поэтому я создал новую сцену под названием SaveGame.tscn с помощью SaveGame.gd . Я экспортировал проект на свой ПК с Windows, и все работало нормально, все данные были сохранены. После этого я также экспортировал их на свой телефон Android, но на этот раз данные не были сохранены. Вместо этого он показал мне, что не смог найти путь сохранения. Может быть, кто-нибудь из вас может помочь мне с этой проблемой, чтобы данные также сохранялись на Android.
SaveGame.gd:
extends Control
const FILE_NAME = "user://save_game_data_one.json"
var save_game_data
func _ready() -> void:
Signals.connect("load_data", self, "load")
Signals.connect("game_quit", self, "save")
save_game_data = {
"highscore": Globals.highscore,
"coins": Globals.coins,
"music_volume": Globals.music_volume,
"sound_volume": Globals.sound_volume,
"button_gameplay": Globals.button_gameplay,
"button_gameplay_side": Globals.button_gameplay_side,
}
func save():
update_data()
var file = File.new()
file.open(FILE_NAME, File.WRITE)
file.store_string(to_json(save_game_data))
file.close()
func load():
var file = File.new()
if file.file_exists(FILE_NAME):
file.open(FILE_NAME, File.READ)
var data = parse_json(file.get_as_text())
file.close()
if typeof(data) == TYPE_DICTIONARY:
save_game_data = data
else:
printerr("Corrupted data")
else:
self.show() <---- Here it shows me the hidden scene (white rectangle), this means it could not find FILE_NAME
export_data()
func export_data():
Globals.highscore = save_game_data["highscore"]
Globals.coins = save_game_data["coins"]
Globals.music_volume = save_game_data["music_volume"]
Globals.sound_volume = save_game_data["sound_volume"]
Globals.button_gameplay = save_game_data["button_gameplay"]
Globals.button_gameplay_side = save_game_data["button_gameplay_side"]
func update_data():
if Globals.score_round >= Globals.highscore:
save_game_data["highscore"] = Globals.score_round
save_game_data["coins"] = Globals.coins_round
Ответ №1:
Я также хотел бы знать ответ. Я пытаюсь найти способ обеспечить «постоянное время» в моей игре для Android, когда «время проходит» в игре даже при закрытии. На данный момент лучшим решением, на мой взгляд, является получение времени Unix при первом запуске игр и сверка с ним при повторном открытии приложения. Моя проблема заключается в том, чтобы найти способ сохранить исходное время unix для вызова проверок.