Conectar-se
Quem está conectado
22 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 22 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 04/10/2012
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

[RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 13:11
É possível adaptar esse código do usuário CPinheiro, para movimento isométrico ?

//Define variáveis:
sprcima=argument0; //Sprite para cima
sprbaixo=argument1; //Sprite para baixo
spresq=argument2; //Sprite para a esquerda
sprdir=argument3; //Sprite para a direita

if direction>=45 and direction<=135
{
sprite_index=sprcima
}

if direction>=225 and direction<=315
{
sprite_index=sprbaixo
}

if direction<=225 and direction>=135
{
sprite_index=spresq
}

if direction<=45 or direction>=315
{
sprite_index=sprdir
}

Com uma régua de 360º testeis vários ângulos mas o sprite não movimentou corretamente.
Obs: Meu primeiro post.


Última edição por Nehorus em Sex 05 Out 2012, 11:14, editado 1 vez(es)
avatar
Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 712
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 13:30
Tente isso:
Código:
if direction>=45 and direction<=135
{speed=5
sprite_index=sprcima
}

if direction>=225 and direction<=315
{speed=5
sprite_index=sprbaixo
}

if direction<=225 and direction>=135
{speed=5
sprite_index=spresq
}

if direction<=45 or direction>=315
{speed=5
sprite_index=sprdir
}
Obs.: não havia nenhum code para a movimentação, esse era o problema
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 13:34
Olá, Nehorus, bem-vindo ao fórum.
O código apresentado não movimenta o objeto, apenas define em quais ângulos de movimento deve-se usar cada sprite. Adaptar isso pra uma movimentação isométrica é fácil, basta alterar os valores. E, claro, tomar cuidado pros valores de direction estarem entre 0 e 360 (se estiver a -180, por exemplo, a instância estará se movendo para a esquerda com a sprite de movimentação para a direita).
Com uma régua de 360º testeis vários ângulos mas o sprite não movimentou corretamente.
Ela se movimentou de alguma forma, pelo menos? É que sendo seu primeiro post, eu parto do princípio que você é iniciante e comete os erros de iniciantes. Um deles é definir a direção e esquecer de definir a velocidade. Se a velocidade for zero, a instância não vai se movimentar.

Nehorus, sugiro que você busque, no manual, algumas definições. Tente entender o que é objeto (object), instância (instance), sprite e mask. Dizer "objeto" quando queremos dizer "instância" é aceitável, mas dizer "sprite" acaba gerando confusão na cabeça de quem vai responder. E, já que você vai pesquisar mesmo, acrescente as definições de id, other, sprite_index, image_index e, se tiver tempo, parent. Se achar que existem definições parecidas, procure qual a diferença entre elas.
avatar
Data de inscrição : 04/10/2012
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 13:52
Não sou iniciante no Game Maker só fiquei um tempo sem programar e agora estou de volta.Aqui no forum tem um tópico do joaoneto que mostra como movimentar um personagem isométrico, mas é complicado.Algum tempo tinha conseguido movimentar(nas diagonais e mudar o sprite) usando esse método scratch

avatar
Ranking : Nota B
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Número de Mensagens : 1092
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 31

Prêmios
   : 1
   : 1
   :
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 13:56
.Esse é um script para mudar para a sprite correta,o movimento é feito a parte,conforme a direção do objeto ele ira mudar para a sprite adequada ,observando o desenho abaixo da para se ter uma noção de como adaptei,veja.



Código:
//Define variáveis:
sprcima=argument0; //Sprite para cima
sprbaixo=argument1; //Sprite para baixo
spresq=argument2; //Sprite para a esquerda
sprdir=argument3; //Sprite para a direita

if direction<90
{
sprite_index=sprcima
}

if direction>=180 and direction<=270
{
sprite_index=sprbaixo
}

if direction>=90 and direction<=180
{
sprite_index=spresq
}

if direction>=270
{
sprite_index=sprdir
}
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 14:04
Bom, como eu disse, o script só define a sprite_index. Pra se movimentar efetivamente, você precisa de mais código (ou outro script). Algo que defina a direção e a velocidade de movimentação. Aí, você usa esse código adaptado pra mostrar a sprite correta.
Aí você me pergunta "e qual o código pra movimentação isométrica?". Não sei. Tem mais de um jeito de chegar no mesmo resultado, e eu nem tenho certeza de qual o resultado que você quer chegar.
Na verdade, tenho a impressão que se você explicar tudo em detalhes, já vai ter uma idéia boa de como fazer. Detalhes como:
"ao apertar apenas a tecla pra cima, a personagem move-se num ângulo de 60°, ao apertar apenas a tecla pra direita, ela se move num ângulo de 0°, (...), sendo que a movimentação é sempre nesses ângulos e sempre numa velocidade constante de 5 pixels/step"
avatar
Data de inscrição : 04/10/2012
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 14:10
Ok's Vou baixar o drive do meu scanner eu vou mostrar no papel !

http://imageshack.us/photo/my-images/843/untitld1j.jpg/

round(point_direction(target_x,target_y,x,y)/45)

if mouse_check_button_released(mb_left)
{

target_x = round(mouse_x)
target_y = round(mouse_y)

move=1
}

if move = 1 {
image_speed = 0.2;
if (distance_to_point(target_x,target_y) > 5)
{
move_towards_point(target_x,target_y,2);
}else
{
speed=0
image_speed=0
move=0
}
}

if move=1
{
if direction>60 and direction<120
{speed=5
sprite_index=spr_up
}

if direction>300 and direction<240
{speed=5
sprite_index=spr_down
}

if direction>330 and direction<30
{speed=5
sprite_index=spr_left
}

if direction>300 and direction<330
{speed=5
sprite_index=spr_so
}

if direction>30 and direction<60
{speed=5
sprite_index=spr_ne
}

if direction>240 and direction<210
{speed=5
sprite_index=spr_se
}

if direction>210 and direction<150
{speed=5
sprite_index=spr_right
}

if direction>150 and direction<120
{speed=5
sprite_index=spr_no
}

}

Mas não funfa

#Editado por luiz_eldorado:
Post-triplo. Mensagens fundidas. Mas atenção da próxima vez! Alertado.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 16:54
ok, antes de comentar o código, deixa eu esclarecer que não tenho como ver as imagens do imageshack daqui, então todo o comentário é baseado só no código.

Primeiro, ele não tem nada de isométrico além das sprites. Quer dizer, dá pra andar em qualquer direção, com esse código, sempre com a mesma velocidade. Não que isso seja um problema.

Segundo, alguns intervalos têm que ser revistos. Por exemplo, pra usar o spr_dwn, a direction tem que ser MAIOR que 300 e MENOR que 240, ou seja, nunca vai acontecer.

Terceiro, algumas SPRITES têm que ser revistas. Por exemplo, quando a direction for menor que 30 ou maior que 330 (está "and", deveria ser "or"), a sprite deve ser da personagem andando para a direita. Está com o nome "spr_left" (pode ser uma sprite andando pra direita, mas acho pouco provável...).

Quarto, você verifica duas vezes se "move=1". Não é necessário, você pode fazer tudo dentro do mesmo "if", sem diferenças de resultado.

Por último, sugiro usar o evento do mouse pra fazer "move" ser igual a 1, mesmo. Isso é frescura minha, mas quanto menos código você colocar no step, mais rápido será o jogo. Não sei exatamente como funciona a coisa internamente, mas acho que usar um evento específico libera a memória que seria usada a cada step pra verificar se o botão do mouse foi mesmo solto.
avatar
Data de inscrição : 04/10/2012
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 19:03
Se alguém souber movimentar isometricamente usando esse método posta aqui Smile
avatar
Ranking : Nota B
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Número de Mensagens : 1092
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 31

Prêmios
   : 1
   : 1
   :
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 19:36
avatar
Data de inscrição : 04/10/2012
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 20:00
Muito grato Thyago não sei como agradece! farao
avatar
Ranking : Nota B
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Número de Mensagens : 1092
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 31

Prêmios
   : 1
   : 1
   :
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 20:03
.Que isso cara,precisando é só falar.
avatar
Data de inscrição : 04/10/2012
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 20:24
Porque com os meus angulos não funfa ? farao Estou sendo muito exigente Happy
avatar
Ranking : Nota B
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Número de Mensagens : 1092
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 31

Prêmios
   : 1
   : 1
   :
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 20:38
,Veja por exemplo isso que voce fez é impossivel de acontecer...e tem mais erros.
.Como vai ser maior que 300 e menor que 240?

Código:
if direction>300 and direction<240
{speed=5
sprite_index=spr_down
}
avatar
Data de inscrição : 04/10/2012
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: [RESOLVIDO]Duvida - Movimento Isométrico

em Qui 04 Out 2012, 21:38
Pode crer What a Face algun dias sem dormi vou pirar affraid
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum