GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[RESOLVIDO]Duvida - Movimento Isométrico

4 participantes

Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Nehorus 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)
Nehorus
Nehorus

Data de inscrição : 04/10/2012
Reputação : 0
Número de Mensagens : 7
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Thiago_o_programador 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
Thiago_o_programador
Thiago_o_programador

Games Ranking : Nota D

Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Reputação : 7
Número de Mensagens : 713
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por saim 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.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Nehorus 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

Nehorus
Nehorus

Data de inscrição : 04/10/2012
Reputação : 0
Número de Mensagens : 7
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Thyago 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.

[RESOLVIDO]Duvida - Movimento Isométrico Sprite3

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
}
Thyago
Thyago

Games Ranking : Nota B

Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por saim 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"
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Nehorus Qui 04 Out 2012, 14:10

Ok's Vou baixar o drive do meu scanner eu vou mostrar no papel !

https://2img.net/r/ihimg/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.
Nehorus
Nehorus

Data de inscrição : 04/10/2012
Reputação : 0
Número de Mensagens : 7
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por saim 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.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Nehorus Qui 04 Out 2012, 19:03

Se alguém souber movimentar isometricamente usando esse método posta aqui Smile
Nehorus
Nehorus

Data de inscrição : 04/10/2012
Reputação : 0
Número de Mensagens : 7
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Thyago Qui 04 Out 2012, 19:36

.Fiz um exemplo aqui,de uma olhada.

https://www.dropbox.com/s/040wild2qlp3gk7/isometrico.gmk
Thyago
Thyago

Games Ranking : Nota B

Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Nehorus Qui 04 Out 2012, 20:00

Muito grato Thyago não sei como agradece! farao
Nehorus
Nehorus

Data de inscrição : 04/10/2012
Reputação : 0
Número de Mensagens : 7
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Thyago Qui 04 Out 2012, 20:03

.Que isso cara,precisando é só falar.
Thyago
Thyago

Games Ranking : Nota B

Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Nehorus Qui 04 Out 2012, 20:24

Porque com os meus angulos não funfa ? farao Estou sendo muito exigente Happy
Nehorus
Nehorus

Data de inscrição : 04/10/2012
Reputação : 0
Número de Mensagens : 7
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Thyago 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
}
Thyago
Thyago

Games Ranking : Nota B

Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Nehorus Qui 04 Out 2012, 21:38

Pode crer What a Face algun dias sem dormi vou pirar affraid
Nehorus
Nehorus

Data de inscrição : 04/10/2012
Reputação : 0
Número de Mensagens : 7
Prêmios : [RESOLVIDO]Duvida - Movimento Isométrico Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[RESOLVIDO]Duvida - Movimento Isométrico Empty Re: [RESOLVIDO]Duvida - Movimento Isométrico

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos