Тёмный

Jogo com JavaScript #04: Cenário infinito e animando o passarinho com frames 

Mario Souto - Dev Soutinho
Подписаться 89 тыс.
Просмотров 14 тыс.
50% 1

Já imaginou como aqueles jogos que ficam se repetindo infinito são feitos? Sabia que o resto da divisão é a chave pra entender a mecânica por trás? Então solta o play e vamos juntos fazer isso e entender o processo todo! 😮
🔸 Código do Vídeo: #DevSoutinho #JogoComJavaScript
■ github.com/omariosouto/flappy-...
🔸Quer ver mais conteúdos meus? Segue ai!
■ / omariosouto
■ / omariosouto
■ t.me/hipstersfrontend
🔸Sabia que eu tenho séries na Alura também?
■ www.alura.com.br/webseries/fr...
■ www.alura.com.br/webseries/gi...

Наука

Опубликовано:

 

16 апр 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 84   
@DevSoutinho
@DevSoutinho 4 года назад
Perdão pelo atraso, tivemos algumas tretas na edição mas ta ai!!! 🔸 Esse é o vídeo #04, mas o resto da playlist tá aqui também: ru-vid.com/group/PLTcmLKdIkOWmeNferJ292VYKBXydGeDej
@TheMycurse
@TheMycurse 3 года назад
Parceiro conteúdo muito bom vc explica muito bem fora a qualidade do próprio vídeo em si edição etc .. te desejo muito sucesso
@FilipeDeschamps
@FilipeDeschamps 4 года назад
Essa playlist ta muito delicinha, aguardando pelos próximos vídeos 😍
@DevSoutinho
@DevSoutinho 4 года назад
Aaaaaaaaa, então só cola pq saiu! ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-BJSFJNlRpp0.html
@christianguimaraes5065
@christianguimaraes5065 3 года назад
muito boa as aulas, a logica matematica que é o mais dificil de assimilar kkk mas como toda programação a repetição que fará você entender mt bem com o tempo! mt bom professor
@RodrigoAdriano
@RodrigoAdriano 2 года назад
Pra quem nao entendeu o esquema do "resto da divisão" , sempre que tiver um numero X % Y , o resultado sempre sera X, menos quando os dois valores forem o mesmo, ai o resultado sera 0. No caso do jogo, sempre que X dele (o chao) chega na pos -112, ele bate com o o Y (112) retornando o valor Zero.
@DevSoutinho
@DevSoutinho 2 года назад
Booooa!!!! valeu pela explicação \o
@marinabalbino6296
@marinabalbino6296 3 года назад
Que delicia de série hein
@DevSoutinho
@DevSoutinho 3 года назад
Opaaa que bom que curtiu!!! Valeu demais pro feedback em comentário 😁😁😁 da um quentinho no coração ler hahahaha depois manda o link do github /o
@JBPaizz
@JBPaizz 2 года назад
Que da hora esses videos!! Parabéns, prende a atenção da gente!!
@DevSoutinho
@DevSoutinho 2 года назад
vaaaaaleu!!! que bom que curtiu
@rafaasimi
@rafaasimi 4 года назад
Show... demorou mais saiu !! ✌️👏
@DevSoutinho
@DevSoutinho 4 года назад
Siiiim!!! Agora só seguir os passos e aprender a mover os cenários e animar o passarinho \o
@jonathasmontenegro8310
@jonathasmontenegro8310 4 года назад
Boa! Dei uma incrementada no meu código já, mas estou no aguardo do próximo vídeo! :)
@DevSoutinho
@DevSoutinho 4 года назад
Booooa!!! quero ver em 👀
@gabrieldias3663
@gabrieldias3663 3 года назад
Fica mais fácil de entender quando vc n corta a construção do código, minha opinião só 👊🏻
@abrahamfelix1837
@abrahamfelix1837 2 года назад
Video muito bom!!!
@nycolexavier7844
@nycolexavier7844 2 года назад
obrigada pela aula!!!
@Jack-ss4re
@Jack-ss4re 5 месяцев назад
Sei que faz tempo que o vídeo foi lançado mas me surgiu uma dúvida sobre jogos no geral: Para ficar mais fácil de entender vou pegar como exemplo a velocidade do chão. Nós alteramos a velocidade do chão a cada iteração do loop, mas em computadores mais modernos, a iteração é feita mais rápida, isso deixaria a velocidade do nosso chão diferente para diferentes computadores… mas não é o que eu costumo perceber… por exemplo ao jogar em computadores mais antigos e depois em computadores mais novos, não consigo notar alguma diferença na jogabilidade nem na velocidade que o jogo ocorre(a não ser que o jogo esteja rodando menos que 30fps haha) Não sei se deu pra entender mas a ideia é que em computadores mais potentes, os loops serão feitos mais rápidos e isso tornaria a fluidez do jogo mais rápida e impactaria na jogabilidade: o passarinho iria cair mais rapido, o chão e os túneis se moveriam mais rapido, etc… minha dúvida é: como o computador/browser/app resolve essa questão?
@devHB
@devHB 2 года назад
D4.2 - maratona do canal
@simpaticao82
@simpaticao82 8 месяцев назад
Show!!!😁
@bartsilva5513
@bartsilva5513 2 года назад
muito agradecido pelo seu canal que é fantástico, estou adorando, eu gosto de mexer nos códigos criar ostras formas a título de desafio mesmo, bom javascript pra mim é novidade, estou estuando não tem um mês... bom as com esses professores fica fácilll srsrsrsrsrs na parte de bater asas eu fiz o seguinte adicionei ao objeto do pássaro 3 elementos ( xframe ) - conta de 0 a 4 para selecionar que passo desenhar ( xfreio ) - determina de quanto e quanto vou liberar um novo desenho ( xbaterdeasa ) - é um contador que vai servir para comparar com o xfreio quando esse xbaterdeasa for igual a xfreio libera um desenho novo movimentos: [ { spriteX: 0, spriteY: 0}, // asa pra cima { spriteX: 0, spriteY: 26}, // asa no meio { spriteX: 0, spriteY: 52}, // asa pra baixo { spriteX: 0, spriteY: 26}, // asa no meio ], atualizaOFrameAtual(){ if (flappyBird.xbaterdeasa == flappyBird.xfreio){ flappyBird.frameAtual = flappyBird.xframe; flappyBird.xframe++; if (flappyBird.xframe > flappyBird.movimentos.length-1 ){ flappyBird.xframe = 0; // reseta o indice para o desenho } flappyBird.xbaterdeasa=0; // reseta o contador }else { flappyBird.xbaterdeasa++; // incrementa o contador de tempo para bater asa } no objeto do flappyBird ficou assim: gravidade: 0.25, velocidade: 0, xframe:0, //
@DevSoutinho
@DevSoutinho 2 года назад
Que massa!!!!!!
@luisalberto8597
@luisalberto8597 3 года назад
Muito bom! Mas só um pedido, se conseguires evitar de dar essas aceleradas no vídeo (1:51). Mesmo sendo algo que já tinhas feito antes, têm gente meio burra que se perdeu nessa parte (eu) ksksksksk.
@Rafaelgodoyebert
@Rafaelgodoyebert Год назад
Eu daushdbaushdas
@rogeriopst450
@rogeriopst450 4 года назад
opa. vlw d+. curti d+. estou no aguardo dos proximos e do 3d. hauhahua qdo for falar de colisao, fiquei sabendo q um dos mais aconselhados algoritmos eh o quadtree, pode falar dele e usá-lo de repente? parabens.
@DevSoutinho
@DevSoutinho 4 года назад
Cara, vou manter o suspense hahaha mas o quadtree é um dos mais usados sim :) pelo menos no que eu já vi até hoje ahshsh sobre os 3d segura a emoção que uma hora vem /o
@oberdanorris
@oberdanorris 2 года назад
Opa, só vendo essa série agora! Que massa! Tô com algumas frustrações enquanto às colisões, os sprites as vezes ultrapassam as colisões dependendo da velocidade da queda (por exemplo) ou do ângulo em que ele colide. Vou tentar implementar o Collide 2D pra ver se consigo resolver esses "problemas" visuais e atualizo aqui caso consiga!
@DevSoutinho
@DevSoutinho 2 года назад
Fico no aguardo!
@emersongrtcg
@emersongrtcg 4 года назад
Na parte de fazer o chão voltar, por que não fazer simplesmente um if? Tipo: if (chao.x
@DevSoutinho
@DevSoutinho 4 года назад
Realmente, ficaria bem mais fácil mandar um: atualiza() { const repeteEm = chao.largura / 2; if (chao.x
@wallyssoms3116
@wallyssoms3116 4 года назад
Finalmente, achei que só meus netos assistiram esse vídeo..
@DevSoutinho
@DevSoutinho 4 года назад
asuhsauhshuasahuuh foi mal, demorou mas saiu! Espero que tenha curtido \o
@fidelukaspz_ytb
@fidelukaspz_ytb 4 года назад
Manda salve meu consagrado!!!
@DevSoutinho
@DevSoutinho 4 года назад
Saaaalve meu consagrado!!!!!! \o/
@lucasmotta5085
@lucasmotta5085 4 года назад
Segundooo hahaha
@DevSoutinho
@DevSoutinho 4 года назад
assahuushahsauuah quaaase foi o primeiro
@mariolo5559
@mariolo5559 4 месяца назад
Estou gostando demais desta sua playList, mas tenho uma duvida... na verdade um problema... meu código fica executando o loop muito mas muito rápido. alguém tem alguma ideia doque pode ser ?
@matheus3526
@matheus3526 2 года назад
Acha uma boa aprender javascript para criar jogos 2d? Quando pesquiso ou converso com alguém sobre isso, todos dizem para eu estudar C# e uma Unity da vida, mas queria muito aprender web dev e criar jogos 2d, acha que estou viajando?
@danielcorreia313
@danielcorreia313 4 года назад
Tá perdoado! Ficou muito bom! Tem alguma dica de como entender essa lógica da repetição aí? Não ficou muito claro pra mim não...
@DevSoutinho
@DevSoutinho 4 года назад
Opa, vou tentar fazer um post explicando ou algum outro material e firmo aqui o compromisso de voltar no seu comentário e ti trazer o material. Por hora, minha dica é tenta fazer igual eu fiz no vídeo e ir mandando uns console.log pra ir tentando entender onde repete e ver a parada que o número que ta sendo incrementado nunca vai ficar maior do que o nosso valor de controle que normalmente eu deixei na variável: "repeteEm"
@gustavo194l
@gustavo194l 4 года назад
up
@gu1am483
@gu1am483 4 года назад
Oi Mario!! Beleza?? Mano, queria te pedir um negócio... Tu poderia fazer uma série ensinando a programação básica e os seus conceitos?? Logicamente não explicando e ensinando tudo de programação, até porque para isso nós temos a Alura (hehe).
@DevSoutinho
@DevSoutinho 4 года назад
Cara tudo maravilhosa! Tu fala a parte de lógica de programação mesmo?
@gu1am483
@gu1am483 4 года назад
Cara acho que seria mais a parte teórica explicando o que em si é a programação, até porque tem as linguagens e tals... e as vezes as pessoas ( + pelo meu olhar) não sabem muito bem o que as linguagens são e as suas variedades!!
@geovajonnathacorreia559
@geovajonnathacorreia559 3 года назад
quem nasce com o dom de ensino é outros 500 ... se n tem noção das raivas q eu passo com alguns professores da udemy com suas didaticas horríveis e vem vc com aulas free em níveis premiums
@DevSoutinho
@DevSoutinho 3 года назад
Valeu pelo carinho!!!
@thiagolucena6846
@thiagolucena6846 2 года назад
Estou parado nessa parte após você criar a função criaChao fiz a alteração globais mas, o código está dando mensagem de erro, tela azul
@Rafaelgodoyebert
@Rafaelgodoyebert Год назад
Vê se tu não errou um ponto ou virgula, aqui eu errei um pequeno detalhe e deu ruim. Tb tem que dar 'return chao;' no final antes da ultima } da função chão, que ele não mostrou mt bem
@gustavo194l
@gustavo194l 4 года назад
faz um video organizando esses códigos , para eu poder ficar treinando ?
@DevSoutinho
@DevSoutinho 4 года назад
Cara vai ser provavelmente o último episódio da série antes dos Spin offs que vão rolar :)
@gustavo194l
@gustavo194l 4 года назад
@@DevSoutinho vai até qual episódio ?
@DevSoutinho
@DevSoutinho 4 года назад
Então eu tenho planejado o episódio 6. Um episódio 0 com umas dicas mais gerais e uns spin offs sobre jogos, que é um tópico que eu curto muuiito, mas não sei o quanto rola de trazer outras séries e tal. Por enquanto tô tocando a do Spotcast e da Pokedex com React
@airtonsanes1879
@airtonsanes1879 4 года назад
Primeirooo
@DevSoutinho
@DevSoutinho 4 года назад
Conquista Liberada: Alguém mandou first nos meus vídeos 😍brigadao cara ahuuhsahsua
@davisuper9858
@davisuper9858 2 года назад
mario souto o meu flappy bird ele cai e não reinicia
@angelogabriel4832
@angelogabriel4832 3 года назад
Eu fiz de outra maneira na lógica assim: chao.x = chao.x - 1 If(chao.x < -120){ chao.x = -10 }
@gustavolopesdasilva9012
@gustavolopesdasilva9012 3 года назад
Depois da parte do globais meu código parou de funcionar... oq posso fazer?
@lucasx4500
@lucasx4500 3 года назад
Depende cara, qual o erro ?
@gustavolopesdasilva9012
@gustavolopesdasilva9012 3 года назад
@@lucasx4500 Mano eu arrumei na cagada, juro
@DevSoutinho
@DevSoutinho 3 года назад
Qual foi o erro? me manda aqui pq ai da pra ajudar outras pssoas \o/ desculpa a demora
@lucasribeiro5238
@lucasribeiro5238 2 года назад
Meu pássaro ao invés de estar animado esta piscando a mesma posição do array, e no console log os números estão todos embaralhados, ele não cresce de 1 em 1
@lucasribeiro5238
@lucasribeiro5238 2 года назад
ele não renderiza as posições do array que não são a 0, mas o incremento esta funcionando.
@kauanemanuel1329
@kauanemanuel1329 4 года назад
Você usa o Vscode como instala? E como usa ele?
@DevSoutinho
@DevSoutinho 4 года назад
Opa cara eu uso ele sim! Da uma olhada nesse link: code.visualstudio.com/download se tiver qualquer dúvida só chamar \o
@kauanemanuel1329
@kauanemanuel1329 4 года назад
@@DevSoutinho Consegui configurar e baixar agora não estou conseguindo baixar as sprites ainda vou assistir o primeiro vídeo(Fiz a QuarentenaDev,e nunca tive contato com a programação antes dela)
@gustavo194l
@gustavo194l 4 года назад
o resto da divisão nunca vai ficar maior que o 112 ?
@DevSoutinho
@DevSoutinho 4 года назад
Foi um erro!!! No caso seria -112 pq no vídeo o número fica negativo :( mais a frente eu corrijo. A pegada é vc que vc cria um limitador do número e trabalha em cima dele pra operações que a base tende ao infinito, fez sentido? 👀
@AmigoDroid
@AmigoDroid 3 года назад
tô aprendendo mas não intendi esse código da animação
@AmigoDroid
@AmigoDroid 3 года назад
gloria a deus conseguir fazer funcionar ,mas não intendi muito bem
@rudiardialvarenga3018
@rudiardialvarenga3018 2 года назад
Essas acelerações no vídeo poderiam ser evitadas e em vez disso dividir o vídeo em capítulos.
@samuelsantanna6724
@samuelsantanna6724 3 года назад
cara eu to curtindo mas toda hora o video é acelerado, fica ruim de acompanhar !!
@Calbac-Senbreak
@Calbac-Senbreak 3 года назад
Com todo respeito, não era mais simples um mero if(chao.x == chao.largura / 2) { chao.x = 0}; ???
@DevSoutinho
@DevSoutinho 3 года назад
Então, eu prefiro ir criando as variáveis pra ir deixando mais claro alguns pontos, no final das contas se funcionar e vc entender lendo dps tá valendo /o
@Calbac-Senbreak
@Calbac-Senbreak 3 года назад
@@DevSoutinho Eu entendi sim, fiz algumas experiências com esse "truque" do resto pra ficar mais claro. O segredo é que sempre que a divisão é de um numero por ele mesmo, o resto é 0, daí reinicializa a variável. Enfim, achei massa o conceito, embora dê pra fazer "manualmente" com um if
@tiodavid4255
@tiodavid4255 3 года назад
Cara eu não entendi essa aula, você fez algumas coisas rápida de mais. na hora da Function CriarChao Você copiou o chão que já tinha e refez ??
@nycolexavier7844
@nycolexavier7844 2 года назад
também fiquei perdida nessa parte, tô agora tentando resolver isso
@jailsonmendes5731
@jailsonmendes5731 3 года назад
// [Chao] function criaChao() { const chao = { spriteX: 0, spriteY: 610, largura: 224, altura: 112, x: 0, y: canvas.height - 112, atualiza() { const movimentoDoChao = 1; const movimentoDoChao = chao.x - movimentoDoChao; }, desenha() { contexto.drawImage( sprites, chao.spriteX, chao.spriteY, chao.largura, chao.altura, chao.x, chao.y, chao.largura, chao.altura, ); contexto.drawImage( sprites, chao.spriteX, chao.spriteY, chao.largura, chao.altura, (chao.x + chao.largura), chao.y, chao.largura, chao.altura, ); }, }; return chao; } meu chão n se mexe, alguem sabe me ajudar pff ??
@carlosmagno8268
@carlosmagno8268 3 года назад
acredito que seja o ';' depois da chave acima do 'return chao;'
Далее
Лепим из пластилина🐍
00:59
Просмотров 549 тыс.
Sprite Animation in JavaScript
46:05
Просмотров 159 тыс.
FIZ O MESMO JOGO EM 4 ENGINES DIFERENTES!
12:53
Просмотров 1 млн
Jogo com JavaScript #02: Troca de Telas e Gravidade
14:54
PEDI PRA UMA IA CRIAR UM JOGO (e esse foi o resultado)
8:42
Criei um jogo SÓ usando um CELULAR
6:21
Просмотров 644 тыс.
Новодельный ноутбук Pocket386
1:16:17
How to Soldering wire in Factory ?
0:10
Просмотров 5 млн