Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Objeto que aponta para a instancia de inimigos mais proxima dele ~>
- No exemplo abaixo eu tenho um objeto(sprite de um seta) que eu quero que ela aponte sempre paraq a instancia mais proxima dela de um objeto (inimigo, que tbm é apenas uma sprite e esta dentro de um grupo chamado "object2").
- Vamos ao Script :
- extends Sprite2D
- var player = null # Criando a variavel player que posteriormente se refirá ao própio objeto da seta
- var enemies = [] # Criando a variavel enemies que receberá um vetor contendo tds as instancias do inimigo na cena
- func _ready():
- # Encontre referências para o objeto do jogador e para todos os objetos inimigos
- player = self # Como dito anteriormente, o player é o próprio objeto
- enemies = get_tree().get_nodes_in_group("objeto2") # Dessa forma eu tenho todas as instancias dos inimigos armazenadas
- #print(enemies) # Posso imprimir o vetor de instancias de inimigos se eu quiser
- func _process(delta):
- # Encontrar o inimigo mais próximo
- var closest_enemy = null # Variavel que vai receber qual inimigo esta mais proximo (inicialmente nula)
- var closest_distance = 1e30 # Variavel que vai receber a distancia da instancia mais proxima
- #(esse valor representa "quase" infinito
- for enemy in enemies: # Laço for para verificar a distancia de cada inimigo para com o player
- var distance = player.global_transform.origin.distance_to(enemy.global_transform.origin)
- if distance < closest_distance: # Verifique se esta instância do inimigo está mais próxima
- closest_distance = distance
- closest_enemy = enemy
- var dir = global_position.direction_to(closest_enemy.global_position) # Pegando a direção da instancia mais proxima
- rotation = dir.angle() # Rotacionando a sprite para sempre "apontar" para a instancia mais proxima
- #print(closest_enemy.name) # Se eu quiser, posso imprimir o nome da instancia mais proxima também.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement