Mudanças entre as edições de "Godot Engine: Hello Game World!"
De Aulas
Linha 1: | Linha 1: | ||
+ | |||
Afluentes : [[Jogos Digitais]], [[Usabilidade, desenvolvimento web, mobile e jogos]] | 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. | ||
− | [https://youtu.be/1wxJ7JTGvaY Youtube] | + | Videoaula: [https://youtu.be/1wxJ7JTGvaY Youtube] (Essa videoaula foi gravada usando o Godot 3) |
− | = Assets = | + | == Assets == |
− | [https://arisa.com.br/~saulo/aulas/unisul/games/godot/walking_assets.zip walking assets] | + | [https://arisa.com.br/~saulo/aulas/unisul/games/godot/walking_assets.zip walking assets] |
− | = Estrutura = | + | == Estrutura == |
* Configurações do Projeto: | * Configurações do Projeto: | ||
** Exibição... Janela... | ** Exibição... Janela... | ||
Linha 32: | Linha 34: | ||
*** Box (algumas) | *** Box (algumas) | ||
− | = Player Script = | + | == Player Script == |
<syntaxhighlight lang=python n> | <syntaxhighlight lang=python n> |
Edição das 08h17min de 27 de abril de 2023
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
Estrutura
- Configurações do Projeto:
- Exibição... Janela...
- Largura da Viewport: 1024
- Altura da Viewport: 600
- Exibição... Janela...
- Player (RigidBody2D)
- AnimatedSprite2D
- CollisionShape2D
- SoundJump (AudioStreamPlayer2D)
- Box e Ground (StaticBody2D)
- Sprite2D
- CollisionShape2D
- World (Node2D)
- Fundo (TextureRect)
- Music (AudioStreamPlayer)
- Linkar
- Ground
- Player
- Box (algumas)
Player Script
extends RigidBody2D
var speed = 10000
var jumpSpeed = -20000
var jumping = true
func _ready():
pass
func _process(delta):
# Pega o movimento
var velocity = Vector2()
if Input.is_action_pressed("ui_up"):
if not jumping:
velocity.y = jumpSpeed
$SoundJump.play()
elif Input.is_action_pressed("ui_right"):
velocity.x += speed
$AnimatedSprite2D.flip_h = false
elif Input.is_action_pressed("ui_left"):
velocity.x -= speed
$AnimatedSprite2D.flip_h = true
# Move o personagem
if velocity.length() > 0:
set_linear_velocity(velocity * delta)
$AnimatedSprite2D.play()
else:
$AnimatedSprite2D.stop()
# Mantém o personagem em pé
rotation_degrees = 0
# pula apenas se ele estiver no chão
if abs(get_linear_velocity().y) < 2:
jumping = false
Atividades
Desafio 1
Implemente o exemplo acima e faça-o funcionar. Experimente fazer modificações para ficar mais divertido.
Desafio 2
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.