对基本“NativeScript”中的函数“connect”的调用无效。 godot 中预计有 3 个参数

问题描述 投票:0回答:1

我在我的项目中使用 godot SQLite 有很多无效的。这是我的代码

我正在使用 godot 3.6 `扩展节点

参考SQLite插件脚本

#onready var db = preload("res://addons/sqlite/godot-sqlite.gd").new() const db = 预加载("res://addons/godot-sqlite/bin/gdsqlite.gdns")

SQLite 数据库的路径

const DB_PATH =“res://random_words.db”

var Words = [] # 从数据库加载的单词列表 var Special_characters = [".", "!", "?"]

func_ready(): 从数据库加载单词()

从 SQLite 数据库加载单词的函数

从 SQLite 数据库加载单词的函数

func load_words_from_database(): # 打开数据库 如果不是 db.connect(DB_PATH): print("无法打开数据库:", DB_PATH) 返回

# Execute the query
var query = "SELECT word FROM words;"
if not db.query(query):
    print("Failed to execute query: ", query)
    db.close()
    return

# Fetch rows and populate the words array
words.clear()
while db.next_row():
    words.append(db.get_column_text(0))  # First column is 'word'

print("Loaded words: ", words.size())
db.close()

生成随机提示的功能

func get_prompt() -> 字符串: 如果words.empty(): 返回“数据库中没有可用的单词!”

var word_index = randi() % words.size()
var special_index = randi() % special_characters.size()

var word = words[word_index]
var special_character = special_characters[special_index]

var formatted_word = word.substr(0, 1).to_upper() + word.substr(1).to_lower()

return formatted_word + special_character

我有你们可以为以后的学习提供帮助。谢谢你

sqlite godot godot3 godot-plugin
1个回答
0
投票

问题位于:

if not db.connect(DB_PATH): print("Failed to open the database at: ", DB_PATH)

我不认为

db.connect
会像你想象的那样。
db.connect
尝试为 db 节点发出的信号注册处理程序。 然而,
db
并不是一个发出信号的节点,它是对SQLite实例的引用。 该 SQLite 实例不会发出任何信号,它只是提供与数据库交互的函数。

要打开 db 文件,您需要调用

db.open_db()
,但是,您目前拥有的代码可能不适合目的。

我强烈建议您首先在演示应用程序中复制 godot-sqlite 提供的最小示例:https://github.com/2shady4u/godot-sqlite/releases/download/v3.0/demo.zip

© www.soinside.com 2019 - 2024. All rights reserved.