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
» Colisões não funcionando
por RastaMaan Ontem à(s) 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Ontem à(s) 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21


[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