Advertisement
Zunesha

Mover camera em grid na Godot ( estilo camera do Celeste)

Dec 6th, 2023
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Mover camera em grid na Godot ( estilo camera do Celeste)
  2.  
  3. extends Camera2D
  4.  
  5. @onready var player = get_node("../player") # pegando a referência do player
  6.  
  7. var camera_w = 800 # largura da camera / janela
  8. var camera_h = 600 # altura da camera / janela
  9.  
  10. func _ready():
  11.    
  12.     self.anchor_mode = Camera2D.ANCHOR_MODE_FIXED_TOP_LEFT # definindo a ancora da camera no topo esquerdo( padrão é no meio)
  13.  
  14. func _physics_process(delta):
  15.    
  16.     var cam_x = self.position.x # guardando a posição.x da camera
  17.     var cam_y = self.position.y # guardando a posição.y da camera
  18.    
  19.     var xx = floor(player.position.x / camera_w) * camera_w  # cálculo para pegar a posição.x que a camera será atualizada
  20.     var yy = floor(player.position.y / camera_h) * camera_h  # cálculo para pegar a posição.y que a camera será atualizada
  21.    
  22.     # o flor() é para eu pegar apenas a parte inteira da divisão.Nesse caso o flor() arredonda para baixo ex : 4.9 = 4
  23.    
  24.     self.position.x = lerp(cam_x,float(xx),.06) # movendo a camera em x com um efeito de smoothing
  25.     self.position.y = lerp(cam_y,float(yy),.06) # movendo a camera em y com um efeito de smoothing
  26.  
  27.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement