Função não para!

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Função não para!

Mensagem por superrafao em Qui 16 Out 2014, 18:08

Eu portei um jogo que estou fazendo para o Game Maker studio, e eu percebi que o jogo estava funcionando bem apesar do jogo ter sido portado do GM8, mas percebi que se eu ficar segurando o "clique esquerdo" e puxar o mouse para fora da janela do jogo e eu soltar o clique com o mouse ainda fora da janela o sistema ainda continua a executar a função do mouse mesmo que ele não esteja mais sendo usado pelo jogador. Mas se eu voltar pra janela e clicar na mesma, o erro some!
Acabei de começar a mexer com o GMS, então nem imaginava que tal erro ocorreria, estou usando o mouse_check_pressed(mb_left) pra executar... porque isso acontece?
Obrigado pela resposta desde já!

superrafao

Número de Mensagens : 414
Idade : 20
Data de inscrição : 18/08/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Função não para!

Mensagem por JoaoVanBlizzard em Qui 16 Out 2014, 18:16

isso acontece com as janelas mesmo não exatamente com gms, tipo, se você segurar uma tecla e sair da janela com o mouse segurando essa tecla o personagem ficara andando ainda, isso acontece até com outros jogos e emuladores, dessa vez a culpa não é do gms, contudo me parece que tem uma função que você pode congelar o jogo quando o mouse sai da tela assim evita de continuar andando.

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Função não para!

Mensagem por willcraft2 em Qui 16 Out 2014, 18:27

Isso é normal, para resolver isso cria um objeto para seguir o mouse e coloca uma mascara nele, no STEP coloca isso:
Código:

x=mouse_x;
y=mouse_y;

if mouse_x >= 0 and mouse_y >= 0 and mouse_x <= 640 and mouse_y <= 480
{
global.mousedentrotela = true;
}
else
{global.mousedentrotela = false;}
Ops cria uma global.mousedentrotela e coloca o valor noone nela.

e depois nos objeto que recebe o clique coloque para apenas ele executar a função se a variável global.mousedentrotela for verdadeira.

EDIT:
O 640 e 480 é sua view, faça com que ele siga a view se não vai da error depois. pode usar view_xview e view_yview, o resto do trabalho fica para ti.

Espero ter ajudado flw

willcraft2

Ranking : Nota D
Número de Mensagens : 682
Idade : 16
Data de inscrição : 06/04/2012
Notas recebidas : D + D
Reputação : 42
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Função não para!

Mensagem por superrafao em Sex 17 Out 2014, 17:30

Obrigado, verei como funciona aqui!

superrafao

Número de Mensagens : 414
Idade : 20
Data de inscrição : 18/08/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Função não para!

Mensagem por vinians em Sex 17 Out 2014, 21:30

Seria bom colocar "RESOLVIDO" no tópico para sabermos que o problema ja foi solucionado, agilizando assim a ajuda a outros tópicos.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Função não para!

Mensagem por Conteúdo patrocinado Hoje à(s) 02:25


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum