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


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