Grid.......

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

Grid.......

Mensagem por itallo em Sex 06 Nov 2009, 15:28

bom estou fazendo um teste com grid.....
sei porra nenhuma de como mexer com grid e estou curioso e com vontade de aprender a mexer com grid.......
então criei um projeto apenas para fazer testes de grid e queria saber se tem como fazer o seguinte:

quero fazer que o personagem tenha 8 direções:



cada uma com um angulo de 45º:



ou seja..... se estiver em tal 45º graus e eu clicar com o botão direito do mouse ele irápara aquela direção.......

resumindo:
quero saber como fazer um movimento diagonal usando o grid pelo click do mouse.

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Grid.......

Mensagem por TiagoBonadio em Sex 06 Nov 2009, 18:05

AXO que não tem jeito. mas tbm não sei muito de grid, qual a vantagem???

TiagoBonadio

Número de Mensagens : 199
Idade : 20
Data de inscrição : 05/10/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://animanga-games.forumeiros.com/

Voltar ao Topo Ir em baixo

Re: Grid.......

Mensagem por vinians em Sex 06 Nov 2009, 19:04

No GM temos duas maneiras de trabalhar com uma GRID. Se for no Free vc tem que usar um array bidimensional, se for o registrado você pode usar o ds_grid. De qualquer modo para você fazer o seu player andar de 45 em 45 graus não ha necessidade de se usar grids. Você pode calcular usando a posição do mouse. Assim:
Coloque no EVENTO CREATE
Código:

friction = 0.05;
Coloque no EVENTO Mouse->Global->RightPressed
Código:

var xx, yy, ang;
xx = mouse_x;
yy = mouse_y;
ang = point_direction(x, y, xx, yy);
ang = (ang div 45) * 45;
xnew = x + lengthdir_x(64, ang);
ynew = y + lengthdir_y(64, ang);
move_towards_point(xnew, ynew, 2);
Para visualizar a área do Right Click que vc pode clicar coloque isso no
EVENTO DRAW:
Código:

var i, xx, yy;
draw_sprite(sprite_index, 0, x, y);
i = 0;
draw_set_color(c_red);
while (i < 360)
{
  xx = x + lengthdir_x(64, i);
  yy = y + lengthdir_y(64, i);
  draw_line(x, y, xx, yy);
  i += 45;
}
Assim ele só se moverá de 45 em 45 graus, se vc quizer um movimento livre apenas comente a linha ang = (ang div 45) * 45; no evento do Mouse.
flw!

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: Grid.......

Mensagem por itallo em Sex 06 Nov 2009, 20:57

vinians vlws mas.....
eu quero o seguinte quando eu apertar o mouse pra uma direção ele segue essa direção..... mas se seu soltar o botão direito do mouse ele para de se mover......
intende?
tpw um montoro..... quando aperta fica acelerando... quando solta ele para.

vou tentar por no step
if mouse_button_check(mb_right)
{
var xx, yy, ang;
xx = mouse_x;
yy = mouse_y;
ang = point_direction(x, y, xx, yy);
ang = (ang div 45) * 45;
xnew = x + lengthdir_x(64, ang);
ynew = y + lengthdir_y(64, ang);
move_towards_point(xnew, ynew, 2);
}

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Grid.......

Mensagem por vinians em Sex 06 Nov 2009, 23:28

Saquei! Basta vc fazer a seguinte alteração:
No Evento CREATE:
Código:

friction = 0;

Depois troque o EVENTO do MOUSE por
Mouse->Global->Right Button
ou seja, ao inves de Mouse->Global->Right Pressed coloque este ai acima.

Depois coloque no evento Step->BeginStep
Código:

hspeed = 0;
vspeed = 0;

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: Grid.......

Mensagem por itallo em Sab 07 Nov 2009, 14:36

vlws vinians......
mas o seguinte eu quero por todas as informações.... tipo como se fosse um mapa.....
acho que se eu usasse o grid eu conseguiria saber em qual tile o personagem está e sob qual tile esta o mouse e também o angulo do mouse em relação do personagem.

pq.... sao 3 informações..... to pensando em um motor, que ele irá funcionar com essas 3 informações.... por exemplo:

"se o mouse estiver entre 22.5º e 70.5º do tile do personagem e apertar o botão direito"
{
mover para essa direção
ou seja subir na diagonal esquerda
}

/\
||
essa parte que não faço mínima idéia de como vou fazer......

tpw com o grid vou ter tipo uma cordenada saca?

vamos ver......


o personagem ta nessa cordenada:
x25 y46 (no tile x25 e no tile y46)

se o mouse estiver entre 22.5º e 70.5º do tile do personagem e apertar o botão direito
{
x-1
y-1
}

ou seja ele vai dizer pra tirar 1 de x e um de y entao o personagem deverá subir na diagonal.......

to embolado não sei como explicar

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Grid.......

Mensagem por Conteúdo patrocinado Hoje à(s) 09:44


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