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
Problemas com o mouse (botão direito)
3 participantes
Página 1 de 1
Problemas com o mouse (botão direito)
Olá pessoal, algo ultimatente está me dando nervosismo. Vou explicar:
Quando pressiono, por exemplo, a tecla "A" e mantenho-a pressionada, minha nave se movimenta para esquerda. Até aí tudo bem. Agora quando pressiono o botão direito do mouse e mantenho-o pressionado (lembre-se que "A" também está pressionada) minha nave ativa a hipervelocidade, que é a speed=speed+1. Até aí também tudo bem !!! Agora quando solto a tecla "A" e aperto a "D" (lembre-se que o botão direito do mouse está pressionado, para manter a hipervelocidade) era para mudar de direção, mas não muda! Ela continua movendo-se para esquerda! Help me, please!!!
Lembrando que eu coloquei que se speed>20, faça speed=20, para manter a velocidade em 20 na hipervelocidade (sem a hipervelocidade eu fiz a mesma coisa, porém com velocidade=12. Os movimentos de direção coloquei nos eventos keyboard, e como ações coloquei o movimento livre, relativo, definindo o angulo para cada letra correspondente a direção.
Quando pressiono, por exemplo, a tecla "A" e mantenho-a pressionada, minha nave se movimenta para esquerda. Até aí tudo bem. Agora quando pressiono o botão direito do mouse e mantenho-o pressionado (lembre-se que "A" também está pressionada) minha nave ativa a hipervelocidade, que é a speed=speed+1. Até aí também tudo bem !!! Agora quando solto a tecla "A" e aperto a "D" (lembre-se que o botão direito do mouse está pressionado, para manter a hipervelocidade) era para mudar de direção, mas não muda! Ela continua movendo-se para esquerda! Help me, please!!!
Lembrando que eu coloquei que se speed>20, faça speed=20, para manter a velocidade em 20 na hipervelocidade (sem a hipervelocidade eu fiz a mesma coisa, porém com velocidade=12. Os movimentos de direção coloquei nos eventos keyboard, e como ações coloquei o movimento livre, relativo, definindo o angulo para cada letra correspondente a direção.
Ricardo Alves- Data de inscrição : 05/09/2012
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com o mouse (botão direito)
Só pra ter certeza: ângulo 0 = direita, 90 = cima, 180 = esquerda, 270 = baixo, certo?
Você está mudando o ângulo sem "relativo?"
Você quer que a nave gire ou simplesmente se mova para a direção, independente do ângulo próprio?
Você está mudando o ângulo sem "relativo?"
Você quer que a nave gire ou simplesmente se mova para a direção, independente do ângulo próprio?
Re: Problemas com o mouse (botão direito)
Os ângulos são esses mesmos que você disse. Os ângulos são relativos (assim o movimento é mais suave e realista), mas quando atinge velocidade 12, ela se mantém no 12, como disse.
Já coloquei para minha nave girar para onde a seta do mouse está (ela só gira, mas se eu quiser movimentar a nave, tenho que apertar as teclas de direção, que são w,s,a,d). Quero também que ela se mova para a nova direção ao trocar de direção (ex.: se eu tava apertando "a", que é para esquerda, soltar, e apertar "d", quero que vá para direita, mesmo mantendo o botão do mouse direito pressionado para manter a hipervelocidade, independentemente do ângulo no qual se encontra).
O ângulo da nave não importa, pois ela sempre está virado para a setinha do mause. Aí eu posso por exemplo andar para trás e mirar para frente, caso a nave inimiga esteja na minha frente. Já agora para o movimento, coloquei os ângulos que você disse, e relativo.
Já coloquei para minha nave girar para onde a seta do mouse está (ela só gira, mas se eu quiser movimentar a nave, tenho que apertar as teclas de direção, que são w,s,a,d). Quero também que ela se mova para a nova direção ao trocar de direção (ex.: se eu tava apertando "a", que é para esquerda, soltar, e apertar "d", quero que vá para direita, mesmo mantendo o botão do mouse direito pressionado para manter a hipervelocidade, independentemente do ângulo no qual se encontra).
O ângulo da nave não importa, pois ela sempre está virado para a setinha do mause. Aí eu posso por exemplo andar para trás e mirar para frente, caso a nave inimiga esteja na minha frente. Já agora para o movimento, coloquei os ângulos que você disse, e relativo.
Ricardo Alves- Data de inscrição : 05/09/2012
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com o mouse (botão direito)
O que eu acredito que pode ser o problema (porque você está explicando a teoria mas não está mostrando os códigos) é você não estar usando a variável direction.
image_angle é só o sprite: não muda a direção de navegação da sua nave. Com direction que você faz isso. Então se toda a tecla que você aperta apenas aumenta a speed, ela só vai para a esquerda mesmo, que é a direção inicial.
Veja este gmk, deve ser algo como você quer. Clique aqui!
Para andar de acordo com a direction do objeto, acredito que motion_add/motion_set é o que você procura.
image_angle é só o sprite: não muda a direção de navegação da sua nave. Com direction que você faz isso. Então se toda a tecla que você aperta apenas aumenta a speed, ela só vai para a esquerda mesmo, que é a direção inicial.
Veja este gmk, deve ser algo como você quer. Clique aqui!
Para andar de acordo com a direction do objeto, acredito que motion_add/motion_set é o que você procura.
Re: Problemas com o mouse (botão direito)
O ângulo do sprite está certo, está sempre voltado para a setinha do mause. Mas eu não quero que ele vá para a setinha automaticamente. Quero que ele vá para para direção que eu definir (apertando as teclas w,a,s,d). Seria assim:
no step coloca o código:
e coloca fricção 0.3 não relativa (sem ser código).
Crie evento keyboard letter "A" move free, direction 180, speed 0.7, relativo (sem ser código).
Crie evento keyboard letter "D" move free, direction 0, speed 0.7, relativo (sem ser código).
Crie evento keyboard letter "S" move free, direction 270, speed 0.7, relativo (sem ser código).
Crie evento keyboard letter "W" move free, direction 90, speed 0.7, relativo (sem ser código).
Crie evento Glob right button (mouse>glob mouse>glob right button) e coloca o código:
Fiz aqui mas não deu para enviar pq ainda não tenho servidor para armazenar.
Ao fazer aumentar speed se pressionar botão direito do mouse, o bonequinho só vai para uma direção, e não muda conforme eu mudo as teclas (com o botão direito do mause continuamente pressionado). Só muda quando eu solto o botão (desativando a hipervelocidade), pressiono uma tecla de direção que quero e pressiono o botão hipervelocidade novamente.
Quero trocar de direção sem precisar de soltar o botão direito do mause.
no step coloca o código:
- Código:
image_angle=point_direction(x,y,mouse_x,mouse_y)
Crie evento keyboard letter "A" move free, direction 180, speed 0.7, relativo (sem ser código).
Crie evento keyboard letter "D" move free, direction 0, speed 0.7, relativo (sem ser código).
Crie evento keyboard letter "S" move free, direction 270, speed 0.7, relativo (sem ser código).
Crie evento keyboard letter "W" move free, direction 90, speed 0.7, relativo (sem ser código).
Crie evento Glob right button (mouse>glob mouse>glob right button) e coloca o código:
- Código:
speed+=1;
if(speed>25){speed=25}
Fiz aqui mas não deu para enviar pq ainda não tenho servidor para armazenar.
Ao fazer aumentar speed se pressionar botão direito do mouse, o bonequinho só vai para uma direção, e não muda conforme eu mudo as teclas (com o botão direito do mause continuamente pressionado). Só muda quando eu solto o botão (desativando a hipervelocidade), pressiono uma tecla de direção que quero e pressiono o botão hipervelocidade novamente.
Quero trocar de direção sem precisar de soltar o botão direito do mause.
Ricardo Alves- Data de inscrição : 05/09/2012
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com o mouse (botão direito)
Eu pesquisei e testei, cheguei a uma conclusão:
Seu objeto está sempre "virado" para a esquerda, independente do movimento ou da imagem. Ao acionar a propulsão, ele invariavelmente irá para a esquerda, pois você está adicionando quantidades grandes à velocidade dele e motion dele para a esquerda.
Analogia:
Imagine que você está de pé no meio da sala. Alguém te empurra para a direita, mas você não vira, apenas é jogado para a direita. Ou para a esquerda, ou para cima, mas sempre virado pro mesmo ponto. É isso que está acontecendo. Porque o seu código de Draw (image_angle) não interfere na lógica do objeto (direction).
O que eu recomendo:
Create -> velocidadeMaxima = 12
Mouse click -> velocidadeMaxima = 20
Mouse release -> velocidadeMaxima = 12
Step -> se "speed>velocidadeMaxima", faça "speed -= 2" (-= subtrai)
Isso fará simplesmente alterar a velocidade máxima do objeto... não sei bem se é o que você quer, mas em todo caso acho você não vai conseguir apenas alterando a variável speed.
EDITADO para alterar explicações! (está em negrito!)
Seu objeto está sempre "virado" para a esquerda, independente do movimento ou da imagem. Ao acionar a propulsão, ele invariavelmente irá para a esquerda, pois você está adicionando quantidades grandes à velocidade dele e motion dele para a esquerda.
Analogia:
Imagine que você está de pé no meio da sala. Alguém te empurra para a direita, mas você não vira, apenas é jogado para a direita. Ou para a esquerda, ou para cima, mas sempre virado pro mesmo ponto. É isso que está acontecendo. Porque o seu código de Draw (image_angle) não interfere na lógica do objeto (direction).
O que eu recomendo:
Create -> velocidadeMaxima = 12
Mouse click -> velocidadeMaxima = 20
Mouse release -> velocidadeMaxima = 12
Step -> se "speed>velocidadeMaxima", faça "speed -= 2" (-= subtrai)
Isso fará simplesmente alterar a velocidade máxima do objeto... não sei bem se é o que você quer, mas em todo caso acho você não vai conseguir apenas alterando a variável speed.
EDITADO para alterar explicações! (está em negrito!)
Re: Problemas com o mouse (botão direito)
CARA, TA QUASE, É ISSO MESMO, ESTE É EXATAMENTE O PROBLEMA, E VOCÊ RESOLVEU!!!
Só que tipo (tinha que ter um porém né...) em mouse click eu coloquei glob right buttom (é o único que funcionou eu acho). Só que ao despressionar o botão do mause e movimentar o bichinho normalmente, a velocidade não volta ao normal, continua grande.
Só que tipo (tinha que ter um porém né...) em mouse click eu coloquei glob right buttom (é o único que funcionou eu acho). Só que ao despressionar o botão do mause e movimentar o bichinho normalmente, a velocidade não volta ao normal, continua grande.
Ricardo Alves- Data de inscrição : 05/09/2012
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com o mouse (botão direito)
Bom, o correto é usar o Global Mouse mesmo, já que o evento normal requer que você clique na sprite/mask do objeto. Será que ele não está voltando porque você está usando Mouse Released ao invés de Global Mouse Released? Verifique isso aí.
Abraços!
Abraços!
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com o mouse (botão direito)
CARA, EU CONSEGUI!!! CONSEGUI FAZER!!! ALIÁS, VC CONSEGUIU!!! Vc é um anjo kkkkk. Muitíssimo obrigado, se quiser bolo pode vim rsrsrsrrs. Te dou 1000 pts!!! Agradeço também ao Markituh.
Mas tipo, eu não intendi direito a causa do problema, porquê meu objeto está sempre virado para a esquerda e como assim image_angle não interfere em direction? Eu usando daquele jeito na fórmula está errado?
Mas tipo, eu não intendi direito a causa do problema, porquê meu objeto está sempre virado para a esquerda e como assim image_angle não interfere em direction? Eu usando daquele jeito na fórmula está errado?
Ricardo Alves- Data de inscrição : 05/09/2012
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com o mouse (botão direito)
Opa Ricardo, sobre essa questão de não interferir... simplificando:
- image_angle é a rotação da sprite do objeto.
- direction é a direção a qual as coordenadas lógicas/a localização do objeto será atualizada a cada frame.
Pelo que vi no seu código, o conflito poderia estar na forma como você está fazendo o movimento; mas já que você conseguiu resolver, tá tudo certo. Tô um tempo ser mexer no GM, aí perdi as manhas, sabe como é.
- image_angle é a rotação da sprite do objeto.
- direction é a direção a qual as coordenadas lógicas/a localização do objeto será atualizada a cada frame.
Pelo que vi no seu código, o conflito poderia estar na forma como você está fazendo o movimento; mas já que você conseguiu resolver, tá tudo certo. Tô um tempo ser mexer no GM, aí perdi as manhas, sabe como é.
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com o mouse (botão direito)
Certo, é sempre bom saber os conceitos. No caso eu posso fazer
Pois point_direction retorna as coordenadas em ângulo para onde a setinha do mouse está. Logo eu igualando-a com image_angle, o sprite ficará rotacionado para no mesmo ângulo onde a seta se encontra.
- Código:
image_angle=point_direction(x,y,mouse_x,mouse_y)
Pois point_direction retorna as coordenadas em ângulo para onde a setinha do mouse está. Logo eu igualando-a com image_angle, o sprite ficará rotacionado para no mesmo ângulo onde a seta se encontra.
Ricardo Alves- Data de inscrição : 05/09/2012
Reputação : 0
Número de Mensagens : 14
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com o mouse (botão direito)
Exato. point_direction, para ficar mais explicadinho, vai retornar o coeficiente angular de uma reta dados pontos {x1, y1} e {x2, y2}. Então, para melhor efeito, seria interessante colocar o offset/origem da sprite (no editor de sprites) para o centro da nave.
Mas lembrando, já que o ângulo 0 é para a direita, é interessante que você coloque a sprite da nave no mesmo sentido. Ou, você poderia deixar para cima mesmo e igualar image_angle ao valor retornado por point_direction, menos 90º - tendo em mente que um valor positivo rotaciona para a esquerda , e um negativo, para a direita. Pois bem, é sempre bom saber um pouco de teoria para se dar bem na prática.
Abraços e bom projeto!
Mas lembrando, já que o ângulo 0 é para a direita, é interessante que você coloque a sprite da nave no mesmo sentido. Ou, você poderia deixar para cima mesmo e igualar image_angle ao valor retornado por point_direction, menos 90º - tendo em mente que um valor positivo rotaciona para a esquerda , e um negativo, para a direita. Pois bem, é sempre bom saber um pouco de teoria para se dar bem na prática.
Abraços e bom projeto!
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» clique do botão direito do mouse (android)
» [RESOLVIDO] Aperta botão direito do mouse e muda o grafico do personagem
» Problemas Com o Mouse
» Problemas com movimento de personagem pelo mouse
» [DUVIDA] Problemas com mouse em resolução menor
» [RESOLVIDO] Aperta botão direito do mouse e muda o grafico do personagem
» Problemas Com o Mouse
» Problemas com movimento de personagem pelo mouse
» [DUVIDA] Problemas com mouse em resolução menor
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos