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


Usando texturas no Game Maker

Ir para baixo

Usando texturas no Game Maker Empty Usando texturas no Game Maker

Mensagem por Convidad Ter 20 maio 2008, 00:20

Dá pra fazer muita coisa legal com esse modo de desenho! Dá até pra imitar aquele efeito de luz do Diablo II (o padrão de iluminação das salas): um degradê radial de branco para preto, de meio para a aresta em modo "blending screen". Para não dizer só inteligente é simplesmente perfeito e leve ao mesmo tempo!

Usando texturas no Game Maker Diablo10


Usando texturas no Game Maker Banner12

Logo vou testar os efeitos de blending que são os mesmos do Photoshop! Se conseguir fazer água e fogo como eu faço lá vou postá-los aqui para vocês. Texturas são leves e bonitas!

Bom, então vamos lá!

Antes de desenhar uma forma primitiva com essa textura, você deve definir alguns parâmetros, como:

texture_set_interpolation(tipo)

Interpolação funciona assim: quando redesenhamos uma imagem na tela de proporções diferentes da imagem original há perda ou ganho de pixels, ok?

É como se esticássemos uma imagem qualquer: se aumentamos há ganho de pixels, se reduzimos há perda.

A interpolação vem pra amenizar a distorção dessa imagem (da perda ou do ganho) para deixá-la o mais parecida possível antes da distorção. O que ela faz é "copiar" os pixels próximos de onde ocorreram essas diferenças e pôr nesses lugares para preenchê-los.

O efeito é perfeito e só se nota diferenças quando a distorção é "brusca".

Resumindo: interpolar uma textura consome mais memória.


texture_set_blending(mesclagem)

Blending quer dizer "mistura". Isso é um dos efeitos mais legais! Cada tipo de blend é um efeito diferente.

O que o blending faz é misturar os padrões de cores da textura aos demais desenhos que ficarão por trás da mesma, somando, subtraindo, multiplicando ou dividindo o valor dessas cores. Existem vários modos de mesclagem e recomendo experimentar todos para conseguir muitos efeitos diferentes.

Aqui só se define usar o efeito blending ou não (true ou false). Para definir esse efeito você vai ter que chamar a rotina draw_set_blend_mode(modo de mesclagem).

Atenção: só use o blending quando precisar dele pois por padrão ele está definido como true!!!



texture_set_repeat(repetir)

Aqui se define com true ou false se uma textura deve repetir-se para preencher uma forma ou não. O padrão é false.

Observação: isso é importante dependendo do que for desenhar. Suponhamos que o desenho seja um muro de tijolos (o clássico muro de tijolos de novo), bastaria que repetíssemos uma pequena textura de um tijolo ou dois para obter o efeito.


Definindo pontos de orientação da textura

Aqui é só um pouco mais complicado, então atenção aqui:

1 - A textura deve ter um tamanho que seja múltiplo de 2, por exemplo: 64x64 ou 128x128 (um bom tamanho para texturas). A largura e altura de uma textura podem ser obtidas através das funções texture_get_width(texid) e texture_get_height(texid). Esses valores são retornados entre 0 e 1 e não o tamanho em pixels!

2 - A textura deve ter um identificador que o Game Maker reconhece como um "id de textura". Você consegue esse id quando define uma sprite ou background para ser usado como textura. As funções são: sprite_get_texture(spr,subimg) e background_get_texture(back).

3 - Se optar pelos efeitos de blending, recomendo que use a função texture_preload(texid). Essa função carrega a textura na memória de vídeo (que é mais rápida). Use somente se a caixa "Preload Texture" na janela de propriedades da sprite não estiver marcada.

4 - Como eu disse no item 1, o valor de largura e altura da textura passarão a ser 0 e 1. Porque isso? É simples: ao invés de fazer várias texturas para um personagem, você pode fazer apenas uma contendo todas elas. Assim você deve especificar onde a textura será colocada na forma primitiva e que parte dela.

Basta se lembrar dos MOD'S de skins de muitos games por aí. Já abriu uma skin do GTA? É tudo assim: uma textura contendo várias outras texturas!


Agora sim é o desenho!

Usando texturas no Game Maker Banner12


Bom, como eu disse antes, o modo de desenho é o mesmo que havíamos falado no tópico acima. Galera, salvem esta "multi-textura" e usem o código abaixo. Esse jogo de texturas juntas é para que todos entendam melhor como funciona a posição da textura
no rotina de desenho. 0 (zero) equivale á 0 na textura e 1 equivale ao tamanho total, ok?

A rotina de desenho é:



draw_primitive_begin_texture(kind,texid) = para começar o desenho. Confira e lista de kinds (tipos de formas) que eu fiz no tópico acima. Para obter o id da textura, leia o item 1.

draw_vertex_texture(x,y,xtex,ytex) = para adicionar vértices (cantos) ao desenho.

draw_primitive_end() = para finalizar o desenho.

Usando texturas no Game Maker Textur10

1 - Carreguem essa textura para uma sprite nova e coloquem o nome de gmbr_textura.

2 - Criem um objeto qualquer em uma nova sala e em seu evento "Create" coloquem:


Código:
textura:=sprite_get_texture(gmbr_textura,0);
texture_preload(textura);


Agora no seu evento "Draw" ponham o código respectivo para cada textura:



Para desenhar a clássica parede de tijolos:

Código:
texture_set_repeat(true);
texture_set_interpolation(false);
texture_set_blending(false);

draw_primitive_begin_texture(pr_trianglestrip,textura);
draw_vertex_texture(20,mouse_y,0,0);
draw_vertex_texture(400,mouse_y,0.5,0);
draw_vertex_texture(20,400,0,0.5);
draw_vertex_texture(400,400,0.5,0.5);
draw_primitive_end();




Usando a textura de ladrilhos:

Código:
texture_set_interpolation(false);
texture_set_blending(false);

draw_primitive_begin_texture(pr_trianglestrip,textura);
draw_vertex_texture(20,mouse_y,0.5,0);
draw_vertex_texture(400,mouse_y,1,0);
draw_vertex_texture(20,400,0.5,0.5);
draw_vertex_texture(400,400,1,0.5);
draw_primitive_end();



Agora a textura de pedra:

Código:
texture_set_interpolation(false);
texture_set_blending(false);

draw_primitive_begin_texture(pr_trianglestrip,textura);
draw_vertex_texture(20,mouse_y,0,0.5);
draw_vertex_texture(400,mouse_y,0.5,0.5);
draw_vertex_texture(20,400,0,1);
draw_vertex_texture(400,400,0.5,1);
draw_primitive_end();


A textura de barro (que parece argila e tem sabor de pedra-sabão - lembram-se de Chaves?)


Código:
texture_set_interpolation(false);
texture_set_blending(false);

draw_primitive_begin_texture(pr_trianglestrip,textura);
draw_vertex_texture(20,mouse_y,0.5,0.5);
draw_vertex_texture(400,mouse_y,1,0.5);
draw_vertex_texture(20,400,0.5,1);
draw_vertex_texture(400,400,1,1);
draw_primitive_end();

Galera, lembrem-se que dúvidas também são importantes! Poste-as aqui no fórum!!! Às veses as respostas demoram por falta de conhecimento, mas não se esqueçam de que o objetivo principal do fórum é esse: compartilhar idéias, não cobrá-las! Ok?

"Uma dúvida só é maligna quando ao invés de incentivar a busca por conhecimento, incentiva o desagrado!"

Ha! Uma boa notícia: Fiquei sabendo que jogos como Mario Kart, foram feitos usando-se texturas e rotinas de desenho bem parecidas com estas. O Reddragon tinha razão: os menos atentos podem não perceber um efeito drawner que imita um 3d!

Boa sorte e até mais!!!


Usando texturas no Game Maker Banner12
avatar
Convidad
Convidado


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