Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[Resolvido]mudar a direção de um objeto...
2 participantes
Página 1 de 1
[Resolvido]mudar a direção de um objeto...
ola pessoal, preciso mudar a direção de um objeto...
exemplo, meu objeto vai da direita para a esquerda, quero apertar o espaço,
e quando ele estiver indo para a direita ele inverta e vai pra esquerda e vise versa.
estou usando o clamp para o movimento...
if (x != clamp(x, xstart-130, xstart+110))
{
hspeed *=-1;
}
exemplo, meu objeto vai da direita para a esquerda, quero apertar o espaço,
e quando ele estiver indo para a direita ele inverta e vai pra esquerda e vise versa.
estou usando o clamp para o movimento...
if (x != clamp(x, xstart-130, xstart+110))
{
hspeed *=-1;
}
Última edição por matheushdj em Sex 26 Jun 2020, 21:56, editado 1 vez(es)
matheushdj- Games Ranking :
Data de inscrição : 24/06/2020
Reputação : 0
Número de Mensagens : 8
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]mudar a direção de um objeto...
Olá matheushdj, seja bem-vindo ao fórum!
Para fazer isso você pode usar um keyboard_check_pressed para checar se foi pressionado a tecla e com isso trocar a velocidade horizontal(que é o que seu código está fazendo.)
Ficaria algo assim, no evento step adicione esse código:
Em resumo ele checa se foi pressionada a tecla indicada(que nesse caso é o espaço/vk_space). Caso aconteça, ele multiplica a hspeed(velocidade horizontal) por -1, na prática isso faz ir para a direção contrária.
Boa produção para você, se tiver mais alguma dúvida, fique a vontade para compartilhar!
Para fazer isso você pode usar um keyboard_check_pressed para checar se foi pressionado a tecla e com isso trocar a velocidade horizontal(que é o que seu código está fazendo.)
Ficaria algo assim, no evento step adicione esse código:
- Código:
if (keyboard_check_pressed(vk_space))
hspeed *= -1;
Em resumo ele checa se foi pressionada a tecla indicada(que nesse caso é o espaço/vk_space). Caso aconteça, ele multiplica a hspeed(velocidade horizontal) por -1, na prática isso faz ir para a direção contrária.
Boa produção para você, se tiver mais alguma dúvida, fique a vontade para compartilhar!
Perfeito!
Meu amigo Diemorth, perfeito, funcionou perfeitamente.
Achei q ja tinha feito isso kkk
muito obrigado mesmo
estou criando um joguinho, depois quero postar ele...
obrigado.
Tenho outra duvida, mais nao sei se consigo explicar...
quero alguns quadrados caindo pela tela da room de forma bem aleatoria e rodando, tipo
sendo jogados la de cima.
Achei q ja tinha feito isso kkk
muito obrigado mesmo
estou criando um joguinho, depois quero postar ele...
obrigado.
Tenho outra duvida, mais nao sei se consigo explicar...
quero alguns quadrados caindo pela tela da room de forma bem aleatoria e rodando, tipo
sendo jogados la de cima.
matheushdj- Games Ranking :
Data de inscrição : 24/06/2020
Reputação : 0
Número de Mensagens : 8
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]mudar a direção de um objeto...
Vou tentar fazer algo seguindo o que você escreveu, se a intenção for algo diferente, pode falar que tentamos adaptar o código!
Para os quadrados você precisa criar um novo objeto(nesse caso pode nomear ele como obj_quadrado), pode associar o sprite que quiser, no evento create você pode colocar:
Isso vai fazer ele "cair". Para ele girar, você pode no evento step colocar algo assim:
Isso vai fazer ele girar, nesse ponto se você colocar o objeto na room ele vai cair girando.
Caso ele esteja girando de uma maneira estranha possivelmente é o pivô do sprite que está fora do centro.(Se não conseguir configurar isso posso mandar prints de como resolver).
É interessante destruir esse objeto quando ele sair da tela(pela parte inferior), então no evento Other > Outside room você pode colocar:
O if é importante para destruir apenas se esse objeto sair pela parte inferior da tela.
Agora falta gerar esse objeto em posições aleatórias, pra isso vamos usar a função random.
Crie um novo objeto, nomeie ele como obj_spawner, ele não precisa de um sprite. No evento create, coloque isso:
Isso vai definir um alarme(que vai ser acionado depois de passar um determinado tempo).
Você pode usar o valor que achar melhor, como o tempo do jogo corre em frames por segundo, estou usando o room_speed pra transformar o "2" ali em segundos.
No evento alarm0, você tem que colocar:
Caso no GameMaker:Studio 1.4.9 ou em versões anteriores:
Caso no GameMaker:Studio 2:
A cada 2 segundos vai criar um quadrado no topo da tela, em uma posição horizontal aleatória, com isso ele vai cair girando e quando sair da tela, pela parte inferior ele vai ser destruído.
Você pode tirar todos os quadrados da tela e deixar apenas esse segundo objeto.
Caso tenha algum problema ou dúvida com isso, não deixe de perguntar! Bom estudo e bom projeto para você! :>
Para os quadrados você precisa criar um novo objeto(nesse caso pode nomear ele como obj_quadrado), pode associar o sprite que quiser, no evento create você pode colocar:
- Código:
vspeed = 15;
Isso vai fazer ele "cair". Para ele girar, você pode no evento step colocar algo assim:
- Código:
image_angle += 18;
Isso vai fazer ele girar, nesse ponto se você colocar o objeto na room ele vai cair girando.
Caso ele esteja girando de uma maneira estranha possivelmente é o pivô do sprite que está fora do centro.(Se não conseguir configurar isso posso mandar prints de como resolver).
É interessante destruir esse objeto quando ele sair da tela(pela parte inferior), então no evento Other > Outside room você pode colocar:
- Código:
if (y> room_height)
instance_destroy();
O if é importante para destruir apenas se esse objeto sair pela parte inferior da tela.
Agora falta gerar esse objeto em posições aleatórias, pra isso vamos usar a função random.
Crie um novo objeto, nomeie ele como obj_spawner, ele não precisa de um sprite. No evento create, coloque isso:
- Código:
alarm[0] = room_speed * 2;
Isso vai definir um alarme(que vai ser acionado depois de passar um determinado tempo).
Você pode usar o valor que achar melhor, como o tempo do jogo corre em frames por segundo, estou usando o room_speed pra transformar o "2" ali em segundos.
No evento alarm0, você tem que colocar:
Caso no GameMaker:Studio 1.4.9 ou em versões anteriores:
- Código:
instance_create(random(room_width), -32, obj_quadrado);
alarm[0] = room_speed * 2;
Caso no GameMaker:Studio 2:
- Código:
instance_create_depth(random(room_width), -32, 0, obj_quadrado);
alarm[0] = room_speed * 2;
A cada 2 segundos vai criar um quadrado no topo da tela, em uma posição horizontal aleatória, com isso ele vai cair girando e quando sair da tela, pela parte inferior ele vai ser destruído.
Você pode tirar todos os quadrados da tela e deixar apenas esse segundo objeto.
Caso tenha algum problema ou dúvida com isso, não deixe de perguntar! Bom estudo e bom projeto para você! :>
- Documentação Extra:
- vspeed - image_angle - room_height - alarm - instance_create - instance_create_depth
Tópicos semelhantes
» Como mudar a direção de um objeto específico?
» Como Faço Para Mudar o Nome do Objeto no Jogo??? e tem como também mudar o nome de um objeto com uma tal ID?
» [Resolvido]Sprite pisca ao mudar de direção
» [Resolvido] mudar objeto ao "passar" em cima dele
» [Resolvido]Como colidir com um objeto e mudar de room com ele nela?
» Como Faço Para Mudar o Nome do Objeto no Jogo??? e tem como também mudar o nome de um objeto com uma tal ID?
» [Resolvido]Sprite pisca ao mudar de direção
» [Resolvido] mudar objeto ao "passar" em cima dele
» [Resolvido]Como colidir com um objeto e mudar de room com ele nela?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos