Aula 2 - fazendo um personagem se mover.md 2.9 KB


screenshoot by Kmitt 91 and Wojtek Pe

Aula 2 para a engine Godot 3.2.2

Hoje veremos a segunda aula de Desenvolvimento de jogo, hoje nos iremos aprender a como criar um personagem se mover pela tela.

primeiro nos criaremos um novo node, esse node será do tipo KinematicBody2D, o KinematicBody2D e um objeto funções já prontas para detectar colisões e que se move para uma posição especifica por nos.

e então iremos criar um CollisionShape2D, que será a colisão do nosso KinematicBody2D, ele e necessário para detectar colisões do personagem com o solo ou algum outro objeto, como um inimigo ou um item para coletar. nos também iremos criar um RectangleShape2D nele, esse RectangleShape2D será a caixa que ira detectar as colisões.

no adicionaremos o seguinte script ao KinematicBody2D, esses script ira captar os inputs do teclado e ira traduzir eles para movimentar o personagem pela tela.

extends KinematicBody2D

var motion = Vector2(0,0)

func _physics_process(delta):
	if Input.is_action_pressed("ui_down"):
		motion.y = 200
	elif Input.is_action_pressed("ui_up"):
		motion.y = -200
	elif Input.is_action_pressed("ui_left"):
		motion.x = -200
	elif Input.is_action_pressed("ui_right"):
		motion.x = 200
	else:
		motion = Vector2(0,0)
	move_and_slide(motion)

esse script altera a 'posição' do objeto a posição do objeto não e nada mais do que uma matriz com um valor x e y para representar o local do objeto na tela, por exemplo X:0 e Y:0 seria a posição inicial do objeto no canto esquerdo superior, caso o jogo esteja rodando na resolução de 1280x720 pixels, a posição X:1280 Y:720 seria o canto inferior direito da tela.

também adicionaremos um Sprite, o Sprite conterá uma imagem a nossa escolha, nesse caso iremos botar a logo da godot que vem no nosso projeto por padrão como a imagem do personagem

Aqui podemos ver o objeto se movendo pela tela seguindo o input do jogador.

para a próxima aula nos iremos aprender a como criar um animar uma imagem para nosso personagem para realmente fazer ele se move.