extends Node2D
# Coloque no topo do script do mapa
const VAMPIRO_SCENE = preload("res://vampiro_comum.tscn")
# Mude o caminho para o local real do seu arquivo vampiro.tscn
func spawn_vampiro():
# 1. Instancia a cena
var novo_vampiro = VAMPIRO_SCENE.instantiate()
# 2. Encontra o ponto de spawn
var ponto_de_spawn = $PontoDeSpawnVampiro
# (Se seu Marker2D estiver diretamente sob o nó raiz do mapa)
# 3. Define a posição do novo vampiro com base no ponto de spawn
novo_vampiro.global_position = ponto_de_spawn.global_position
# 4. Adiciona o novo vampiro à cena do mapa
add_child(novo_vampiro)
func _ready():
spawn_vampiro()
# Se você tiver lógica de jogo para chamar, chame de lá.
extends CharacterBody2D
# Velocidade de movimento (ajuste conforme o necessário)
var VELOCIDADE = 100.0
# Referência ao nó AnimatedSprite2D
@onready var animacao = $AnimatedSprite2D
func _physics_process(delta):
# 1. Definir o vetor de movimento
# Como você quer que ele mova APENAS para baixo, o vetor é (0, 1)
var direcao = Vector2(0, 1) # (eixo X, eixo Y)
# 2. Calcular a velocidade de movimento
velocity = direcao * VELOCIDADE
# 3. Mover o corpo do personagem
move_and_slide()
# 4. Atualizar a animação
atualizar_animacao(direcao)
func atualizar_animacao(direcao_movimento):
# Direção (0, 1) significa que o vampiro está indo para baixo.
if direcao_movimento.y > 0:
# Se você definiu uma animação chamada "down" no AnimatedSprite2D
animacao.play("down")
else:
# Se ele não estiver se movendo, você pode querer tocar uma animação de "idle"
animacao.stop()
extends Node2D
# Certifique-se de que este caminho está correto
const VAMPIRO_SCENE = preload("res://vampiro_comum.tscn")
# Adicione uma referência ao seu Timer (o nó que você criou)
# O nome deve ser o nome exato do nó Timer.
@onready var spawn_timer = $SpawnTimer
func spawn_vampiro():
# 1. Instancia a cena
var novo_vampiro = VAMPIRO_SCENE.instantiate()
# 2. Encontra o ponto de spawn
# Se tiver um Marker2D chamado PontoDeSpawnVampiro
var ponto_de_spawn = $PontoDeSpawnVampiro
# 3. Define a posição do novo vampiro
novo_vampiro.global_position = ponto_de_spawn.global_position
# 4. Adiciona o novo vampiro à cena do mapa
add_child(novo_vampiro)
func _ready():
# Remova a chamada direta a spawn_vampiro() daqui!
# Apenas conecte o sinal.
# Conecta o sinal 'timeout' do Timer à função 'spawn_vampiro'.
spawn_timer.timeout.connect(spawn_vampiro)
# Se você DESMARCOU 'Autostart' no passo 2, chame 'start()' aqui:
# spawn_timer.start()
0 comentários:
Postar um comentário