Entrar
Ú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
Página 1 de 1
seleção de sprites
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:
sprites andando
OBS: p de parado, a de andando, d de diagonal.
criei essas variáveis para me auxiliar:
e código que fiz foi o seguinte:
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.
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- Data de inscrição : 19/03/2008
Reputação : 0
Número de Mensagens : 267
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: seleção de sprites
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.
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.
Re: seleção de sprites
;) value Pit Bull entretanto eu tive todo esse trabalho na intenção de poder trocar a sprite só mudando a varial imagem_nome
reddragon- Data de inscrição : 19/03/2008
Reputação : 0
Número de Mensagens : 267
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: seleção de sprites
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:
Re: seleção de sprites
eu colocaria assim:
execute_string("sprite_index="+ string(imagem_index))
mais execute_string eu usaria como ultima opção porque é um comando muito lento
execute_string("sprite_index="+ string(imagem_index))
mais execute_string eu usaria como ultima opção porque é um comando muito lento
reddragon- Data de inscrição : 19/03/2008
Reputação : 0
Número de Mensagens : 267
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: seleção de sprites
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
}
Re: seleção de sprites
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:
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:
Obs: Use o loop se quiser facilitar.
Até mais!
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:
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos