- Ranking :
Data de inscrição : 26/08/2009
Número de Mensagens : 969
Insígnias de JAM :x 0
x 0
x 0
Reputação : 12
Prêmios: 1
:
:
Grid.......
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.
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.
- Data de inscrição : 05/10/2009
Número de Mensagens : 199
Insígnias de JAM :x 0
x 0
x 0
Reputação : 0
Prêmios:
:
:
Re: Grid.......
em Sex 06 Nov 2009, 18:05
AXO que não tem jeito. mas tbm não sei muito de grid, qual a vantagem???
- Ranking :
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :x 0
x 1
x 0
Reputação : 52
Prêmios: 0
: 2
: 1
Re: Grid.......
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
EVENTO DRAW:
flw!
Coloque no EVENTO CREATE
- Código:
friction = 0.05;
- 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);
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;
}
flw!
- Ranking :
Data de inscrição : 26/08/2009
Número de Mensagens : 969
Insígnias de JAM :x 0
x 0
x 0
Reputação : 12
Prêmios: 1
:
:
Re: Grid.......
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);
}
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);
}
- Ranking :
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :x 0
x 1
x 0
Reputação : 52
Prêmios: 0
: 2
: 1
Re: Grid.......
em Sex 06 Nov 2009, 23:28
Saquei! Basta vc fazer a seguinte alteração:
No Evento CREATE:
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
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;
- Ranking :
Data de inscrição : 26/08/2009
Número de Mensagens : 969
Insígnias de JAM :x 0
x 0
x 0
Reputação : 12
Prêmios: 1
:
:
Re: Grid.......
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
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
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum