GodotScript回调问题

时间:2017-08-05 15:13:46

标签: callback

我有一个关于戈多引擎的问题,我正在制作一个RPG,我现在正在制作对话框系统,为此我创建了一个场景,其中有一个用于对话框样式的精灵,以及一个RichTextLabel,和一个计时器,在脚本中我有这个

extends Node2D
var vc = 0
var text = false
onready var t = Timer.new()
func _ready():
    var t = Timer.new()
    t.set_wait_time(1)
    t.set_one_shot(true)
    self.add_child(t)
    t.start()
    yield(t, "timeout")
func _on_Timer_timeout():
    get_node("spr_cuadro").show()
    while get_node("spr_cuadro/rtl_mensaje").get_visible_characters() <= get_node("spr_cuadro/rtl_mensaje").get_text().length():
        get_node("Cuadro/Mensaje").set_visible_characters(vc)
        vc += 1
        yield(t, "timeout")
    text = true
func message():
    print("hello")
    get_node("spr_cuadro/rtl_mensaje").set_bbcode("ef")
    if Input.is_action_pressed("ui_k"):
        if text == false:
            get_node("Timer").start()
    elif Input.is_action_pressed("ui_k"):
        if text:
            get_node("spr_cuadro/rtl_mensaje").set_visible_characters(0)
            vc = 0
            get_node("spr_cuadro").hide()
            yield(t, "timeout")
            text = false

我还有另一个名为“enemie”的场景,它有对话框实例化 这是代码:

extends KinematicBody2D
const diascr = preload("res:///scripts/dialog.gd")
onready var dialog = get_node("dialog").get_script()
func _ready():
    set_process(true)
func _process(delta):
    move(Vector2(1,0))
    dialog.message("messaje")

我想做的事情是将对话框与enemie脚本连接起来并调用功能消息在屏幕上显示消息,如果有人能帮助我,我将非常感激

错误:对基础'GDScript'中的函数'message'的调用无效。期望0个参数。在enemie第8行

1 个答案:

答案 0 :(得分:0)

您收到此错误是因为您忘记了邮件功能中的参数。目前您将字符串传递给函数,但函数“不知道”如何处理它。您的功能必须如下:

func message(content):
    print(content)
    ...

最好的问候。