Discuss Scratch

PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

COMO CRIAR GRAVIDADE NO SCRATCH



Oi pessoal! Tudo bem? Neste tópico, estarei ensinando a vocês a como criar gravidade em seus projetos do Scratch! Fiquem comigo até o final e acompanhem tudo o que vocês precisam saber!
~~

Primeiro (e obviamente), vá até ao editor do Scratch e selecione o ator que você quer adicionar a gravidade.



(Como isso é só um teste, eu escolhi o Scratch Cat para adicionar a gravidade, mas eu editei algumas coisas nele e no projeto para manter a organização.)



Então, crie uma variável (Apenas para este ator, pois a posição Y é só dele e de mais ninguém) para marcar a posição Y atual do ator.






~~

“Ué? Por que precisamos de uma variável que marca exatamente as posições Y do ator? Não podemos usar a posição Y dele direto?”

Bem, a ideia é fazer com que enquanto o ator estiver caindo, ele caia mais rápido, porque basicamente é assim que a gravidade funciona.
Se você, por exemplo, pegar um lápis aí agora e jogar ele no chão, vai perceber que enquanto ele cai ele cai mais rápido, e não dá pra fazer isso com a posição Y.

Por exemplo, se você fizer este script aqui, …



…ele vai diminuir apenas -10 pixels repetitivamente, rodando em um “frame repetido”, ou seja, não vai ir mais rápido enquanto ele estiver caindo pois ele cai os mesmos pixels repetitivamente. Então, quando falamos de gravidade no Scratch, nós não podemos usar diretamente a posição Y do ator. Combinado?

(Espero que minha explicação esteja verídica, pois eu não estudei muito sobre o que seria o Frame. TwT)

Então ele tem que ser uma variável porque, com este bloco, …



…nós podemos fazer com que ele adicione na sua posição Y o valor que está na variável, e enquanto ele estiver caindo, ele diminua o valor que está na variável. Desse jeito, ele vai estar caindo mais rápido, pois ele está diminuindo o valor da variável e também está adicionando este valor para ser a sua posição Y.

Aqui está uma demonstração:



(Faça com que a variável mude para 0 quando você clicar na bandeira, se não o projeto vai bugar e ele vai cair MUITO rápido.)

Vamos botar isto em prática?
~~

BOTANDO EM PRÁTICA


Faça com que se a bandeira verde for clicada, ele mude a variável que criamos para 0 e vá para cima (você decide qual será a posição dele).



Agora, faça com que ele sempre adicione o valor da variável na sua posição y. Assim:



Pronto! Fizemos o script de gravidade! Agora ele vai cair mais rápido de acordo com o valor da variável!
Agora precisamos criar um script de colisão para que o ator pare se ele colidir com o chão!

Antes disso, vamos criar o chão no cenário! Vou fazer um chão simples, você pode fazer do seu jeito!



Agora, no mesmo script da gravidade, faça com que ele sempre verifique se ele está colidindo com o chão (ou seja, se ele está tocando na cor do chão) e, se ele colidir, ele mude a variável para 0! Assim:



E pronto! Desse jeito, se ele tocar no chão, ele não vai adicionar mais nada na variável que marca a posição Y do jogador e vai parar de cair!
~~

Basicamente podíamos ter parado por aqui, mas vamos deixar as coisas mais divertidas!
Faça com que depois que ele tocar no chão ele sempre verifique se a tecla que você desejar esteja sendo pressionada! Se acontecer, ele adicione a variável para o valor que você desejar, assim ele vai adicionar esse valor na sua posição Y e simplesmente vai pular! Assim:



Está vendo? Essa forma de pular suavemente com gravidade é bem melhor do que usar diretamente a sua posição Y! Eu fiquei muito feliz quando eu fiz isso pela primeira vez!
~~

Bem, basicamente é isso que eu gostaria de mostrar para vocês! Este tópico é dedicado a pessoas novas no Scratch que desejam aprender mais! Pra fechar com chave de ouro, crie um script de movimento!

Faça com que se as teclas desejadas sejam pressionadas, ele adicione e diminua o valor que você desejar a X! Assim:



Parabéns! Agora você sabe criar gravidade no Scratch! Tenho orgulho de ti!

Espero que tenha aprendido muito com este tópico! Me siga se quiser aprender mais sobre como funciona o Scratch, sempre faço tutoriais aqui no Fórum!
~~

É isso, tchau!
Fupicat
Scratcher
1000+ posts

COMO CRIAR GRAVIDADE NO SCRATCH

Hey, bom tutorial!



PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

Fupicat wrote:

