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
» player não consegue andar
por 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

» 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

» 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


Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

+3
MatheusReis
saim
GustavoLC
7 participantes

Ir para baixo

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por GustavoLC Sex 10 Fev 2012, 02:07

Pessoal , procurei no fórum e não achei nenhum tópico que correspondesse à minha necessidade.

Há alguma forma de eu mudar as cores de uma sprite dentro do jogo? Além disso, há como mudar uma determinada cor em específico?


Pergunto isso pq estou fazendo um fan-game do megaman x e, para quem já jogou, sabe que quando ele troca de arma, as cores de sua armadura tb mudam e gostaria de fazer esse efeito. No entanto, fazer um pacote de sprites de todos os movimentos, englobando um conjunto de cores, seria, acredito eu, impraticável.


Alguém sabe se isso é possível?
GustavoLC
GustavoLC

Data de inscrição : 20/11/2011
Reputação : 1
Número de Mensagens : 39
Prêmios : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por saim Sex 10 Fev 2012, 08:38

GustavoLC escreveu:No entanto, fazer um pacote de sprites de todos os movimentos, englobando um conjunto de cores, seria, acredito eu, impraticável.
É nada.
Conhece a função draw_sprite_color? Nem vou perder tempo explicando pra que ela serve.
"Peraí, só partes da armadura dele devem mudam de cor, não dá pra pintar o megaman TODO".
Verdade. Mas quem disse que você vai usar um sprite só pra cada imagem?

Conheço duas formas de fazer isso. Ambas requerem que você separe cada imagem do megaman em duas sprites - a parte que está sempre da mesma cor e a parte colorida.
A primeira, mais fácil de entender e talvez menos eficiente, é usar dois draw_sprite, sendo que o segundo é draw_sprite_color. Quando as imagens se sobreporem, o jogador nem vai saber que tem duas meias-imagens ali.
A segunda é criar uma surface e, a partir dessa surface, criar um pacote de imagens DURANTE o jogo (pode ser durante o carregamento do jogo). Você desenha a sprite sem cores, desenha a colorida, exporta como sprite, limpa a surface. Desenha a srpite sem cores, desenha a colorida (com outra cor), exporta de novo. Repita até passar por todas as cores e você terá todas as sprites em todas as cores. Se você manjar de arrays, fica fácil chamar a sprite certa na hora certa.

Outra vantagem desses métodos é que não precisa mudar só as cores, você pode usar sprites diferentes pra dar um visual diferenciado (um cotovelo mais pontudo, um capacete com chifres, etc.).
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 : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por GustavoLC Sex 10 Fev 2012, 09:09

Valei, Saim, mas acho que esses recursos citados por vc só funcionam na versão Pro, não é mesmo? Estou usando a versão Lite, por enquanto. De qualquer form
a, obrigado pela resposta.
GustavoLC
GustavoLC

Data de inscrição : 20/11/2011
Reputação : 1
Número de Mensagens : 39
Prêmios : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por saim Sex 10 Fev 2012, 09:42

É, infelizmente, essas funções só funcionam na versão pro (e eu me confundi, não existe draw_sprite_color, a função seria draw_sprite_ext, sendo que um dos argumentos é a cor).

Acho que, nesse caso, não resta muita alternativa senão ter todos os sprites. Nem pintar o megaman inteiro funciona na lite.

Mas o editor de imagens do game maker tem uma ferramenta de substituição de tons que pode ser útil. Você escolhe um tom (azul, por exemplo) e todo o azul da imagem será substituído por outro tom de sua escolha (como vermelho). Isso pode ser usado pra criar rapidamente sprites parecidas, mas de outras cores.
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 : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por MatheusReis Sex 10 Fev 2012, 09:55

Movido de 'Formação de Equipes' para 'Perguntas & Respostas'. Mais atenção ao postar.
MatheusReis
MatheusReis

Games Ranking : Nota A

Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Reputação : 31
Número de Mensagens : 1093
Prêmios : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • Java
  • C#
  • Javascript


http://www.mathaeuz.deviantart.com

Ir para o topo Ir para baixo

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por GustavoLC Sex 10 Fev 2012, 10:29

Obrigado, Saim. O editor de imagens do Game aker realmente é bem eficiente, mas administrar novas sprites não seria interessante por conta do alto número. Ainda não comprei a versão PRO até dominar mais a versão Lite, mas isso acontecerá em breve.

Matheus Reis, desculpe pelo post, na verdade, nem sei como ele foi parar em "Formação de Equipes", rsrs. Um Abraço.
GustavoLC
GustavoLC

Data de inscrição : 20/11/2011
Reputação : 1
Número de Mensagens : 39
Prêmios : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por Mannoroth Sex 10 Fev 2012, 11:35

será q dá pra mudar a hue da sprite durante o jogo? sei q o color_get_hue(color) informa uma determinada cor, mas nao sei como alterar ela. se for possivel isso tbm pode ser possivel mudar as cores.
Mannoroth
Mannoroth

Games Ranking : Nota D

Notas recebidas : D+D
Data de inscrição : 05/10/2010
Reputação : 12
Número de Mensagens : 841
Prêmios : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por saim Sex 10 Fev 2012, 13:16

Acho que o Pedrø andou lendo esse tópico. Olha a engine que ele postou.

(ainda não baixei a engine, então não sei se dá pra rodar em lite)
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 : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por Mannoroth Sex 10 Fev 2012, 13:42

