Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Como saber se o jogador clicou dentro ou fora do objeto? // Problemas com o evento Left Pressed Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
coffegames
Novato
Novato
Reações: 1
Mensagens: 2

Como saber se o jogador clicou dentro ou fora do objeto? // Problemas com o evento Left Pressed

Mensagem por coffegames » Dom Out 09, 2022 10:24 pm

Olá, estou começando a aprender a desenvolver jogos e preciso de ajuda:
Estou fazendo um jogo de clicar no objeto e ganhar pontos, o objeto(quadrado) em si aparece e some aleatoriamente em uma determinada velocidade, quanto mais pontos o jogador fizer mais essa velocidade aumenta mas quero que o jogo acabe se o jogador clicar fora do quadrado.

Eu criei o objeto que será clicado e criei outro objeto que seria a "tela" que não pode clicar
a área que tá azul é o objeto "tela", ela está embaixo do quadrado que é o objeto principal.
a área que tá azul é o objeto "tela", ela está embaixo do quadrado que é o objeto principal.
amostra.png (175.21 KiB) Exibido 791 vezes

Eu acho que o problema está no evento Left Pressed, parece que é universal, o Left Pressed do objeto é para ganhar pontos e destruir a instancia desse objeto, já o Left Pressed desse outro objeto seria para o jogo acabar mas quando eu coloco game_restart() o jogo começa o objeto aparece e some mas se clicar mesmo no objeto o jogo reinicia . Cada um desses dois objetos está em camadas diferentes mas não muda muita coisa.


Existe alguma solução para isso? Seja em código ou através dos eventos? Ou se poderia usar até mesmo o background ao invés desse objeto tela?
Coffegames

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Como saber se o jogador clicou dentro ou fora do objeto? // Problemas com o evento Left Pressed  Tópico resolvido

Mensagem por All-x » Seg Out 10, 2022 10:23 am

Basta você apenas pegar o objeto que está na posição do mouse. No evento step do objeto de controle coloque:

Código: Selecionar todos

// Se clicou com botão esquerdo do mouse
if mouse_check_pressed(mb_left) {

	// Guarda a instância de 'obj_quadrado' que esteja na posição do mouse
	// Se não achar nenhuma guarda 'noone' na variável 'inst'
	var inst = instance_position(mouse_x, mouse_y, obj_quadrado);
	
	// Se tem uma instância
	if (inst != noone) {
		// Destrói o quadrado
		instance_destroy(inst);
	} else {
		// Clicou fora: Aqui vai o código que perdeu o jogo
	}
}
1 Imagem
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
coffegames
Novato
Novato
Reações: 1
Mensagens: 2

Re: Como saber se o jogador clicou dentro ou fora do objeto? // Problemas com o evento Left Pressed

Mensagem por coffegames » Seg Out 10, 2022 7:10 pm

All-x escreveu: Seg Out 10, 2022 10:23 am Basta você apenas pegar o objeto que está na posição do mouse. No evento step do objeto de controle coloque:

Código: Selecionar todos

// Se clicou com botão esquerdo do mouse
if mouse_check_pressed(mb_left) {

	// Guarda a instância de 'obj_quadrado' que esteja na posição do mouse
	// Se não achar nenhuma guarda 'noone' na variável 'inst'
	var inst = instance_position(mouse_x, mouse_y, obj_quadrado);
	
	// Se tem uma instância
	if (inst != noone) {
		// Destrói o quadrado
		instance_destroy(inst);
	} else {
		// Clicou fora: Aqui vai o código que perdeu o jogo
	}
}
Funcionou, muito obrigado!
1 Imagem
Coffegames

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes