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
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 18:28

» 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

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16


seleção de sprites

4 participantes

Ir para baixo

seleção de sprites Empty seleção de sprites

Mensagem por reddragon Qui 20 Out 2011, 17:13

estou tentando montar um sistema de troca de sprite para um jogo isométrico o nome de meus sprites são os seguinte:

sprites parado:
  • spr_teste_p_costa
  • spr_teste_p_frente
  • spr_teste_p_lado
  • spr_teste_p_d_cima
  • spr_teste_p_d_baixo


sprites andando
  • spr_teste_a_costa
  • spr_teste_a_frente
  • spr_teste_a_lado
  • spr_teste_a_d_cima
  • spr_teste_a_d_baixo


OBS: p de parado, a de andando, d de diagonal.

criei essas variáveis para me auxiliar:
Código:
mouse_destinio_x = x    //garda o destino em x
mouse_destinio_y = y    //garda o destino em y
velocidade = 5
imagem_direcao = 0      //quarda qual direção o player esat andando
imagem_nome = "teste"  //nome da imagem
imagem_index = ""      //nome da imagem montada
andando = "_p"          //garda se estou andando ou parado

e código que fiz foi o seguinte:

Código:
if mouse_check_button(1){
    mouse_destinio_x = mouse_x
    mouse_destinio_y = mouse_y
}

if point_distance(x,y,mouse_destinio_x,mouse_destinio_y) > velocidade{
    andando = "_a"
    move_contact_solid(point_direction(x,y,mouse_destinio_x,mouse_destinio_y),velocidade);
    imagem_direcao = floor((point_direction(x,y,mouse_destinio_x,mouse_destinio_y) + 22.5) / 45)
}else{
    x = mouse_destinio_x
    y = mouse_destinio_y
    andando = "_p"
}

switch (imagem_direcao)
{
    case 0:case 8:  imagem_index = ("spr_" + string(imagem_nome) + string(andando) + "_lado")      image_xscale = -1  break;
    case 1:        imagem_index = ("spr_" + string(imagem_nome) + string(andando) + "_cima")      image_xscale = -1  break;
    case 2:        imagem_index = ("spr_" + string(imagem_nome) + string(andando) + "_costa")      image_xscale =  1  break;
    case 3:        imagem_index = ("spr_" + string(imagem_nome) + string(andando) + "_d_cima")    image_xscale =  1  break;
    case 4:        imagem_index = ("spr_" + string(imagem_nome) + string(andando) + "_lado")      image_xscale =  1  break;
    case 5:        imagem_index = ("spr_" + string(imagem_nome) + string(andando) + "_d_baixo")    image_xscale =  1  break;
    case 6:        imagem_index = ("spr_" + string(imagem_nome) + string(andando) + "_frente")    image_xscale =  1  break;
    case 7:        imagem_index = ("spr_" + string(imagem_nome) + string(andando) + "_d_baixo")    image_xscale = -1  break;
}

sprite_index = imagem_index

eu ando utilizando o mouse e com a divisão do angulo entre eu e o destino eu chego a imagem que o player tem de ter entretanto me parece que a variável sprite_index não aceita uma string como resultado.

já tentei usa comandos como o sprite_get_number, sprite_get_name mas não obtive sucesso.

a quem souber resolver meu problema agradeço antecipadamente.
reddragon
reddragon

Data de inscrição : 19/03/2008
Reputação : 0
Número de Mensagens : 267
Prêmios : seleção de sprites 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

seleção de sprites Empty Re: seleção de sprites

Mensagem por Pit Bull Qui 20 Out 2011, 17:21

cria condições:
exemplo:

if ("spr_" + string(imagem_nome) + string(andando) + "_cima")==string(spr_spr_teste_p_frente) {
image_index=2
}else

dai você usa bastante o else,claro que o script ficará grande, então e só criar um script para diminui-lo.
Pit Bull
Pit Bull

Data de inscrição : 31/08/2010
Reputação : 16
Número de Mensagens : 646
Prêmios : seleção de sprites 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
Plataformas :
  • Unity
  • C#
  • Outros


https://discord.gg/ZPM2d6q

Ir para o topo Ir para baixo

seleção de sprites Empty Re: seleção de sprites

Mensagem por reddragon Qui 20 Out 2011, 18:07

;) value Pit Bull entretanto eu tive todo esse trabalho na intenção de poder trocar a sprite só mudando a varial imagem_nome
reddragon
reddragon

Data de inscrição : 19/03/2008
Reputação : 0
Número de Mensagens : 267
Prêmios : seleção de sprites 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

seleção de sprites Empty Re: seleção de sprites

Mensagem por PedroX Qui 20 Out 2011, 18:42

Coloca assim:

Código:
execute_string("sprite_index="+"imagem_index")

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : seleção de sprites Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

seleção de sprites Empty Re: seleção de sprites

Mensagem por reddragon Qui 20 Out 2011, 18:49

eu colocaria assim:

execute_string("sprite_index="+ string(imagem_index))

mais execute_string eu usaria como ultima opção porque é um comando muito lento
reddragon
reddragon

Data de inscrição : 19/03/2008
Reputação : 0
Número de Mensagens : 267
Prêmios : seleção de sprites 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

seleção de sprites Empty Re: seleção de sprites

Mensagem por Luiz A. Oliveira Qui 20 Out 2011, 19:10

Seria melhor usar o direction, mesmo num jogo isométrico e mesmo com movimentação no mouse. Procure ter uma ideia de como sair o direction de acordo com o angulo da imagem. Tipo:
Código:
switch(direction)
{
case 45:
case 135:
case 225:
case 315
}
Não sei se esses são os angulos certos de um jogo isométrico.
Luiz A. Oliveira
Luiz A. Oliveira

Games Ranking : Nota C

Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Reputação : 5
Número de Mensagens : 914
Prêmios : seleção de sprites 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

http://luizgm.blogspot.com/

Ir para o topo Ir para baixo

seleção de sprites Empty Re: seleção de sprites

Mensagem por PedroX Qui 20 Out 2011, 19:55

Ou você pode colocar numa array.
Ou até num ds_map, que é rápido e prático.
E para você não precisar digitar tudo, você pode fazer assim:
Código:
sprites=ds_map_create()
for(i=0;i<=numero de sprites;i+=1){
ds_map_add(sprites,sprite_get_name(i),i)
}

Assim ele irá mapear o nome da sprite com a index dela.
É claro que a primeira id no exemplo seria 0. Você tem que adaptar o loop.

Depois você pode tentar:

Código:
sprite_index=ds_map_find_value("string que você formou")

Obs: Use o loop se quiser facilitar.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : seleção de sprites Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

seleção de sprites Empty Re: seleção de sprites

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