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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

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

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

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» 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

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


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 : 6086
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 : 6086
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


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