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. |
[AJUDA] - Instancia com o mouse. Tópico resolvido
[AJUDA] - Instancia com o mouse.
Olá, amigos. Tudo bem? Bom, vai fazer duas semanas que estou estudando o game maker e ainda estou aprendendo algumas coisas. Mas meu maior problema agora é na lógica. Em meu jogo existe um menu ao lado, onde eu escolho um dos itens (clico nele(no meu caso é uma bomba)) e depois clico no mapa para instanciar ele na posição que eu desejo. Mas eu gostaria que o objeto ficasse recebendo a posição do mouse enquanto escolho o local. E é ai que eu não consigo raciocinar direito. Alguém poderia me dar uma ajudinha, não o código pronto, só o caminho das pedras de como eu poderia fazer isso?! Clicar num item a minha escolha no menu e depois clicar no mapa pra instanciar esse item que eu escolhi? Eu consigo chegar até certo ponto da lógica, como exemplo: Fazer o objeto seguir o ponteiro do mouse, mas na hora de instanciar ele no local desejado eu meio que estou bugando e nao consigo.
Bom, se alguém puder me ajudar, eu agradeceria.
(Espero que o texto não tenha ficado muito confuso)
Atenciosamente,
Epipoca.
Bom, se alguém puder me ajudar, eu agradeceria.
(Espero que o texto não tenha ficado muito confuso)
Atenciosamente,
Epipoca.
[Rachel:]
"Do you like our owl?"
[Deckard:]
"Is it artificial?"
[Rachel:]
"Of course it is"
"Do you like our owl?"
[Deckard:]
"Is it artificial?"
[Rachel:]
"Of course it is"
- Denis Lemos
- Membro
- Reações: 0
- Mensagens: 49
-
Re: [AJUDA] - Instancia com o mouse. Tópico resolvido
Você não precisa fazer o objeto(instância) seguir o ponteiro do mouse, e sim apenas desenhar uma
"sprite" referente ao objeto selecionado. Por exemplo:
Em obj_controle vc pode criar uma variável chamada "item" e dar um valor inicial de zero para ela. Cada valor dessa variável vai representar um item a ser criado, e também uma sprite a ser desenhada na posição do mouse quando estiver posicionando o item. Então quando clicar em um dos itens, vai mudar o valor dessa variável de acordo com o item clicado.
EX:
Evento Create do obj_controle.
No Evento Create de cada Item.
Evento Step dos Itens.
Por fim, agora que já temos o item sendo selecionado(ou não), vamos desenhar a sprite do item selecionado na posição do mouse, e criar o item na posição do mouse quando for clicado.
PS: Eu estou escrevendo aqui sem testar se funciona, então para tentar evitar algum erro, vamos fazer o item ser criado quando apertar o botão "direito" do mouse, para que ele não seja criado na mesma hora em que seleciona o item caso use o botão esquerdo as duas verificações aconteceriam ao mesmo tempo(selecionaria o item e criaria no mesmo instante).
No Evento Draw do obj_controle.
Existem outras formas bem melhores e eficientes de fazer isso, mas como vc é iniciante eu preferi explicar dessa maneira para não confundir muito.
"sprite" referente ao objeto selecionado. Por exemplo:
Em obj_controle vc pode criar uma variável chamada "item" e dar um valor inicial de zero para ela. Cada valor dessa variável vai representar um item a ser criado, e também uma sprite a ser desenhada na posição do mouse quando estiver posicionando o item. Então quando clicar em um dos itens, vai mudar o valor dessa variável de acordo com o item clicado.
EX:
Evento Create do obj_controle.
Código: Selecionar todos
/*
item = 0;// Vai indicar que não tem nenhum item selecionado para criar.
item = 1;// Vai representar o item1.
item = 2;// Vai representar o item2.
item = 3;// Vai representar o item3.
E assim sucessivamente...
*/
item = 0;
Código: Selecionar todos
/*
Note que o valor da variável esteItem tem que ser diferente para
cada um dos item e referente ao item que ele é.
*/
esteItem = 1;//Neste exemplo o item será o número item1.
Código: Selecionar todos
if (mouse_check_button_pressed(mb_left))//Se clicou o botão esquerdo do mouse
{
if(position_meeting(mouse_x, mouse_y, self))//Se estiver em cima deste item.
{
obj_controle.item = esteItem;//muda o valor da variável item do objeto controle, referente a este objeto clicado.
}
}
PS: Eu estou escrevendo aqui sem testar se funciona, então para tentar evitar algum erro, vamos fazer o item ser criado quando apertar o botão "direito" do mouse, para que ele não seja criado na mesma hora em que seleciona o item caso use o botão esquerdo as duas verificações aconteceriam ao mesmo tempo(selecionaria o item e criaria no mesmo instante).
No Evento Draw do obj_controle.
Código: Selecionar todos
if(item>0)//Se o valor do item for maior que zero. Então temos um item selecionado e pronto para ser criado
{
switch (item)//Verifica o valor da variável item para comparação posterior.
{
case 1://Caso o valor da variável item seja 1;
draw_sprite(sprite_do_item1, 0, mouse_x, mouse_y);//Desenha a sprite do item na posição do mouse.
if (mouse_check_button_pressed(mb_right))//Se apertar o botão direito do mouse.
{
instance_create(mouse_x, mouse_y, obj_item1);//Cria o item1.
item = 0;//Avisa que o item já foi criado para não desenhar mais a sprite.
}
break;
case 2://Caso o valor da variável item seja 2.
draw_sprite(sprite_do_item2, 0, mouse_x, mouse_y);//Desenha a sprite do item na posição do mouse.
if (mouse_check_button_pressed(mb_right))//Se apertar o botão direito do mouse.
{
instance_create(mouse_x, mouse_y, obj_item2);//Cria o item2.
item = 0;//Avisa que o item já foi criado para não desenhar mais a sprite.
}
break;
case 3:
draw_sprite(sprite_do_item3, 0, mouse_x, mouse_y);//Desenha a sprite do item na posição do mouse.
if (mouse_check_button_pressed(mb_right))//Se apertar o botão direito do mouse.
{
instance_create(mouse_x, mouse_y, obj_item3);//Cria o item3.
item = 0;//Avisa que o item já foi criado para não desenhar mais a sprite.
}
break;
//Você pode colocar quantas verificações de casos for preciso
}
}
Re: [AJUDA] - Instancia com o mouse.
Cara, você me ajudou muito! Muito obrigado!! Aprendi bastante. Agradeço!
[Rachel:]
"Do you like our owl?"
[Deckard:]
"Is it artificial?"
[Rachel:]
"Of course it is"
"Do you like our owl?"
[Deckard:]
"Is it artificial?"
[Rachel:]
"Of course it is"
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes