[DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

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

[DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Westerbly em Dom 27 Jun 2010, 15:49

Quero fazer um sistema de movimento por cliques na tela, e pra isso preciso que os cliques criem objetos que o personagem irá seguir, ou então que o próprio clique seja seguido. Acho que a primeira opção é mais fácil, mais se puderem fazer a segunda melhor ainda. Alguém pode me ajudar?

Acabei de achar um problema... quando eu clico dentro de um objeto sólido, pelo fato dele desviar ele acaba rondando o objeto sem saber o que fazer, como eu faço pra ele simplesmente interromper a trajetória ao chegar do lado do tal objeto?

Editado por CyraxX, evite fazer Posts duplos, alertado.


Última edição por Westerbly em Dom 27 Jun 2010, 18:11, editado 2 vez(es)

Westerbly

Número de Mensagens : 18
Idade : 20
Data de inscrição : 04/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://w3down.zxq.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Convidad em Dom 27 Jun 2010, 16:09

eu sei o clique que cria o objecto apenas.

vai no create instance e no
x bota
mouse_x
e no y
mouse_y

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Thiago_o_programador em Dom 27 Jun 2010, 16:15

1º: Crie um objeto chamado: obj_Mouse, no step:
Código:
x=mouse_x y=mouse_y
No evento Mouse Left Pressed coloque:
Código:
instance_create(x,y,(objeto a ser criado))

então no objeto player coloque no STEP:
Código:
if instance_exists(obj a ser criado)=1 {mp_potential_step(obj_qualquer.x,obj_qualquer.y,5,solid)}
Não entendi direito a sua pergunta, mas se for o que eu to pensando é assim. Happy

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Igor KinGamer em Dom 27 Jun 2010, 16:21

É bem simples sem criar objetos.

No evento create do personagem:
segx = x; // x do lugar que será seguido
segy = y; // y do lugar que será seguido
velocidade = 5; // Velocidade com a qual o personagem seguirá o lugar clicado

No evento step:
if (mouse_check_button_pressed(mb_left)) // Se clicou com o botão esquerdo do mouse
{
segx = mouse_x; // Define a posição que o personagem seguirá
segy = mouse_y;
direction = point_direction(x, y, segx, segy); // Define a direção para a posição
}
if (point_distance(x, y, segx, segy) > velocidade) // Só anda para o ponto se a distância for maior que a velocidade
speed = velocidade;
else
speed = 0;


Obs.: Se você quiser que ele desvie de objetos, então tem que usar o mp_potential_step. Aliás, você pode usar o mp_potential_step mesmo se não quiser que ele desvie.
Spoiler:
No evento create do personagem:
segx = x; // x do lugar que será seguido
segy = y; // y do lugar que será seguido

No evento step:
if (mouse_check_button_pressed(mb_left)) // Se clicou com o botão esquerdo do mouse
{
segx = mouse_x; // Define a posição que o personagem seguirá
segy = mouse_y;
}
mp_potential_step(segx, segy, 5 /*essa é a velocidade*/, false /*desviar apenas de sólidos*/)

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Westerbly em Dom 27 Jun 2010, 16:44

E pra ele usar um gráfico diferente pra cada direção dependendo do lugar onde eu clico?

Westerbly

Número de Mensagens : 18
Idade : 20
Data de inscrição : 04/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://w3down.zxq.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Thiago_o_programador em Dom 27 Jun 2010, 16:45

grafico? Que grafico? Ta falando de sprites? o q?

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Westerbly em Dom 27 Jun 2010, 16:48

Isso, sprites. Tipo, num exemplo do GMaker tem um gráfico pra cada direção do personagem, quero fazer assim, só que como não se trata de um movimento e sim de uma 'perseguição', não sei como fazer, porque a direção vai depender de onde eu clicar.

Westerbly

Número de Mensagens : 18
Idade : 20
Data de inscrição : 04/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://w3down.zxq.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Igor KinGamer em Dom 27 Jun 2010, 16:50

Westerbly escreveu:E pra ele usar um gráfico diferente pra cada direção dependendo do lugar onde eu clico?

Se é top view (visto de cima), usa image_angle. Você tem que ter o sprite do personagem virado para a direita. Então, no step, coloca:
image_angle = direction;
A origem do sprite deve estar centralizada ("origem" é o ponto pelo qual o sprite é "segurado"). Na janela das propriedades do sprite há um botão escrito "Center". É só clicar nele.).


Última edição por Igor KinGamer em Dom 27 Jun 2010, 16:52, editado 1 vez(es)

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Thiago_o_programador em Dom 27 Jun 2010, 16:50

image_angle=point_direction(x,y,mouse_x,mouse_y )

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Westerbly em Dom 27 Jun 2010, 16:54

Mas aí ele vai usar alguma subimagem ou só vai girar o sprite pra tal ângulo?

Westerbly

Número de Mensagens : 18
Idade : 20
Data de inscrição : 04/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://w3down.zxq.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Igor KinGamer em Dom 27 Jun 2010, 16:56

Só vai girar o sprite.
PS.: Só funciona no GM Pro.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Westerbly em Dom 27 Jun 2010, 17:01

Ah, eu só tenho o Lite. Não tem um jeito de usar outro sprite de acordo com o ângulo do clique?

Westerbly

Número de Mensagens : 18
Idade : 20
Data de inscrição : 04/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://w3down.zxq.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Igor KinGamer em Dom 27 Jun 2010, 17:19

Tem um outro jeito, que gasta uma considerável quantidade de espaço a mais, mas isso é melhor do que nada.

Na janela de propriedades do sprite, clique em "Edit Sprite". Na nova janela, vá no menu "Animation" > "Rotation Sequence" > "Counter-Clockwise".

Em number of frames, você coloca a quantidade de subimages que serão criadas. Quanto maior o número, melhor será a rotação, porém ficará mais pesado.
72 subimages devem ser (mais do que) o suficiente. Até 36 devem dar. O problema é quando precisa aparecer o objeto girando. Mas, no seu caso, ele apenas irá numa direção, sem alterá-la pelo caminho, então nem vai dar para perceber que a direção não está muito certa.
Em Degrees, coloque 360.

Então, no evento step, coloque:

image_index = direction/(360/quantidade_de_subimages);

Não esqueça de colocar o valor certo em "quantidade_de_subimages" e, mesmo fazendo desse jeito, centralize o sprite.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Westerbly em Dom 27 Jun 2010, 17:29

E funciona no Lite?

Westerbly

Número de Mensagens : 18
Idade : 20
Data de inscrição : 04/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://w3down.zxq.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Igor KinGamer em Dom 27 Jun 2010, 17:30

É para funcionar.

PS.: Em vez de:
image_index = direction/(360/quantidade_de_subimages);
Coloque:
image_index = round(direction/(360/quantidade_de_subimages));

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Westerbly em Dom 27 Jun 2010, 17:48

Eu já tinha as subimages de todas as direções, foi só uma questão de reordenar a animação, mas mesmo assim a dica da rotação também foi útil. Ficou perfeito, brigadão ae!

Westerbly

Número de Mensagens : 18
Idade : 20
Data de inscrição : 04/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://w3down.zxq.net

Voltar ao Topo Ir em baixo

Re: [DÚVIDA NOVAMENTE] Clique do Mouse criar objeto

Mensagem por Conteúdo patrocinado Hoje à(s) 00:26


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