Mudanças entre as edições de "Godot Engine: Hello Game World!"

De Aulas
Linha 1: Linha 1:
 +
  
  
Linha 38: Linha 39:
 
== Player Script ==
 
== Player Script ==
  
<syntaxhighlight lang=python>
+
<syntaxhighlight lang="python">
 
extends CharacterBody2D
 
extends CharacterBody2D
  
Linha 47: Linha 48:
  
 
func _physics_process(delta):
 
func _physics_process(delta):
# Add the gravity.
+
# Adiciona a gravidade
 
velocity.y += gravity * delta
 
velocity.y += gravity * delta
  
# Handle Jump.
+
# Controla o pulo (tecla pra cima)
 
if Input.is_action_just_pressed("ui_up") and is_on_floor():
 
if Input.is_action_just_pressed("ui_up") and is_on_floor():
 
$SoundJump.play()
 
$SoundJump.play()
 
velocity.y = jump_speed
 
velocity.y = jump_speed
  
# Get the input direction.
+
# Pega as direções das entradas do teclado (esquerda e direita)
 
var direction = Input.get_axis("ui_left", "ui_right")
 
var direction = Input.get_axis("ui_left", "ui_right")
 
velocity.x = direction * speed
 
velocity.x = direction * speed

Edição das 09h18min de 9 de maio de 2024



Afluentes : Jogos Digitais, Usabilidade, desenvolvimento web, mobile e jogos

Informações

Esse exemplo foi originalmente feito para o Godot 3, mas modifiquei para funcionar no Godot Engine versão 4.

Videoaula: Youtube (Essa videoaula foi gravada usando o Godot 3)

Assets

walking assets

Estrutura

  • Configurações do Projeto:
    • Exibição... Janela...
      • Largura da Viewport: 1024
      • Altura da Viewport: 600
  • Player (CharacterBody2D)
    • AnimatedSprite2D
    • CollisionShape2D
    • SoundJump (AudioStreamPlayer2D)
  • Box e Ground (StaticBody2D)
    • Sprite2D
    • CollisionShape2D
  • World (Node2D)
    • Fundo (TextureRect)
    • Music (AudioStreamPlayer)
    • Linkar
      • Ground
      • Player
      • Box (algumas)

Pra música ficar em loop, clicar no music.ogg e em cima, ao lado de Cena, clicar em importar. Selecionar Repetir e reimportar.

Player Script

extends CharacterBody2D

var speed = 300.0
var jump_speed = -500.0
# Pega a gravidade das configuracoes do projeto
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")

func _physics_process(delta):
	# Adiciona a gravidade
	velocity.y += gravity * delta	

	# Controla o pulo (tecla pra cima)
	if Input.is_action_just_pressed("ui_up") and is_on_floor():
		$SoundJump.play()
		velocity.y = jump_speed

	# Pega as direções das entradas do teclado (esquerda e direita)
	var direction = Input.get_axis("ui_left", "ui_right")
	velocity.x = direction * speed
	if direction > 0:
		$AnimatedSprite2D.flip_h = false
		$AnimatedSprite2D.play()
	elif  direction < 0:
		$AnimatedSprite2D.flip_h = true
		$AnimatedSprite2D.play()
	else:
		$AnimatedSprite2D.stop()

	move_and_slide()

Atividades

Desafio 1

Implemente o exemplo acima e faça-o funcionar. Experimente fazer modificações para ficar mais divertido.

Desafio 2

Exemplo de Assets

Baseado na última aula, crie um jogo com as seguintes características:

  • 1 elemento caixa. Você usará as caixas para criar um labirinto e as bordas do jogo;
  • 1 elemento player pra você controlar. Ele não usa gravidade, e pode ir para cima, baixo, esquerda e direita, conforme setas do teclado;
  • 1 elemento monstro que se controla sozinho. Anda para lados aleatórios a uma velocidade aleatória a cada certo período de tempo ou timeout de 1 segundo muda aleatoriamente;
  • Faça teste de colisão entre o player e o monstro. Caso o monstro toque no player, ele não se movimenta mais, está morto.

Algumas coisas foram vistas em aula, outras você terá que pesquisar para conseguir fazer o exercício.