Entrar
Últimos assuntos
» player não consegue andarpor 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
Problemas com sprite
2 participantes
Página 1 de 1
Problemas com sprite
Pessoal O/ estou com um problema, meu personagem principal poderá andar para direita e para esquerda, só que quando fui fazer os códigos no jogo, ele vai para a direita normalmente, mas, quando aperta o botão para esquerda o sprite dele não muda (ele faz tipo um moonwalk), então para contornar isso resolvi usar o image_xscale, mas, isso acaba atrapalhando na colisão, porque quando aperto para a esquerda, o personagem meio que avança um pouco para a esquerda (provavelmente para o sprite virar) então, eu queria saber que raios está errado com meu codigo
--
Quem quiser observar o problema de perto: https://www.dropbox.com/s/dpd6mg3peyubwrj/Sparck%20Racer.project.gmx
- Código:
//Create do player
if global.cor = 1 { //Se escolheram a cor amarela...
sprite_index = Amarelo_andandod
image_speed = 0
}
if global.cor = 2 {
sprite_index = Azul_andandod
image_speed = 0
}
if global.cor = 3 {
sprite_index = Laranja_andandod
image_speed = 0
}
if global.cor = 4 {
sprite_index = Preto_andandod
image_speed = 0
}
if global.cor = 5 {
sprite_index = Rosa_andandod
image_speed = 0
}
if global.cor = 6 {
sprite_index = Verde_andandod
image_speed = 0
}
if global.cor = 7 {
sprite_index = Vermelho_andandod
image_speed = 0
}
if global.cor = 8 {
sprite_index = Violeta_andandod
image_speed = 0
}
global.velocidade = 5 //Velocidade igual a 5
global.jogo = 1
- Código:
//Step do player
//Movimentos
if keyboard_check(vk_right) && place_free(x+4,y) { //Se estiver para direita
image_speed = 2
if global.cor = 1 {
sprite_index = Amarelo_andandod
} else if global.cor = 2 {
sprite_index = Azul_andandod
} else if global.cor = 3 {
sprite_index = Laranja_andandod
} else if global.cor = 4 {
sprite_index = Preto_andandod
} else if global.cor = 5 {
sprite_index = Rosa_andandod
} else if global.cor = 6 {
sprite_index = Verde_andandod
} else if global.cor = 7 {
sprite_index = Vermelho_andandod
} else if global.cor = 8 {
sprite_index = Violeta_andandod
}
x += global.velocidade
} else if keyboard_check(vk_left) && place_free(x-4,y) { //Se estiver para esquerda
image_speed = 2
if global.cor = 1 {
sprite_index = Amarelo_andandoe
} else if global.cor = 2 {
sprite_index = Azul_andandoe
} else if global.cor = 3 {
sprite_index = Laranja_andandoe
} else if global.cor = 4 {
sprite_index = Preto_andandoe
} else if global.cor = 5 {
sprite_index = Rosa_andandoe
} else if global.cor = 6 {
sprite_index = Verde_andandoe
} else if global.cor = 7 {
sprite_index = Vermelho_andandoe
} else if global.cor = 8 {
sprite_index = Violeta_andandoe
}
x -= global.velocidade
} else { //Se estiver parado
image_speed=0
image_index=0
}
--
Quem quiser observar o problema de perto: https://www.dropbox.com/s/dpd6mg3peyubwrj/Sparck%20Racer.project.gmx
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com sprite
Se você está usando image_xscale para inverter a direção do sprite, saiba que o origin x do sprite deve ser sempre no centro, senão o "passo extra" sempre vai acontecer.
Re: Problemas com sprite
Willy escreveu:Se você está usando image_xscale para inverter a direção do sprite, saiba que o origin x do sprite deve ser sempre no centro, senão o "passo extra" sempre vai acontecer.
Origin x? mas ele nao corta o sprite?
Mas, nesse caso então nao vou usar o image_xscale, pois não sabia disso, mas, o que será que tá errado com meu codigo, pela logica ele ta certo
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com sprite
Não. Apenas define qual é o eixo do sprite.vitorfernandes13 escreveu:Origin x? mas ele nao corta o sprite?
Nem cheguei a ver seu código/engine, só pelo descrição do problema dá pra saber.
Re: Problemas com sprite
Willy escreveu:Não. Apenas define qual é o eixo do sprite.vitorfernandes13 escreveu:Origin x? mas ele nao corta o sprite?
Nem cheguei a ver seu código/engine, só pelo descrição do problema dá pra saber.
Eu fiz 16 sprites, 1 para direita, e outro para esquerda, com 8 cores diferentes, então no meu próximo projeto eu usarei o image_xscale
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com sprite
Observei seu código. Apesar de não ser muito enxuto (dá pra resumir seu código e aumentar a eficiência/manutenção/implementação se você usar arrays), ele aparenta funcionar de forma correta.
Sobre o origin:
Para poder "inverter" a sprite, você deve usar:
Nota: Você mandou um arquivo inválido no lugar da engine.
Sobre o origin:
Para poder "inverter" a sprite, você deve usar:
Se você usar qualquer outro valor, a imagem vai distorcer, dando a impressão que ela foi cortada. Lembre-se que o origin x deve sempre estar no meio conforme mostrado na imagem acima.Para direita: image_xscale = 1;
Para esquerda: image_xscale = -1;
Nota: Você mandou um arquivo inválido no lugar da engine.
Re: Problemas com sprite
Willy escreveu:Observei seu código. Apesar de não ser muito enxuto (dá pra resumir seu código e aumentar a eficiência/manutenção/implementação se você usar arrays), ele aparenta funcionar de forma correta.
Sobre o origin:
Para poder "inverter" a sprite, você deve usar:Se você usar qualquer outro valor, a imagem vai distorcer, dando a impressão que ela foi cortada. Lembre-se que o origin x deve sempre estar no meio conforme mostrado na imagem acima.Para direita: image_xscale = 1;
Para esquerda: image_xscale = -1;
Nota: Você mandou um arquivo inválido no lugar da engine.
Duas coisas que eu sou horrível são loops e arrays ficaria feliz se vc mostrasse um "exemplo enxuto"
Obrigado pela dica do image_xscale, vou tentar usar se meu codigo não der certo, mas eu vou fazer dar certo ,
E o arquivo não é invalido, é do GM Studio
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com sprite
Seu código ficaria mais ou menos assim:
Create:
Apenas isso já define uma cor inicial pro player e dispensa aquele monte de código no step. global.CorSelecionada deve ser um numero de 0 a 3 (vide exemplo) para selecionar a cor do player se referindo a uma array.
Sobre o arquivo, você tem que tem que gerar um gmz para me passar. Faça download e tente abrir o que você postou e vai ver do que eu estou falando.
Create:
- Código:
//Popula as Arrays
Cor[0] = Amarelo_andandod
Cor[1] = Azul_andandod
Cor[2] = Laranja_andandod
Cor[3] = Preto_andandod
[...continua...]
sprite_index = Cor[global.CorSelecionada];
Apenas isso já define uma cor inicial pro player e dispensa aquele monte de código no step. global.CorSelecionada deve ser um numero de 0 a 3 (vide exemplo) para selecionar a cor do player se referindo a uma array.
Sobre o arquivo, você tem que tem que gerar um gmz para me passar. Faça download e tente abrir o que você postou e vai ver do que eu estou falando.
Re: Problemas com sprite
Aqui arrumei o arquivo
Obrigadode novo
https://www.dropbox.com/s/k9s5az6i5tl4udm/Sparck%20Racer.gmz
Vou tentar fazer esses arrays aqui, obrigadode novo
Dps, vc poderia dar uma conferida no arquivo?mentira, quero que vc olhe tambem o meu jogo
So pra ver mesmo o que é que causa o problema, eu to começando a fica com raiva disso
Obrigado
https://www.dropbox.com/s/k9s5az6i5tl4udm/Sparck%20Racer.gmz
Vou tentar fazer esses arrays aqui, obrigado
Dps, vc poderia dar uma conferida no arquivo?
So pra ver mesmo o que é que causa o problema, eu to começando a fica com raiva disso
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Problemas com sprite
Agora sim consegui ver seu projeto...
Observei que você precisa não só mexer como entender a funcionalidade do origin (sua mola que o diga). De qualquer modo, pra resolver seu problema, vá em todos os sprites do personagens e deixe a origin x em 20 (metade de 41 arredondado). Depois, coloque esse código no step:
Sobre seu jogo, não tenho muito o que dizer pois o mesmo está bem no começo... Só recomendo que use cores menos vivas.
Enfim, flws...
Observei que você precisa não só mexer como entender a funcionalidade do origin (sua mola que o diga). De qualquer modo, pra resolver seu problema, vá em todos os sprites do personagens e deixe a origin x em 20 (metade de 41 arredondado). Depois, coloque esse código no step:
- Código:
if keyboard_check(vk_right){
image_xscale = 1;
}else if keyboard_check(vk_left){
image_xscale =-1;
}
Sobre seu jogo, não tenho muito o que dizer pois o mesmo está bem no começo... Só recomendo que use cores menos vivas.
Enfim, flws...
Re: Problemas com sprite
Willy escreveu:Agora sim consegui ver seu projeto...
Observei que você precisa não só mexer como entender a funcionalidade do origin (sua mola que o diga). De qualquer modo, pra resolver seu problema, vá em todos os sprites do personagens e deixe a origin x em 20 (metade de 41 arredondado). Depois, coloque esse código no step:Peço que não deixe esse meu código como definitivo pois é apenas para exemplo. Recomendo que tente colocar de um modo seguro para evitar bugs se achar necessário.
- Código:
if keyboard_check(vk_right){
image_xscale = 1;
}else if keyboard_check(vk_left){
image_xscale =-1;
}
Sobre seu jogo, não tenho muito o que dizer pois o mesmo está bem no começo... Só recomendo que use cores menos vivas.
Enfim, flws...
Obrigado Willy, seu nome já vai estar nos agradecimentos
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Problemas com animação de Sprite
» [Resolvido]Problemas no sprite
» Problemas com troca de sprite
» Problemas com sprite offset e lengthdir !!
» Problemas com criação de sprite através de surface
» [Resolvido]Problemas no sprite
» Problemas com troca de sprite
» Problemas com sprite offset e lengthdir !!
» Problemas com criação de sprite através de surface
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos