我正在制作一个显示对话、选择、精灵、音频等的 API,在youtube上查找此视频后,我能够做到这一点,但我不断收到此错误invalid get '-1' (on base 'array')
,这是我的代码,所以你可以看到
extends Control
onready var bg_rect = get_node("Media_Sys/BG_Rect")
onready var char_sprite = get_node("Media_Sys/Sprite")
onready var text_box = get_node("Dialog_Sys/Dialog_Text")
onready var text_nam = get_node("Dialog_Sys/Label/Name")
onready var click = get_node("ClickManager")
var player = []
var lu = "Lu"
var ciel = "Ciel"
func _ready():
click.request_ready()
func write(char_name_str, text_str=null):
if text_str == null:
text_str = char_name_str
char_name_str = ""
player.push_front({"type": "dialogue","name": char_name_str, "text": text_str})
func write_component():
text_nam.clear()
text_box.clear()
text_nam.add_text(player[player.size() - 1]["name"])#the debugger says the problem is here
text_box.add_text(player[player.size() - 1]["text"])#as well as here if you remove the first line.
player.pop_back()
func _input(event):
if event is InputEventMouseButton:
write_component()
有人说这是因为我没有定义数组的大小,有人说我的代码以某种方式将播放器设置为整数真的很奇怪。我已经检查了数组文档页面,但什么也没想到,我已经更改了代码中的一些小东西,但它仍然会产生同样的无效错误。
extends Node
onready var g = get_parent()
var lu = "Lu"
var ciel = "Ciel"
func _ready():
g.write(lu, "hello")
需要注意的一件事是它确实显示了对话和名称,我只是在之后立即收到错误。