Advertisement
Zunesha

Como fazer uma plataforma móvel de maneira simples

Nov 4th, 2023 (edited)
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Como fazer uma plataforma móvel de maneira simples ->
  2.  
  3.     >> Estruturando a cena da plataforma :
  4.         1- Criamos como nó raiz um Node2D
  5.         2- Depois adicionamos o corpo da plataforma como um AnimatableBody2D
  6.         3- Posso usar por exemplo um Sprite2D como nó filho do AnimatableBody2D para carregar a textura
  7.         4- Certamente eu preciso de um CollisionShape por se tratar de um corpo.
  8.         5- E para finalizar um Timer
  9.         6- Criaremos o script ( É fundamental que esse script seja aplicado ao Node2D E não ao AnimatableBody2D)
  10.  
  11. Vamos ao Script :
  12.  
  13. extends Node2D
  14.  
  15. @onready var timer = $plataforma/Timer as Timer                      # Faço a referência do timer
  16.  
  17. @onready var plataforma = $plataforma as AnimatableBody2D            # Faço a referência do corpo (animatablebody2d)
  18.  
  19. @export_enum("horizontal","vertical") var orientacao                 # Criando a variavel pra determinar o tipo de movimento
  20.  
  21. var dir:int = -1                                                     # Essas 2 váraveis são importantes para determinar a direção
  22. var dir_inicial:int = dir
  23.  
  24. func _ready():
  25.     timer.start()                                                    # Startando o Timer
  26.  
  27. func _physics_process(delta):
  28.                                                                    
  29.     match orientacao:                                             # Movimentando a plat conforme o índice do parãmetro de "orientacao"
  30.         0:
  31.             plataforma.global_position.x += dir_inicial
  32.         1:
  33.             plataforma.global_position.y += dir_inicial
  34.  
  35.  
  36. func _on_timer_timeout():                                            # Sinal timeout do Timer
  37.     dir_inicial = 0                                                  # Fazendo com que a plataforma pare...
  38.     await get_tree().create_timer(1.5).timeout                       # Aguare 1 segundo e meio.....
  39.     dir_inicial = dir * -1                                           # Passe a ir na direção oposta a qual estava indo antes
  40.     dir *=-1                                                         # invertendo o valor de dir pra dar seguimento a esse loop
  41.     timer.start()                                                    # Após tudo isso starta novamente o alarm e o cilco está criado
  42.  
  43.  
  44. Funcionamento na prática ->
  45.     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.
  46.  
  47.     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.
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement