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
como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
5 participantes
Página 1 de 1
como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
É que eu tava fazendo um jogo com movimentação pelo mouse. Só que aí me deparei com o problema: o personagem segui o clique do mouse em QUALQUER ponto da tela. Por exemplo, se eu clicasse em um botão, ele seguia em direção ao botão. Então eu queria que ele só seguisse se não houvesse nenhum objeto no local onde eu cliquei. Poderiam me dar o código pra isso? (E sim, necessariamente precisa ser em código, plz) E antes que vocês achem um tópico assim e mandem eu procurar, eu nem sabia o que escrever. Então fiz esse tópico. Ajudem.
jpaulo- Data de inscrição : 21/03/2010
Reputação : 0
Número de Mensagens : 345
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
acredito que um...
... Pode resolver. (Não lembro se era "cursor" ou "mouse", então se não der certo tente o outro).
- Código:
if place_free(cursor.x,cursor.y)
{
//codigo de movimentação aqui
}
... Pode resolver. (Não lembro se era "cursor" ou "mouse", então se não der certo tente o outro).
Doritos555- Games Ranking :
Data de inscrição : 19/01/2012
Reputação : 2
Número de Mensagens : 78
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
Mas para usar place_free para verificar em um PONTO o objeto que usar o comando deve ter uma mascara de colisão de um ponto, e o objeto a ser clicado deve ser sólido. Mas existe uma função que não precisa desses requerimentos:
A função collision_point(X, Y, OBJ, PRECISO, OUTRAS_INSTANCIAS) verifica se há uma instancia de objeto OBJ no ponto (X,Y) e retorna sua id dentro do jogo(identificação). PRECISO indica se é uma colisão precisa (true ou false) e OUTRAS_INSTANCIAS indica se deve verificar colisão apenas com outras instancias ou se a própria instancia que está usando a função deve ser reconhecida (true ou false).
No caso, para aplicar as posições do mouse, você vai substituir X por mouse_x e Y por mouse_y.
Exemplo de uso:
A função collision_point(X, Y, OBJ, PRECISO, OUTRAS_INSTANCIAS) verifica se há uma instancia de objeto OBJ no ponto (X,Y) e retorna sua id dentro do jogo(identificação). PRECISO indica se é uma colisão precisa (true ou false) e OUTRAS_INSTANCIAS indica se deve verificar colisão apenas com outras instancias ou se a própria instancia que está usando a função deve ser reconhecida (true ou false).
No caso, para aplicar as posições do mouse, você vai substituir X por mouse_x e Y por mouse_y.
Exemplo de uso:
- Código:
//se houver colisão precisa com um objeto_botao na posição (mouse_x, mouse_y) excluindo o objeto atual
if collision_point(mouse_x,mouse_y,objeto_botao,true,true){
//mostrar a mensagem "Clicou"
show_message("Clicou");
};
Re: como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
Outra função que faz isso é instance_position. Não sei porque existem duas funções pra fazer a mesma coisa, mas existem.
A collision_point me parece mais versátil.
A collision_point me parece mais versátil.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
desculpem por fazer vocês perderam tempo. ja achei oq ue precisava com a função place_empty. Obrigado.
jpaulo- Data de inscrição : 21/03/2010
Reputação : 0
Número de Mensagens : 345
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
Tem certeza? place_empty tem a mesma restrição de place_free, comentada pelo MatheusReis.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
eu fiquei algum tempo sem mexer no game maker,to meio enferrujado) mas acho que ja usei o place_free. nao tava funcionando. Mas o place_empty funcionou, sem essa historia de mascara (mask). Obrigado. Se voltar a dar errado(pouco provavel) vou dar meu jeito.saim escreveu:Tem certeza? place_empty tem a mesma restrição de place_free, comentada pelo MatheusReis.
jpaulo- Data de inscrição : 21/03/2010
Reputação : 0
Número de Mensagens : 345
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
.Não é não saim.saim escreveu:Tem certeza? place_empty tem a mesma restrição de place_free, comentada pelo MatheusReis.
.Place free verifica se não tem nemhum objeto solido na posição,e place empty verifica se esta vazio,(nem solido e nem não solid),ou seja nada,no place_empty se tiver um objeto não solido ele retorna 0 e no place_free ele retorna 1.E a história da mask não tem nada haver,ele quer que o objeto se mova só se estiver vazio onde foi clicado.
acho que o tópico esta resolvido
Thyago- Games Ranking :
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: como fazer checar se na posição do mouse não tem nenhum objeto (por código)?
Repare que as duas funções pegam sua intância, mudam pra posição (x, y) e verificam se existe colisão ali. Não é um ponto, é uma mask colidindo.Manual traduzido escreveu:place_free (x, y) Retorna se a instância colocada na posição (x, y) está livre de colisão.
Isso normalmente é usado como uma verificação antes de realmente se mudar para a
nova posição.
place_empty (x, y) Retorna se a instância colocada na posição (x, y) encontra com
ninguém. Portanto, esta função leva em conta também instâncias não-sólido.
A restrição de que eu falei é justamente essa, você pode clicar fora de qualquer objeto e essas funções te retornarem que há colisão ali. Só depende da mask e origem da instância que chama a função.
Bom, se o postador original ficou satisfeito, eu também estou satisfeito. Estou trancando o tópico.
Se quiser reabrir, entre em contato com a moderação.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Conteúdo patrocinado
Tópicos semelhantes
» Objeto checar posição do mouse e se destruir
» Como fazer um objeto q olha pro mouse?
» Como faz para que, se um objeto for solto pelo mouse ( left released ), ele volte à sua posição inicial?
» Como fazer objeto andar na mesma posição que outro?
» Objeto por codigo + evendo como fazer???
» Como fazer um objeto q olha pro mouse?
» Como faz para que, se um objeto for solto pelo mouse ( left released ), ele volte à sua posição inicial?
» Como fazer objeto andar na mesma posição que outro?
» Objeto por codigo + evendo como fazer???
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos