Skip to content

jseling/godot_learning

Repository files navigation

Canal DavidGames001

A Godot possui 3 tipos de nós bases, "2D" para jogos em 2D, "3D" para jogos em 3D, "User Interface" para interface de usuário. A opção "Other Node" permite adição de nós de animação, canvas, timers, entre outros nós específicos. O personagem é um objeto que se move e detecta a colisão com outros objetos:

  • Selecionar Node>CanvasItem>Node2D>CollisionObject2D>Area2D. Não vamos usar o outro objeto de física pois não há necessidade.

Precisamos adicionar uma cara ao nodo recém criado. Na árvore da cena selecionar o nodo recém criado, clicar com o botão direito e selecionar "Add child node". Adicionaremos um nó filho, esse nodo vai adicionar propriedades ao nodo pai.

  • O nó filho será o Node>CanvasItem>Node2D>AnimatedSprite que permite criar sprites animados automáticamente.

No nodo de AnimatedSprite recém criado, no inspector dele na propriedade Frames que está como "Empty", clicar nela e escolher "New SpriteFrames" e clicar nele. Vai aparecer uma tela para configurar as animações do sprite. Nela já vem uma animação chamada "default", clique nela para mudar o nome para "parado". O "Speed (FPS)" colocar como "0" e desativar a opção "Loop". Criar uma nova animação chamada "correndo" clicando no botão "New Animation". O "Speed (FPS)" dela colocar como "8" e deixar ativada a opção "Loop". Agora selecione novamente a animação "parado". Vá no "FileSystem" na pasta Images em "Players>Variable sizes>Blue" e selecione o arquivo "alienBlue_stand.png". Clique e arraste ele para a área de "Animation Frames", essa única imagem será a animação de "parado". Selecione novamente a animação "correndo". Nela adicione os arquivos "alienBlue_walk1.png" e "alienBlue_walk2.png". No "Inspector" do AnimatedSprite pode-se ver a animação marcando a propriedade "Playing", desmarque depois de ver como ficou. Mude o nome do nó "Area2D" para "jogador" e do "AnimatedSprite" para "sprite".

  • Adicione um script no nó "jogador" clicando no botão "Attach node script". Selecione a pasta onde vai ficar o script "Scripts". Clique em "Create".

Colocar o seguinte script:

extends Area2D

var gravidade = 1000
var pulo = -800
var limite = 600
var velocidade = Vector2()

func _ready():
	pass # Replace with function body.

func _physics_process(delta):
	velocidade.y += gravidade * delta
	if Input.is_action_just_pressed("pulo"):
		velocidade.y = pulo
	position += velocidade * delta
	if position.y >= limite:
		position.y = limite
  • Para criar uma tecla de referência vá em Project>Project Settings na aba "Input Map", no campo "Action:" coloque "pulo" e clique em "Add". Ela srá criada no fim da lista. Clique no botão de + nela para adicionar a tecla de "espaço" para ser a tecla de pulo.

  • Clique no botão "Play Scene (F6)" para testar.

<<minuto 5:50>>

Os objetos no Godot possuem notificações, que nada mais são do que eventos disparados por eles quando alguma situação ocorre.

func _ready(): Ocorre quando o objeto é criado.

func _process(delta): É o update ou step de outras bibliotecas e engines. É dependente do framerate.

func _physics_process(delta): É um update independente do framerate.

Knowledge

About

My Godot learning journey

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published