Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Como fazer uma plataforma móvel de maneira simples ->
- >> Estruturando a cena da plataforma :
- 1- Criamos como nó raiz um Node2D
- 2- Depois adicionamos o corpo da plataforma como um AnimatableBody2D
- 3- Posso usar por exemplo um Sprite2D como nó filho do AnimatableBody2D para carregar a textura
- 4- Certamente eu preciso de um CollisionShape por se tratar de um corpo.
- 5- E para finalizar um Timer
- 6- Criaremos o script ( É fundamental que esse script seja aplicado ao Node2D E não ao AnimatableBody2D)
- Vamos ao Script :
- extends Node2D
- @onready var timer = $plataforma/Timer as Timer # Faço a referência do timer
- @onready var plataforma = $plataforma as AnimatableBody2D # Faço a referência do corpo (animatablebody2d)
- @export_enum("horizontal","vertical") var orientacao # Criando a variavel pra determinar o tipo de movimento
- var dir:int = -1 # Essas 2 váraveis são importantes para determinar a direção
- var dir_inicial:int = dir
- func _ready():
- timer.start() # Startando o Timer
- func _physics_process(delta):
- match orientacao: # Movimentando a plat conforme o índice do parãmetro de "orientacao"
- 0:
- plataforma.global_position.x += dir_inicial
- 1:
- plataforma.global_position.y += dir_inicial
- func _on_timer_timeout(): # Sinal timeout do Timer
- dir_inicial = 0 # Fazendo com que a plataforma pare...
- await get_tree().create_timer(1.5).timeout # Aguare 1 segundo e meio.....
- dir_inicial = dir * -1 # Passe a ir na direção oposta a qual estava indo antes
- dir *=-1 # invertendo o valor de dir pra dar seguimento a esse loop
- timer.start() # Após tudo isso starta novamente o alarm e o cilco está criado
- Funcionamento na prática ->
- A plataforma (se estiver na vertical : se move para cima e após 3 segundos ela para , aguarda 1 segundo e meio e troca de direção se movendo para baixo por mais 3 segundos ate que pare novamente, aguarde mais 1 segundo e meio e troque a direção . Ficando assim em loop infinito.
- A plataforma (se estiver na horizontal : se move para esquerda e após 3 segundos ela para , aguarda 1 segundo e meio e troca de direção se movendo para direita por mais 3 segundos ate que pare novamente, aguarde mais 1 segundo e meio e troque a direção . Ficando assim em loop infinito.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement