Discuss Scratch
- Discussion Forums
- » Português
- » COMO CRIAR GRAVIDADE NO SCRATCH
- PN_Scratching
-
78 posts
COMO CRIAR GRAVIDADE NO SCRATCH
COMO CRIAR GRAVIDADE NO SCRATCH
por: Player Neon
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!
- PN_Scratching
-
78 posts
COMO CRIAR GRAVIDADE NO SCRATCH
Pode adicionar ele na guia principal do Fórum português? Esse tutorial pode ser bem útil! Hey, bom tutorial!
- Fupicat
-
1000+ posts
COMO CRIAR GRAVIDADE NO SCRATCH
Já adicionei.Pode adicionar ele na guia principal do Fórum português? Esse tutorial pode ser bem útil! Hey, bom tutorial!
- Sonnic1998
-
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
-
78 posts
COMO CRIAR GRAVIDADE NO SCRATCH
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! 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?
- Sonnic1998
-
8 posts
COMO CRIAR GRAVIDADE NO SCRATCH
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
-
78 posts
COMO CRIAR GRAVIDADE NO SCRATCH
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
-
8 posts
COMO CRIAR GRAVIDADE NO SCRATCH
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
-
78 posts
COMO CRIAR GRAVIDADE NO SCRATCH
Fiz desse jeito, mas mesmo assim não funcionou.
Quer o link do projeto?
Quero.
- PN_Scratching
-
78 posts
COMO CRIAR GRAVIDADE NO SCRATCH
.
Last edited by PN_Scratching (Jan. 5, 2022 02:27:28)
- Sonnic1998
-
8 posts
COMO CRIAR GRAVIDADE NO SCRATCH
Ok , aqui : https://turbowarp.org/622688044Fiz desse jeito, mas mesmo assim não funcionou.
Quer o link do projeto?
Quero.
- Fupicat
-
1000+ posts
COMO CRIAR GRAVIDADE NO SCRATCH
Ok , aqui : https://turbowarp.org/622688044Fiz desse jeito, mas mesmo assim não funcionou.
Quer o link do projeto?
Quero.
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
-
78 posts
COMO CRIAR GRAVIDADE NO SCRATCH
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.ezproxyberklee.flo.org/users/Sonnic1998/#comments-179200301
- Fupicat
-
1000+ posts
COMO CRIAR GRAVIDADE NO SCRATCH
Eu também já tinha explicado pra ele no DC :vO 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.ezproxyberklee.flo.org/users/Sonnic1998/#comments-179200301
- loucuradojoao
-
5 posts
COMO CRIAR GRAVIDADE NO SCRATCH
Legal, antes eu assistia videos de como fazer 

- PN_Scratching
-
78 posts
COMO CRIAR GRAVIDADE NO SCRATCH
Eu também já tinha explicado pra ele no DC :v
O importante é que ele aprendeu.
- PN_Scratching
-
78 posts
COMO CRIAR GRAVIDADE NO SCRATCH
Fico feliz por ter ajudado. Legal, antes eu assistia videos de como fazer
- Discussion Forums
- » Português
-
» COMO CRIAR GRAVIDADE NO SCRATCH