【问题标题】:Identifier isn't declared in the current scope in godot标识符未在 godot 的当前范围内声明
【发布时间】:2021-10-02 06:11:02
【问题描述】:

硬币得分代码:

extends Area2D


onready var anim_player: AnimationPlayer = get_node("AnimationPlayer")


func _on_body_entered(body: PhysicsBody2D) -> void:
    picked()
    
    
    
func picked() -> void:
    PlayerData.Score += score
    anim_player.play("Fade")

它不适用于硬币,但适用于敌人(代码):

extends "res://Code/Both Script.gd"

onready var Stomp_Thingy: Area2D = $Stomp_Thingy


export var score: = 100

func _ready() -> void:
    set_physics_process(false)
    _Velocity.x = -Speed.x


func _on_Stomp_Thingy_body_entered(body: PhysicsBody2D) -> void:
    if body.global_position.y > get_node("Stomp Thingy").global_position.y:
        return
    get_node("CollisionShape2D").disabled = true
    queue_free()

func _physics_process(delta: float) -> void:
    _Velocity.y += gravity * delta
    if is_on_wall():
        _Velocity.x *= -1.0
    _Velocity.y = move_and_slide(_Velocity, FLOOR_NORMAL).y
    
    
func die() -> void:
    queue_free()enter code here
    PlayerData.Score += score

【问题讨论】:

  • “它不工作”不是一个好的问题描述。未声明的标识符是什么?你从哪里得到这个消息?编辑:它是“PlayerData”吗?我怀疑这应该是autoload(如果您正在学习教程,您可能已经跳过了该部分)。我还会提醒您连接信号(以防万一这就是您所说的“它不起作用”)。 StackOverflow 希望你能解释问题,这就是为什么它要求在问题中添加一些文字。

标签: godot


【解决方案1】:

在硬币的脚本中,我认为没有声明“分数”。因此,您可以在该脚本中添加“var score = 100”。或者如果你想在敌人和硬币上得分相同,请使用自动加载。包括更多信息。

【讨论】:

  • 谢谢我再次写了 scit 并且它起作用了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多