engine do pedro>> a imagem tem que estar em bmp, nos teste q eu fiz com megamanx a qualidade cai muuito ao converter pra bmp. E a imagem convertida nao abre, sempre da erro. Eu nunca terminei meu projeto de megamanx tbm, conseguir poderia ser util pra mim tbm. Tentei alterar a engine pra abrir outros formatos, e nao consegui tbm. Se alguem conseguir usar essa engine corretamente avisae.
Mannoroth
Mannoroth

Games Ranking : Nota D

Notas recebidas : D+D
Data de inscrição : 05/10/2010
Reputação : 12
Número de Mensagens : 841
Prêmios : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por PedroX Sex 10 Fev 2012, 17:03

Eai, hoje eu postei um exemplo de como mudar alguma cor de uma imagem externa. Mas é claro que você pode exportar sua sprite e depois trocar a cor.

https://gmbr.forumeiros.com/t20925-engine-mudar-certa-cor-de-uma-imagem

Você poderia usar sprite_save().

Não tem como abrir a imagem convertida, a menos que você exporte o sprite.
Não entendo o motivo da qualidade cair, já que bmp é um dos formatos que guarda muita informação.

Não sei se será possivel abrir outros formatos, principalmente os com compressão.

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 : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por GameMakerTutoriais Ter 14 Fev 2012, 21:18

GustavoLC escreveu:Há alguma forma de eu mudar as cores de uma sprite dentro do jogo? Além disso, há como mudar uma determinada cor em específico?

Pergunto isso pq estou fazendo um fan-game do megaman x e, para quem já jogou, sabe que quando ele troca de arma, as cores de sua armadura tb mudam e gostaria de fazer esse efeito. No entanto, fazer um pacote de sprites de todos os movimentos, englobando um conjunto de cores, seria, acredito eu, impraticável.

O Kabeção fez uma dll excelente pra fazer isso, ela muda as cores do sprite em tempo de execução do jogo, dá uma olhada:

Tópico: https://gmbr.forumeiros.com/t19142-dll-gmtint

Outro esquema muito bom é alternar entre palentas de cores de GIF, o que é muito simples no Photoshop. Não dá trabalho quase nenhum porque você só vai abrir a paleta pra editar as cores e salvar com a extensão ACT. Eu fiz um exemplo:

Aqui: http://bit.ly/mxXNEE

Falou!


Última edição por Ninja8086 em Qua 15 Fev 2012, 09:57, editado 1 vez(es)
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty

Medalhas x 0 Tutoriais x 4 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por vinians Ter 14 Fev 2012, 22:09

Amigo isso é bem simples de fazer. Veja como:
1) Crie o sprite base do Megaman X sem a armadura.

2) Crie um outro sprite e desenhe as partes da armadura que você que que mude de cor da cor branca.

No Evento Create:
Código:

cor_da_armadura = c_red; //qualquer cor aqui
No Evento Draw:
Código:

draw_self(); //desenha o sprite principal sem a armadura
draw_sprite_ext(x, y, sprArmadura, 0, image_xscale, image_yscale, image_angle, cor_da_armadura, image_alpha);
Pronto, agora basta você trabalhar um pouco no código e adaptar para o seu jogo.
Explicação:
Desenhando a sprite da armadura na cor branca todos os Bits da cor estarão setados com 1's assim a cor sera exatamente a cor especificada no parâmetro.
Obs. O comando draw_sprite_ext() existe na versão lite. Usei a versão 8.1 do GM.
Flws!
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2716
Prêmios : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

Mensagem por Mannoroth Qua 15 Fev 2012, 00:10

é, o que o vinians falou deu certo testei aqui cheers . Eu tbm to acompanhando isso pq me interessa, ainda vou precisar. No gm8.0 é assim:
Código:
draw_sprite_ext(sprArmadura, 0, x,y,image_xscale, image_yscale, image_angle, c_green, 1)
no lugar de c_green bota a cor q quer, q pode ser uma variavel como o vinians postou. A variavel seria definida pelo status de cor de armadura q o megaman ta usando entao.
só que o draw_self nao existe no 8.0, acho q equivale a isso:
Código:
draw_sprite(sprite_index,image_index,x,y)

Lembrando que sera necessario umas 3 draw_sprite_ext, cada uma cuidando de uma sprite q sera parte da armadura, afinal qd o megaman muda de armadura, são pelo menos 3 mudanças de cor (a armadura nao é homogeneamente de uma cor só). E tem q botar os sprites em branco parado, pulando, caindo, correndo, dando dash, atirando, levando pancada1, levando pancada2 e outros dependendo de como vai ser o jogo e q habilidades vai ter o megaman. Bom, no megaman sao tantas tonalidades de cores, q nao sei se aquelas 19 q tem nas funçoes do game maker (c_aqua, c_black,c_blue, etc) vão bastar pro jogo.
Mannoroth
Mannoroth

Games Ranking : Nota D

Notas recebidas : D+D
Data de inscrição : 05/10/2010
Reputação : 12
Número de Mensagens : 841
Prêmios : Dúvida: Mudando uma determinada cor da sprite dentro do jogo! 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

Dúvida: Mudando uma determinada cor da sprite dentro do jogo! Empty Re: Dúvida: Mudando uma determinada cor da sprite dentro do jogo!

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