Por mim está tudo bem que o vídeo não seja rápido. Oque acho importante é que seja bem explicativo e também compreensível para os novos GameDevs. A forma com que o Clécio apresenta os vídeos está de bom agrado para mim.
Cara, faço Ciência da Computação e estou com uma cadeira que usa Godot. Sua didática é excelente, continue fazendo o que faz. Parabéns!
Рік тому+3
Cara simplesmente espetacular, estou gostando tanto, mas tanto, de aprender por seus vídeos que até estou com vontade de ensinar em escola pública a galerinha a usar a Godot.
Opa, tudo jóia? Que legal que está curtindo. Se vc for de São Paulo e desejar. Posso ajudar nessa implementação e ajudar a levar esse conhecimento às escolas também.
tive um problema com pulo, o personagem ao pular sem pressionar para andar ele pulava corretamente, porém quando andava e pulava ao mesmo tempo ele não executava corretamente o pulo, então fiz uma mudança que resolveu pra mim nessa etapa: if direction != 0: velocity.x = direction * SPEED animation.scale.x = direction if not is_jumping: animation.play("run") else: velocity.x = move_toward(velocity.x, 0, SPEED) animation.play("idle") if is_jumping: animation.play("jump") ao invés de ter if -> elif -> else, eu tirei o elif do is_ jumping e passei pro final como um "if" pra que assim a animação do jump aconteça ao pular e andar ao mesmo tempo.
Eai cara, como vai? mano, seus vídeos são muito bem explicados, eu e meus amigos estamos vendo suas aulas todas para conseguir fazer nosso primeiro jogo, e tu tirou a gente do escuro, a gente não tinha ideia de onde começar e você só nos primeiros vídeos já nos ajudou, eu mandei um pix pra ajudar você com seus conteúdos, adorei seu trabalho e boa sorte pra você meu mano.
muito bom cara, to desde o primeiro ep vendo como funciona e consegui fazer exatamente igual. além de que a interface do Godot 4.0/4.1 é muito intuitiva
Clécio, vc esta me ajudando muito nesse novo godot 4.0. estou finalmente entendendo a godot. La na frente em algum ep dessa serie vc poderia ensinar a passar de fase sem a tela preta como transição? se guimos igual as aulas da godot 3.5 vc fara um vide de transição com tela preta e troféu ne? poderia fazer tbm uma transição de só mudar a tela sem looading ?
Uma observação, Clécio, em 9:50 Quando vc atribui scale.x = direction, vc está pensando num usuário com teclado né, ou um D-pad de algum controle. Mas se o player estiver usando um joystick, o valor de direction será um número entre 0 e 1, dependerá da força do joystick. Nesse caso, a sprite do personagem poderá se deformar no caso dum usuário com joystick kkk. Talvez seja mais seguro vc meter mais um if ou pensar num outro método pra evitar esse eventual problema. Em 12:12, quando vc comenta na linha 29, vc não está querendo escrever na vdd "if not is_jumping"? Também a sua indentação na linha 31 para "elif is_jumping:" não deveria estar com um TAB a mais? No mais, bom trabalho! #godot4platform
@@eliasprimojunior5224 a variável "direction" é um número decimal entre 0 e 1 (0 e 1 inclusos) quando vc usa controle analógico. um jeito bem direto de resolver isso é meter mais um bloco "if" para verificar para que lado você está pressionando o joystick. substituindo animation.scale.x = direction por animation.scale.x = int(direction + 0.99) vc garante que animation.scale.x será um número inteiro (1 ou -1) toda vez que vc mexer no joystick para a esquerda ou para a direita. como tem que verificar isso para os dois lados, vc teria que refazer uma parte do seu bloco "if". Troque isto: if direction != 0: velocity.x = direction * SPEED animation.scale.x = direction if is_jumping == false: animation.play('run') elif is_jumping == true: animation.play('jump') por isto: if direction > 0: velocity.x = direction * SPEED animation.scale.x = int(direction + 0.99) if is_jumping == false: animation.play('run') elif is_jumping == true: animation.play('jump') elif direction < 0: velocity.x = direction * SPEED animation.scale.x = int(direction - 0.99) if is_jumping == false: animation.play('run') elif is_jumping == true: animation.play('jump') Eu não tenho joystick analógico pra testar, se funcionar avisaê kkk
@@gasparmc vlw, eu segui o código dele só acrescentei /2 na frente do direction, além da direção estava alterando o a escala, tipo dobrava de tamanho ai eu so dividi por 2 kkk
pra quem esta com problema no pulo parado, replica o if do !is_jumping com o elif is_jump no ultimo else mas substituindo o "run" por "idle". Quando pula parado a direction é zero e n tem lógica pra esse cenário no código na versão 4.3
prof, não sei se vai ser concertado em versões futuras, mas, quando eu estou correndo e pulo ele continua correndo no ar durante o pulo (animação de run), mas ando paro, pulo e ando pra frente no ar fica normal (animação de jump)... foi algo que fiz errado ou é um "bug" que vai ser corrigido mais pra frente
Excelente Curso Clécio, muito bom, estou pegando de forma rápida e dinâmica , até agora só o personagem que na hora que vai virar para Left ele distorce a sprite kkkk mas top, indo muito bem!
Em vez de "$anim" na referencia, eu tive q declarar como AnimatedSprite mesmo, tava dando algum erro estranho de "Not found" quando executava, enfim deu certo graças a essa correção q fiz.
pequena mudança que permite rodar a animação quando pular parado ou cair if direction != 0: velocity.x = direction * SPEED animation.scale.x = direction if !is_jumping: animation.play("running") else: animation.play("jump") else: velocity.x = move_toward(velocity.x, 0, SPEED) if is_jumping or velocity.y > 0: # Se estiver pulando ou subindo animation.play("jump") else: animation.play("idle")
para quem sofre com o problema do personagem ficar esticado quando anda pros lados. eu tinha esse problema mas eu resolvi assim if direction == 1: animation.scale.x = (o scale x da sua animação) else animation.scale.x = (o scale x da sua animação negativo)
@@ladislaugameplay12 vai na animaçao do teu player, no inspetor, dai aperta no transform a ali tem uma opiçao chamada scale x é horrivel explicar em comentario :v
Opa Clécio, tudo certo? Top demais suas aulas, muito explicativa e simples de entender. Parabéns!! Só estou com um problema na movimentação, refiz todo o processo do vídeo porém ao mexer no script e colocar o código que você passou ao tentar iniciar o jogo ao apertar a setinha para qualquer um dos lados o jogo simplesmente fecha e informa que o play não pode ser igual a null. Dei uma olhada e vi que o AnimationPlayer está com um campo nulo porém não consigo selecionar opções para definir um valor e evitar o erro. Poderia me ajudar com essa questão?
fala Clécio fiz, tudo certinho igual vocês. Porem tive uma divergência quando pulo no lugar ele não troca para o sprite do pulo, mas quando estou me movendo sim... kkkk
Tive um problema quando tava tentando programar de quando eu pulava o meu personagem continuava andando pra frente sem parar, ate que eu vi que o problema era que precisava de espaço nos ifs pra funcionar e nao consegui compreender de como funciona direito a programação no godot
Eu tive problemas com a animação de pulo, pois o a animação de pulo do personagem só rodava se eu apertasse as teclas de esquerda ou direita e a tecla de pular ao mesmo tempo.
Excelente aula! Uma dúvida: no caso do vídeo a animação do pulo tem apenas um frame. E se fossem mais frames? No jogo que estou fazendo o personagem pula, mas tem os frames de antecipação e acomodação tb, para deixar a animação mais fluida, porém ao fazer como no exemplo do vídeo, a animação só começa se eu apertar apenas o botão de pulo. Se o personagem estiver andando e eu apertar junto o pulo (o tal correr e pular) ele não aciona a animação de pulo, ele continua correndo no ar. Como corrigir e sincronizar o pulo quando existem mais frames na animação? Alguém sabe?
Em vez de "if is_jumping" use "if direction != 0 and velocity.y ==0: animation.play("run") elif velocity.y != 0: animation.play("Jump") else: Animation.play("idle") Qlqr dúvida meu @ é @charme_4422
Estou utilizando a godot no Android, e consegui fazer os controles virtuais graças a você, mas infelizmente não estou conseguindo fazer as animações tocarem corretamente, eu consegui fazer a animação de andar quando o controle é precionado, mas a animação de parado nem começa e quando ele para de andar ela também não acontece, e a de pulo é a pior, tentei fazer como esta no vídeo e não deu certo ele continuou vom a animação de andar, porém quando eu pulava e apertava pra andar ele caia e ficava deslizando no chão, ele literalmente andava sozinho de forma esquisita e vc só conseguia mudar a direção dele. Espero q isso seja um bug e que seja resolvido logo, ja q fiz tudo certo como está no vídeo. Vou ignorar a animação por enquanto e vou fazer o resto ( ja q estou fazendo um jogo simples para um trabalho de escola ). Edit: Eu consegui fazer o player executar a animação dele parado corretamente, acho q o problema era como a animação estava nomeada, vou tentar a de pulo e volto aq
ate na data desse comentario as atualizacoes mudaram muita coisa foram corrigidos na parte dos botoes touch que estao todos funcionais e nao precisa de correcao no script, esta como ui_accept o pulo, entre outras melhorias que a 20 dias atras nao tinham foram tambem corrigidos muitas coisas queso conseguia fazer pelo script estao visuais agora.
Professor, a animacao de jump nao vai de jeito nenhum. Quando eu boto a animacao de pulo no codigo, quando eu início o jogo a animacao de pulo nao funciona e quando eu clico para andar para esquerda ou direita, o boneco nao para de andar mais, mesmo eu parando de mexer no joystick... saberia como resolver?
Gostei muito do video. Você tem curso? Gostaria de aprender mais sobre godot, atualmente eu estou fazendo umas brincadeiras com javascript, fazendo minha propria engine. Mas eh soh pra aprender. Meu proximo passo seria usar unity3d, mas tenho gostado do que tenho visto dessa engine.
Temos um curso lá no Hotmart hotmart.com/pt-br/marketplace/produtos/desenvolvimento-de-jogos-na-godot-4/X80270599K?ori=1&gclid=Cj0KCQjwxYOiBhC9ARIsANiEIfYedjf42RnFOe_3Q3hj-4NTumDDbC6mcpEguMt5WeEsx8H19fxQ5FcaApkuEALw_wcB lá tem módulos de programação GD Script e tbm modelos de jogos para evoluir na godot.
Grande Clécio! Na sua opinião, tornar certas palavras-chave em anotações (@onready, @export, etc.) objetiva tornar a linguagem GDScript de uso mais geral? Quem sabe para desenvolvimento de outras aplicações além de jogos?
oi, no início do vídeo deu pra ver que na parte de modificar a animação do player, por volta de 1:02, estava sem as linhas vermelha, verde e roxa, queria saber como faço pra ocultar do meu também. Vídeo incrivel!
Alguem pode me ajudar,ta tudo funcionando mais quando eu pulo sem mexer pros lado,ou seja só aperto o espaço ai quando faço isso a animação de pulo nao aparece.Mas quando pulo indo pro lado ai funciona.
Só uma dúvida, no script na hora de fazer a animação mudar o scale animation.scale.x = direction . Poderia colocar -1 então? não entendi o porque usar direction
Muito bom, amigo. Me tira uma dúvida, por favor. Existe diferença entre atribuir um valor para uma variavel usando := (dois pontos + igual) e somente o = (igual)?
Sim, existe. Quando usamos := indicamos para a godot que o tipo aceito da variável é igual ao atribuído. Por exemplo, se colocar var meu_texto := "texto" informamos para a godot que a variável só aceita string. Se colocar var meu_numero := 10, indicamos que só é aceito inteiro. Eu explico isso melhor no curso da Hotmart.
Você pode ir em Project / Project Settings e na seção Run, escolher a cena que será a principal. Se não der nem para abrir na Godot, aí teria que ajustar o código do arquivo project
eu fiz a animação um pouquinho diferente< fiz desta forma: if velocity.y!=0: texture.play("Jump") Ja que eu quero que toque a animação de pulo quando ele estiver caindo tambem, não só quando ele pula
mano, tu me salvou. eu tava tentando fazer com que a animação de pulo do personagem tocasse mas não tocava por nada. ai eu vejo seu comentário que tem um código "mais preciso" sobre o pulo e conserta o meu problema. obrigado
eu usei a animação enquanto estiver caindo, só que é uma animação de "fall" ou seja, ele pula faz a animação "jump" e depois quando estiver caindo ele faz a de "fall"
Pow, estou usando a Godot 4 no Android, mas estou tendo problemas com os toques na tela. Nao consigo interagir com os objetos do projeto (posição, dimensão). Os toques na tela tá bugado.
Meu personagem continua correndo, ele tava bem mas quando fui fazer o vídeo do botão de pulo que você gravou e depois disso ele só corre e ainda o botão de pulo tbm não funcionou
Tutorial bem feito e facil de entender, porem estou com um problema em relção a textura do personagem, quando eu estou no modo editor fica tudo bem mas quando eu vou textar o jogo a textura do meu personagem fica esticada para os lados depois q eu ando.Tem como me ajudar com isso? Obs: utilizo o celular e um modelo de soldado como personagem.
Basta mudar em Project Settings> Input Maps e configurar cada tecla, mostramos isso também na série criando seu primeiro jogo na Godot e aqui fazemos isso quando criamos no pulo.
Ei Clécio, o meu personagem quando aperto as setas para andar e a barra de espaço pra pular, o personagem faz as animações certinho, mas, ele fica parado no lugar sem se mover. Oq devo fazer??
Na verdade no começo podemos tipar as variações se formos inferir valor a tipagem não é mais necessária. Nesse vídeo trazemos um pouco sobre GDScript: ua-cam.com/video/DfOWpW9uMxU/v-deo.html Sobre a tipagem falei em outros videos, tentei localizar mas não lembro qual era...rs
uma dúvida, no meu personagem quando eu adicionei a animation.scale.x = direction, ao iniciar e apertar a tecla para andar, ele desaparece, agora caso eu apague, ele volta ao normal, não sei se eu errei algo.
Oi Clécio, seus vídeos são muito bons e estão me ajudando muito, eu estou precisando de ajuda em uma coisa: eu coloquei como player do jogo um sprite 32x32 e não 16x16 quando fiz o personagem inverter a animação de acordo com a direção o personagem começou a ficar pixelado, eu queria saber se é por causa do formato 32x32 .
Estou tendo problemas com o funcionamento do script... Eu fiz meus próprios sprites, um de idle, um de pulo e um de andar. Mas quando eu fui copiar os códigos, estava falando que o termo "play" do "anim.play" não pode ser usado. Pode me ajudar??
Criar uma seleção exige alguns passos, nesse projeto não faremos seleção de personagem, teremos isso apenas na versão do CURSO pago, mas você pode adaptar o que fizemos na versão 3.5, ou aguardar que futuramente teremos videos de mecânicas isoladas mostrando esse passo a passo.
Godot 4.3 - Todas as minhas animacoes que tem 12 frames cada funcionaram (ainda nao entendi como controlar os frames relativo a subida e descida no jump), mas tive que deixar meu script igual ao do Clecio. O pulo parado anima normalmente, mas o pulo para frente ou para tras nao vai animar, pelos comentarios sera corrigido mais a frente. Eu nao sei se perdi alguma coisa mas o script quase original (so mudei o valor do pulo) nao veio com o : var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") ele era assim : extends CharacterBody2D const SPEED = 300.0 const JUMP_VELOCITY = -1200.0 func _physics_process(delta): # Add the gravity. if not is_on_floor(): velocity += get_gravity() * delta # Handle jump. if Input.is_action_just_pressed("ui_accept") and is_on_floor(): velocity.y = JUMP_VELOCITY # Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. var direction = Input.get_axis("ui_left", "ui_right") if direction: velocity.x = direction * SPEED else: velocity.x = move_toward(velocity.x, 0, SPEED) move_and_slide() e ficou assim: extends CharacterBody2D const SPEED = 450.0 const JUMP_FORCE = -1200.0 # Get the gravity from the project settings to be synced with RigidBody nodes. var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") var is_jumping := false @onready var animation := $anim as AnimatedSprite2D func _physics_process(delta): # Add the gravity. if not is_on_floor(): velocity.y += gravity * delta # Handle jump. if Input.is_action_just_pressed("ui_accept") and is_on_floor(): velocity.y = JUMP_FORCE is_jumping = true elif is_on_floor(): is_jumping = false
# Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. var direction = Input.get_axis("ui_left", "ui_right")
if direction !=0: velocity.x = direction * SPEED animation.scale.x = direction if !is_jumping: #if is_not jumping animation.play("run") elif is_jumping: #is_jumping == true animation.play("jump") else: velocity.x = move_toward(velocity.x, 0, SPEED) animation.play("idle")
move_and_slide() Se eu identar o pulo como no video, animacao nao funciona. Vou deixar como ele fez no video pois tive problemas na aula 9 e nao sei se esta relacionado. Caso nao esteja volto aqui pra reescrever o post.
Não é possível chamar o método “play” em um valor nulo Tô pensando ate agr como ele ta nulo Ja refiz o codigo de movimento todo pq eu tinha feito do zero e da maneira que eu fazia não mudava as animações porém agr ta assim e não faço idia do que fazer
Oi, tudo bem? A sprite é a mesma que estamos usando? se não for pode ser algo na criação do sprite em si, então não consigo dar um suporte sobre isso. Se for o mesmo, pode ser que você sem querer tenha alterado o scale em y, em vez de x quando movimentamos o objeto. Confere o script nessa parte por favor.
aqui pessoal se voces estiverem problemas com o algoritimo do video eu fiz um que funciona perfeitamente esta em c++ mas da pra entender veja como ficou : void godot::Player::_change_animation() { Vector2 velocity = get_velocity(); if (!is_on_floor()) { animation->play("jump"); return; } if (velocity.x != 0) { animation->play("run"); animation->set_flip_h(velocity.x < 0); } else { animation->play("idle"); } }
teve uma hora que eu fui programar pra ele correr mas n ia, aí depois de uma meia hora tentando achar o erro, eu vi que ao invés de um ponto, tinha uma vírgula, kkkk, precisa de atenção
Por mim está tudo bem que o vídeo não seja rápido. Oque acho importante é que seja bem explicativo e também compreensível para os novos GameDevs. A forma com que o Clécio apresenta os vídeos está de bom agrado para mim.
fodase
Cara, faço Ciência da Computação e estou com uma cadeira que usa Godot. Sua didática é excelente, continue fazendo o que faz. Parabéns!
Cara simplesmente espetacular, estou gostando tanto, mas tanto, de aprender por seus vídeos que até estou com vontade de ensinar em escola pública a galerinha a usar a Godot.
Opa, tudo jóia?
Que legal que está curtindo. Se vc for de São Paulo e desejar. Posso ajudar nessa implementação e ajudar a levar esse conhecimento às escolas também.
Muito bom cara Começei a programar a 3 dias e ja aprendi muito com vc, TMJ.
tive um problema com pulo, o personagem ao pular sem pressionar para andar ele pulava corretamente, porém quando andava e pulava ao mesmo tempo ele não executava corretamente o pulo, então fiz uma mudança que resolveu pra mim nessa etapa:
if direction != 0:
velocity.x = direction * SPEED
animation.scale.x = direction
if not is_jumping:
animation.play("run")
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
animation.play("idle")
if is_jumping:
animation.play("jump")
ao invés de ter if -> elif -> else, eu tirei o elif do is_ jumping e passei pro final como um "if" pra que assim a animação do jump aconteça ao pular e andar ao mesmo tempo.
me ajudou mto man! obrigado!
Me ajudo também bastante porém ele não volta a posição "idle" novamente não sei pq 😢
Muito obrigado!
meu herói
Isso faz q quando agente tiver pulando nao ande e algumas vezes e bom ter isso pra exemplo: subir pra em algo
top demais, até agora tá dando tudo certo
Eai cara, como vai? mano, seus vídeos são muito bem explicados, eu e meus amigos estamos vendo suas aulas todas para conseguir fazer nosso primeiro jogo, e tu tirou a gente do escuro, a gente não tinha ideia de onde começar e você só nos primeiros vídeos já nos ajudou, eu mandei um pix pra ajudar você com seus conteúdos, adorei seu trabalho e boa sorte pra você meu mano.
cara comecei a programar ontem e com seus vídeos já tenho um protótipo quase perfeito kkkkk, muito bom o curso, parabéns
Fiz um curso na faculdade hj só e vim pesquisar mané vc explica muito muito bem parabéns e obg pelo tutorial ❤
Mais uma aula perfeita! #GODOT4PLATFORM
aula muito boa, obrigado pela explicação.
Eu estava extremamente ansioso por está aula
ta maravilhoso, o unico que sabe realmente ensinar!
cara, que conteudo bom!
Consigue fazer sim, Indiquei para alguns amigos meus e tambem estao acompanhando!
muito bom cara, to desde o primeiro ep vendo como funciona e consegui fazer exatamente igual. além de que a interface do Godot 4.0/4.1 é muito intuitiva
Clécio, vc esta me ajudando muito nesse novo godot 4.0. estou finalmente entendendo a godot. La na frente em algum ep dessa serie vc poderia ensinar a passar de fase sem a tela preta como transição? se guimos igual as aulas da godot 3.5 vc fara um vide de transição com tela preta e troféu ne? poderia fazer tbm uma transição de só mudar a tela sem looading ?
muito top e fácil de seguir!
Uma observação, Clécio, em 9:50
Quando vc atribui scale.x = direction, vc está pensando num usuário com teclado né, ou um D-pad de algum controle. Mas se o player estiver usando um joystick, o valor de direction será um número entre 0 e 1, dependerá da força do joystick. Nesse caso, a sprite do personagem poderá se deformar no caso dum usuário com joystick kkk. Talvez seja mais seguro vc meter mais um if ou pensar num outro método pra evitar esse eventual problema.
Em 12:12, quando vc comenta na linha 29, vc não está querendo escrever na vdd "if not is_jumping"?
Também a sua indentação na linha 31 para "elif is_jumping:" não deveria estar com um TAB a mais?
No mais, bom trabalho! #godot4platform
o meu está deformando o personagem, como eu poderia resolver esse problema
@@eliasprimojunior5224 a variável "direction" é um número decimal entre 0 e 1 (0 e 1 inclusos) quando vc usa controle analógico. um jeito bem direto de resolver isso é meter mais um bloco "if" para verificar para que lado você está pressionando o joystick. substituindo
animation.scale.x = direction
por
animation.scale.x = int(direction + 0.99)
vc garante que animation.scale.x será um número inteiro (1 ou -1) toda vez que vc mexer no joystick para a esquerda ou para a direita. como tem que verificar isso para os dois lados, vc teria que refazer uma parte do seu bloco "if". Troque isto:
if direction != 0:
velocity.x = direction * SPEED
animation.scale.x = direction
if is_jumping == false:
animation.play('run')
elif is_jumping == true:
animation.play('jump')
por isto:
if direction > 0:
velocity.x = direction * SPEED
animation.scale.x = int(direction + 0.99)
if is_jumping == false:
animation.play('run')
elif is_jumping == true:
animation.play('jump')
elif direction < 0:
velocity.x = direction * SPEED
animation.scale.x = int(direction - 0.99)
if is_jumping == false:
animation.play('run')
elif is_jumping == true:
animation.play('jump')
Eu não tenho joystick analógico pra testar, se funcionar avisaê kkk
@@gasparmc vlw, eu segui o código dele só acrescentei /2 na frente do direction, além da direção estava alterando o a escala, tipo dobrava de tamanho ai eu so dividi por 2 kkk
@@eliasprimojunior5224 resolvi isso só multiplicando o valor da escala * a direção para não deformar. Exemplo: animation.scale.x = 0.398 * direction
@@gasparmcn entendi qual código eu devo substituir?
Ótimo tutorial,estou acompanhando todos eles, se possível faça um vídeo no Godot 4.0 mobile, do mesmo vídeo
pra quem esta com problema no pulo parado, replica o if do !is_jumping com o elif is_jump no ultimo else mas substituindo o "run" por "idle". Quando pula parado a direction é zero e n tem lógica pra esse cenário no código na versão 4.3
Obrigado vou ve se funciona
valeu zé, tá funcionando certinho agora
Muito didático! Pretendo seguir seus tutoriais!!
viva clécio pai de nós todos,
#GODOT4PLATFORM
Estou adorando os tutoriais e o poder e facilidade da Godot4
Gradativamente vamos evoluindo
muito bom cada serie ensina animar de um jeito diferente achei que o animated sprite nao dava pra colocar no animation player so um sprite normal
Muito bom !! Parabéns !!
prof, não sei se vai ser concertado em versões futuras, mas, quando eu estou correndo e pulo ele continua correndo no ar durante o pulo (animação de run), mas ando paro, pulo e ando pra frente no ar fica normal (animação de jump)... foi algo que fiz errado ou é um "bug" que vai ser corrigido mais pra frente
O meu está assim também, vô ver se consigo consertar aqui, pior que não sei nem mecher direito 😅
o meu tbm véi kdskd
A mesma coisa anda acontecendo comigo
Todo mundo na mesma
Serio, quando eu pulo tenho que andar para aparecer a animação de pulo.
Você é foda meu mano
Excelente Curso Clécio, muito bom, estou pegando de forma rápida e dinâmica , até agora só o personagem que na hora que vai virar para Left ele distorce a sprite kkkk mas top, indo muito bem!
Você ajuda demais
Em vez de "$anim" na referencia, eu tive q declarar como AnimatedSprite mesmo, tava dando algum erro estranho de "Not found" quando executava, enfim deu certo graças a essa correção q fiz.
Você renomeou o nó de animação?
pequena mudança que permite rodar a animação quando pular parado ou cair
if direction != 0:
velocity.x = direction * SPEED
animation.scale.x = direction
if !is_jumping:
animation.play("running")
else:
animation.play("jump")
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
if is_jumping or velocity.y > 0: # Se estiver pulando ou subindo
animation.play("jump")
else:
animation.play("idle")
para quem sofre com o problema do personagem ficar esticado quando anda pros lados. eu tinha esse problema mas eu resolvi assim
if direction == 1:
animation.scale.x = (o scale x da sua animação)
else
animation.scale.x = (o scale x da sua animação negativo)
Cara me explica, como assim x da sua animação????
@@ladislaugameplay12 vai na animaçao do teu player, no inspetor, dai aperta no transform a ali tem uma opiçao chamada scale x
é horrivel explicar em comentario :v
Aonde q coloca
o meu da erro, aonde que coloca?
@@capivaravesga2 testa com -1, -2, -3.... uma hora tu acerta KKK ta la no transforme do teu personagem
Show, professor
Top demais!!!
o jumping tem um pequeno deley quando pla pra frente meio que ainda aparece a animação de correr
Opa Clécio, tudo certo?
Top demais suas aulas, muito explicativa e simples de entender. Parabéns!!
Só estou com um problema na movimentação, refiz todo o processo do vídeo porém ao mexer no script e colocar o código que você passou ao tentar iniciar o jogo ao apertar a setinha para qualquer um dos lados o jogo simplesmente fecha e informa que o play não pode ser igual a null.
Dei uma olhada e vi que o AnimationPlayer está com um campo nulo porém não consigo selecionar opções para definir um valor e evitar o erro.
Poderia me ajudar com essa questão?
to com o mesmo problema, conseguiu descobrir mano?
fala Clécio fiz, tudo certinho igual vocês. Porem tive uma divergência quando pulo no lugar ele não troca para o sprite do pulo, mas quando estou me movendo sim... kkkk
refiz e deu certo, não sei onde errei kkkkk
@@Johanrsp help-me
Tive um problema quando tava tentando programar de quando eu pulava o meu personagem continuava andando pra frente sem parar, ate que eu vi que o problema era que precisava de espaço nos ifs pra funcionar e nao consegui compreender de como funciona direito a programação no godot
estou com o mesmo problema, como você resolveu?
Eu tive problemas com a animação de pulo, pois o a animação de pulo do personagem só rodava se eu apertasse as teclas de esquerda ou direita e a tecla de pular ao mesmo tempo.
acelerar o tutoria pra 2x melhorou 200%
Excelente aula! Uma dúvida: no caso do vídeo a animação do pulo tem apenas um frame. E se fossem mais frames? No jogo que estou fazendo o personagem pula, mas tem os frames de antecipação e acomodação tb, para deixar a animação mais fluida, porém ao fazer como no exemplo do vídeo, a animação só começa se eu apertar apenas o botão de pulo. Se o personagem estiver andando e eu apertar junto o pulo (o tal correr e pular) ele não aciona a animação de pulo, ele continua correndo no ar. Como corrigir e sincronizar o pulo quando existem mais frames na animação? Alguém sabe?
Em vez de "if is_jumping" use "if direction != 0 and velocity.y ==0:
animation.play("run")
elif velocity.y != 0:
animation.play("Jump")
else:
Animation.play("idle")
Qlqr dúvida meu @ é
@charme_4422
Estou utilizando a godot no Android, e consegui fazer os controles virtuais graças a você, mas infelizmente não estou conseguindo fazer as animações tocarem corretamente, eu consegui fazer a animação de andar quando o controle é precionado, mas a animação de parado nem começa e quando ele para de andar ela também não acontece, e a de pulo é a pior, tentei fazer como esta no vídeo e não deu certo ele continuou vom a animação de andar, porém quando eu pulava e apertava pra andar ele caia e ficava deslizando no chão, ele literalmente andava sozinho de forma esquisita e vc só conseguia mudar a direção dele. Espero q isso seja um bug e que seja resolvido logo, ja q fiz tudo certo como está no vídeo. Vou ignorar a animação por enquanto e vou fazer o resto ( ja q estou fazendo um jogo simples para um trabalho de escola ).
Edit: Eu consegui fazer o player executar a animação dele parado corretamente, acho q o problema era como a animação estava nomeada, vou tentar a de pulo e volto aq
ate na data desse comentario as atualizacoes mudaram muita coisa foram corrigidos na parte dos botoes touch que estao todos funcionais e nao precisa de correcao no script, esta como ui_accept o pulo, entre outras melhorias que a 20 dias atras nao tinham foram tambem corrigidos muitas coisas queso conseguia fazer pelo script estao visuais agora.
Muito bom!
Professor, a animacao de jump nao vai de jeito nenhum. Quando eu boto a animacao de pulo no codigo, quando eu início o jogo a animacao de pulo nao funciona e quando eu clico para andar para esquerda ou direita, o boneco nao para de andar mais, mesmo eu parando de mexer no joystick... saberia como resolver?
Quando eu uso a formular animation.scale.x = direction meu personagem fica esticado não consigo resolver
O meu também kkkkkkk😊
Só que consegui resolver!
Tenta usar "animation.flip_h = true" para a esquerda, e "animation.flip_h = false" para a direita
Gostei muito do video. Você tem curso? Gostaria de aprender mais sobre godot, atualmente eu estou fazendo umas brincadeiras com javascript, fazendo minha propria engine. Mas eh soh pra aprender.
Meu proximo passo seria usar unity3d, mas tenho gostado do que tenho visto dessa engine.
Temos um curso lá no Hotmart hotmart.com/pt-br/marketplace/produtos/desenvolvimento-de-jogos-na-godot-4/X80270599K?ori=1&gclid=Cj0KCQjwxYOiBhC9ARIsANiEIfYedjf42RnFOe_3Q3hj-4NTumDDbC6mcpEguMt5WeEsx8H19fxQ5FcaApkuEALw_wcB lá tem módulos de programação GD Script e tbm modelos de jogos para evoluir na godot.
Grande Clécio! Na sua opinião, tornar certas palavras-chave em anotações (@onready, @export, etc.) objetiva tornar a linguagem GDScript de uso mais geral? Quem sabe para desenvolvimento de outras aplicações além de jogos?
Joia!
Professor, na hora de meu personagem virar, ele fica achatado dos lados, sua resolucao muda, tem alguma solucao?
Estou passando trabalho! Estou tentando seguir a playlist só que utilizando C# da pouco dificil de adaptar.
Eu tava tomando um PAU pra godot nas animações,finalmente esse dia chegou
oi, no início do vídeo deu pra ver que na parte de modificar a animação do player, por volta de 1:02, estava sem as linhas vermelha, verde e roxa, queria saber como faço pra ocultar do meu também. Vídeo incrivel!
#GODOT4PLATAFORM,top
Com licença pode me ajudar, eu fiz exatamente o que se fez npara a animação jumping, mas quando coloco para rodar o player fica travado na animação
Eu não estao à entendre tudo eu fiquei no scale o que eu faço ?
Top!
Alguem pode me ajudar,ta tudo funcionando mais quando eu pulo sem mexer pros lado,ou seja só aperto o espaço ai quando faço isso a animação de pulo nao aparece.Mas quando pulo indo pro lado ai funciona.
clecio fiz uma animacao propria 2d so que na hora de testa ela nn fica animando no mesmo lugar ela muda
Só uma dúvida, no script na hora de fazer a animação mudar o scale animation.scale.x = direction . Poderia colocar -1 então? não entendi o porque usar direction
Sim, poderia, mas usamos a variável, pq ela muda conforme nosso input, dessa forma não fica uma valor fixo, mas o que for ''inputado''
como resolver o problema da animação de andar continuar quando pula?
Quando adcionei a função de pular, a animação de idle desapareceu, e só aparecia a animação de pular e andar, além que ele não pulava parado
Oi. Tudo joia, dá uma conferida nos if e else pode ter algo diferente do código que não está permitindo voltar para o idle
Pode me ajudar?
Quando coloco
If !is_jumping:
Da erro
no nó de animation sprite 2d tem uma booleana chamada flipH, será que nn é útil nn?
Muito bom, amigo. Me tira uma dúvida, por favor. Existe diferença entre atribuir um valor para uma variavel usando := (dois pontos + igual) e somente o = (igual)?
Sim, existe.
Quando usamos := indicamos para a godot que o tipo aceito da variável é igual ao atribuído. Por exemplo, se colocar var meu_texto := "texto" informamos para a godot que a variável só aceita string. Se colocar var meu_numero := 10, indicamos que só é aceito inteiro. Eu explico isso melhor no curso da Hotmart.
te amo
Mais 1 escrito vlw!
oi amigo poderia me ajudar..toda vez que tento abrir um projeto qeu fiz da esse erro( can,t run project: no main scene defined ) como posso resolver?
Você pode ir em Project / Project Settings e na seção Run, escolher a cena que será a principal. Se não der nem para abrir na Godot, aí teria que ajustar o código do arquivo project
eu fiz a animação um pouquinho diferente< fiz desta forma:
if velocity.y!=0:
texture.play("Jump")
Ja que eu quero que toque a animação de pulo quando ele estiver caindo tambem, não só quando ele pula
mano, tu me salvou. eu tava tentando fazer com que a animação de pulo do personagem tocasse mas não tocava por nada. ai eu vejo seu comentário que tem um código "mais preciso" sobre o pulo e conserta o meu problema. obrigado
O meu quando eu coloco animação de andar, o jogo crash 😢
eu usei a animação enquanto estiver caindo, só que é uma animação de "fall" ou seja, ele pula faz a animação "jump" e depois quando estiver caindo ele faz a de "fall"
#GODOT4PLATFORM, tudo certo aki, ainda bem q sei logica python e um pouco de c-sharp
Pow, estou usando a Godot 4 no Android, mas estou tendo problemas com os toques na tela.
Nao consigo interagir com os objetos do projeto (posição, dimensão).
Os toques na tela tá bugado.
Meu personagem continua correndo, ele tava bem mas quando fui fazer o vídeo do botão de pulo que você gravou e depois disso ele só corre e ainda o botão de pulo tbm não funcionou
Tutorial bem feito e facil de entender, porem estou com um problema em relção a textura do personagem, quando eu estou no modo editor fica tudo bem mas quando eu vou textar o jogo a textura do meu personagem fica esticada para os lados depois q eu ando.Tem como me ajudar com isso?
Obs: utilizo o celular e um modelo de soldado como personagem.
O meu tbm tá assim, vc conseguiu ajeitar?
Como faço para colocar para o boneco andar quando aperta "w, a, s, d" em vez das setas ?
Basta mudar em Project Settings> Input Maps e configurar cada tecla, mostramos isso também na série criando seu primeiro jogo na Godot e aqui fazemos isso quando criamos no pulo.
Ei Clécio, o meu personagem quando aperto as setas para andar e a barra de espaço pra pular, o personagem faz as animações certinho, mas, ele fica parado no lugar sem se mover. Oq devo fazer??
Oi, tudo bem... Envia o script para podermos dar uma conferida, pfv.
Outra duvida, porque quando você declara as variaveis no escopo em cima coloca := e quandov ai manipular é apenas = ? é algo da sintaxe do script ?
Na verdade no começo podemos tipar as variações se formos inferir valor a tipagem não é mais necessária. Nesse vídeo trazemos um pouco sobre GDScript: ua-cam.com/video/DfOWpW9uMxU/v-deo.html
Sobre a tipagem falei em outros videos, tentei localizar mas não lembro qual era...rs
eu fiz tudo certinho mas as vezes ele ainda pula mas correndo, queria corrigir isso, como eu faço ?
Não sei pq,mas o meu da erro na parte do is_jumping e tals
uma dúvida, no meu personagem quando eu adicionei a animation.scale.x = direction, ao iniciar e apertar a tecla para andar, ele desaparece, agora caso eu apague, ele volta ao normal, não sei se eu errei algo.
Tbm to com esse problema resolveu aí?
Galera estou com um problema de que só toca o primeiro frame da animação "run", alguém sabe como faz pra consertar?
Estou no godot 4.3
Oi Clécio, seus vídeos são muito bons e estão me ajudando muito, eu estou precisando de ajuda em uma coisa:
eu coloquei como player do jogo um sprite 32x32 e não 16x16 quando fiz o personagem inverter a animação de acordo com a direção o personagem começou a ficar pixelado, eu queria saber se é por causa do formato 32x32 .
Obrigado pelo comentário, Mike!
Pixelado ou desfocado você quis dizer, mandar um print lá no servidor do discord para a gente poder ajudar.
Estou tendo problemas com o funcionamento do script... Eu fiz meus próprios sprites, um de idle, um de pulo e um de andar. Mas quando eu fui copiar os códigos, estava falando que o termo "play" do "anim.play" não pode ser usado. Pode me ajudar??
não consigo te ajudar muito com isso mas já tentou entrar na log da godot?
Alguém tem o código completo o meu deu erro em algo e eu não sei qual parte erre.
o meu deu erro porque eu meio que mesclei o tab e o espaço alguem me ajuda
Não funcionou quando movia o personagem ficava parado e logo quando entrava mostrava a animação de jump sem eu pular
Como assim AnimationSprite2d na versão 4?
show
N sei se é pq estou no no mobile mas a animação de pulo não está iniciando
Fala clecio ajuda eu como que faço uma seleção de personagem nesse projeto ?
Criar uma seleção exige alguns passos, nesse projeto não faremos seleção de personagem, teremos isso apenas na versão do CURSO pago, mas você pode adaptar o que fizemos na versão 3.5, ou aguardar que futuramente teremos videos de mecânicas isoladas mostrando esse passo a passo.
@@clecioespindolagamedev tudo bem mano obrigado
eu fiz tudo mas quando eu pulo correndo a animação de pulo não toca
Godot 4.3 - Todas as minhas animacoes que tem 12 frames cada funcionaram (ainda nao entendi como controlar os frames relativo a subida e descida no jump), mas tive que deixar meu script igual ao do Clecio. O pulo parado anima normalmente, mas o pulo para frente ou para tras nao vai animar, pelos comentarios sera corrigido mais a frente. Eu nao sei se perdi alguma coisa mas o script quase original (so mudei o valor do pulo) nao veio com o : var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
ele era assim :
extends CharacterBody2D
const SPEED = 300.0
const JUMP_VELOCITY = -1200.0
func _physics_process(delta):
# Add the gravity.
if not is_on_floor():
velocity += get_gravity() * delta
# Handle jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_VELOCITY
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var direction = Input.get_axis("ui_left", "ui_right")
if direction:
velocity.x = direction * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
move_and_slide()
e ficou assim:
extends CharacterBody2D
const SPEED = 450.0
const JUMP_FORCE = -1200.0
# Get the gravity from the project settings to be synced with RigidBody nodes.
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
var is_jumping := false
@onready var animation := $anim as AnimatedSprite2D
func _physics_process(delta):
# Add the gravity.
if not is_on_floor():
velocity.y += gravity * delta
# Handle jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_FORCE
is_jumping = true
elif is_on_floor():
is_jumping = false
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var direction = Input.get_axis("ui_left", "ui_right")
if direction !=0:
velocity.x = direction * SPEED
animation.scale.x = direction
if !is_jumping: #if is_not jumping
animation.play("run")
elif is_jumping: #is_jumping == true
animation.play("jump")
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
animation.play("idle")
move_and_slide()
Se eu identar o pulo como no video, animacao nao funciona. Vou deixar como ele fez no video pois tive problemas na aula 9 e nao sei se esta relacionado. Caso nao esteja volto aqui pra reescrever o post.
Não é possível chamar o método “play” em um valor nulo
Tô pensando ate agr como ele ta nulo
Ja refiz o codigo de movimento todo pq eu tinha feito do zero e da maneira que eu fazia não mudava as animações porém agr ta assim e não faço idia do que fazer
Confere o nome do nó Animation Player, ou o nome da variável, se estão corretos. Lembrando que a Godot diferencia maiúsculas de minúsculas.
bom dia, estou com um problema em que ao movimentar o personagem, a sprite estica
nao sei como resolver, ja tentei resolver de varias formas
espero resposta
Oi, tudo bem? A sprite é a mesma que estamos usando? se não for pode ser algo na criação do sprite em si, então não consigo dar um suporte sobre isso. Se for o mesmo, pode ser que você sem querer tenha alterado o scale em y, em vez de x quando movimentamos o objeto. Confere o script nessa parte por favor.
coseguiram rsolver?
aqui pessoal se voces estiverem problemas com o algoritimo do video eu fiz um que funciona perfeitamente esta em c++ mas da pra entender veja como ficou :
void godot::Player::_change_animation()
{
Vector2 velocity = get_velocity();
if (!is_on_floor()) {
animation->play("jump");
return;
}
if (velocity.x != 0)
{
animation->play("run");
animation->set_flip_h(velocity.x < 0);
}
else {
animation->play("idle");
}
}
Meu personagem não se mexe depois que eu coloquei o run nos scripts e não apareceu que tava com erro
me chama lá no instagram para a gente ver a tela e o que pode ser, pfv
tive dúvidas e entrei no seu servidor do Discord pra enviar detalhes - pode checar tudo e me ajudar por favor?
Alguém fez essa na 4.3? Não sei porque o personagem some se não estiver com algum comando de ir para os lados, na 4.2 funcionou normal
teve uma hora que eu fui programar pra ele correr mas n ia, aí depois de uma meia hora tentando achar o erro, eu vi que ao invés de um ponto, tinha uma vírgula, kkkk, precisa de atenção
@@martacatarino1542 kkkk. Acontece, que bom que encontrou o problema e corrigiu. Boa