Hey, bom tutorial!
Obrigado!
PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

Fupicat wrote:

Hey, bom tutorial!
Pode adicionar ele na guia principal do Fórum português? Esse tutorial pode ser bem útil!
Fupicat
Scratcher
1000+ posts

COMO CRIAR GRAVIDADE NO SCRATCH

PN_Scratching wrote:

Fupicat wrote:

Hey, bom tutorial!
Pode adicionar ele na guia principal do Fórum português? Esse tutorial pode ser bem útil!
Já adicionei.



Sonnic1998
Scratcher
8 posts

COMO CRIAR GRAVIDADE NO SCRATCH

O Neon, esse tutorial é bom pra quem vai fazer aqueles platformers onde o chão é de uma cor, mas tem como fazer uma versão desse script com o player detectando um ator?
PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

Sonnic1998 wrote:

O Neon, esse tutorial é bom pra quem vai fazer aqueles platformers onde o chão é de uma cor, mas tem como fazer uma versão desse script com o player detectando um ator?
Tem como sim! Se por exemplo o chão for um ator, faça com que ao invés dele tocar na cor, ele toque no chão!
Sonnic1998
Scratcher
8 posts

COMO CRIAR GRAVIDADE NO SCRATCH

PN_Scratching wrote:

Tem como sim! Se por exemplo o chão for um ator, faça co

Bem….. Tentei isso mas ele não colide!
PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

Sonnic1998 wrote:

Bem….. Tentei isso mas ele não colide!

Você fez desse jeito aqui?

Porque pra mim ele funcionou de boa. (Desculpa a imagem muito grande.)
Sonnic1998
Scratcher
8 posts

COMO CRIAR GRAVIDADE NO SCRATCH

PN_Scratching wrote:

Sonnic1998 wrote:

Bem….. Tentei isso mas ele não colide!

Você fez desse jeito aqui?

Porque pra mim ele funcionou de boa. (Desculpa a imagem muito grande.)

Fiz desse jeito, mas mesmo assim não funcionou.
Quer o link do projeto?
PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

Sonnic1998 wrote:

Fiz desse jeito, mas mesmo assim não funcionou.
Quer o link do projeto?

Quero.
PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

.

Last edited by PN_Scratching (Jan. 5, 2022 02:27:28)

Sonnic1998
Scratcher
8 posts

COMO CRIAR GRAVIDADE NO SCRATCH

PN_Scratching wrote:

Sonnic1998 wrote:

Fiz desse jeito, mas mesmo assim não funcionou.
Quer o link do projeto?

Quero.
Ok , aqui : https://turbowarp.org/622688044
Fupicat
Scratcher
1000+ posts

COMO CRIAR GRAVIDADE NO SCRATCH

Sonnic1998 wrote:

PN_Scratching wrote:

Sonnic1998 wrote:

Fiz desse jeito, mas mesmo assim não funcionou.
Quer o link do projeto?

Quero.
Ok , aqui : https://turbowarp.org/622688044

O problema é que o ator da colisão estava escondido. Os blocos de “tocando” só funcionam com atores que estão visíveis. Ao invés de esconder a colisão, mude o efeito fantasma dela para 100.



PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

Fupicat wrote:

O problema é que o ator da colisão estava escondido. Os blocos de “tocando” só funcionam com atores que estão visíveis. Ao invés de esconder a colisão, mude o efeito fantasma dela para 100.

Eu já expliquei pra ele no perfil dele, aqui:
https://scratch.mit.edu/users/Sonnic1998/#comments-179200301
Fupicat
Scratcher
1000+ posts

COMO CRIAR GRAVIDADE NO SCRATCH

PN_Scratching wrote:

Fupicat wrote:

O problema é que o ator da colisão estava escondido. Os blocos de “tocando” só funcionam com atores que estão visíveis. Ao invés de esconder a colisão, mude o efeito fantasma dela para 100.

Eu já expliquei pra ele no perfil dele, aqui:
https://scratch.mit.edu/users/Sonnic1998/#comments-179200301
Eu também já tinha explicado pra ele no DC :v



loucuradojoao
Scratcher
5 posts

COMO CRIAR GRAVIDADE NO SCRATCH

Legal, antes eu assistia videos de como fazer
PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

Fupicat wrote:

Eu também já tinha explicado pra ele no DC :v

O importante é que ele aprendeu.
PN_Scratching
Scratcher
78 posts

COMO CRIAR GRAVIDADE NO SCRATCH

loucuradojoao wrote:

Legal, antes eu assistia videos de como fazer
Fico feliz por ter ajudado.

Powered by DjangoBB