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
#DGM Aula 03 - Sprites
+5
Suadao
lucas mendes
Mystery_boy_maker
Gsa2134
All-x
9 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
#DGM Aula 03 - Sprites
DESVENDANDO O GAME MAKER
Aula 03 - Sprites
(Atualizado 08/02/2015)
Eae pessoal! Tranquilo?
Hoje estarei postando uma aula extensa sobre Sprites, mostrando como manipula-las com maestria no Game Maker.
Vamos começar criando uma nova sprite. Para isso clique com o botão direto do mouse na pasta Sprites e selecione a opção Create Sprite. Ou se preferir clique no Pacman vermelho na barra de menus. Com isso uma janela será aberta:
Agora vamos dar um novo nome à nossa sprite. Na caixa Name apague o sprite0 e escreva spr_player.
Para abrir uma sprite clique em Load Sprite e escolha a imagem abaixo:
Note que logo após carregarmos a imagem no GM, abaixo do botão Edit Sprite aparecem as seguintes informações:
Width: Largura em pixels.
Height: Altura em pixels.
Number of subimages: Caso a imagem seja animada aqui será mostrado o numero de imagens que forma a animação.
Origin: É o eixo (x,y) da sprite, por padrão é 0. Esse eixo é muito importante quando falamos em rotação e escalonamento de Sprites.
Por isso há o botão center, para que possamos centralizar o eixo. Na animação abaixo você entenderá a o que é um eixo:
Rotação:
O circulo vermelho indica o eixo (x,y). O eixo do quadrado da esquerda é (0,0), já o da direita é (16,16).
O botão Edit Sprite abre o editor de Sprites do GM. Ele é super intuitivo e fácil de se mecher. Não necessita de uma uma explicação mais elaborada.
Na seção ao lado temos Collision Checking, que é a forma como a sprite detectará a colisão:
Precise Collision Checking (Checagem de colisão precisa): Quando ativa checa todos os pixels não transparentes da imagem. E quando desativada usa um retângulo para detectar a colisão.
Separate Collision Masks (Mascaras de colisão separadas): Habilita que cada subimagem da Sprite tenha sua própria colisão.
Logo abaixo temos o botão Modify Mask, onde configuramos as colisões da sprite.
Caso queira aprender a configurar as colisões abra o Spoiler abaixo:
- CLIQUE AQUI:
1: Escolhe a subimagem. Caso só exista uma essa opção não aparece;
2: Mostra a máscara de colisão em forma de sombra, ou seja toda a região sombreada é a área de colisão;
3: Separate Collision Masks (Mascaras de colisão separadas) é ativada para criar uma área de colisão para cada subimagem. Alpha Tolerance é o valor de transparencia para que o pixel seja desconsiderado da colisão;
4: Bounding Box (Caixa de delimitação) é a área da sprite a ser considerada na colisão. Que pode ser:
- Automatic (Automática): cria uma área de delimitação automaticamente;
- Full Imagem (Imagem inteira): usa toda imagem como área de delimitação;
- Manual: configura manualmente a área de delimitação.
5: Shape é o molde de área de demilitação (que corresponde à área sombreada), pode ser:
- Precise (Preciso): usa todos os pixels com Alpha Tolerance acima do valor dado como área de colisão;
- Rectangle (Retângulo): área de demilitação em forma de retângulo;
- Disk (Disco): área de demilitação em forma de disco;
- Diamond (Diamante ou lozango): área de demilitação em forma de lozango;
Finalizamos essa parte de importar a imagem para o nosso jogo. Agora vamos aos códigos (funções e variáveis) que nos ajudaram a manipular a imagem durante o jogo.
VARIÁVEIS:
image_alpha: modifica a transparência da sprite (0, totalmente transparente; 1, totalmente visivél);
image_angle: modifica a rotação da sprite em graus (0 à 359 graus);
image_blend: cor da sprite (c_red, vermelho);
image_index: subimagem atual (0 à número total de subimagens-1);
image_number: número total de subimagens;
image_speed: velocidade de animação;
image_xscale:
Escalonamento horizontal da sprite (1, tamanho normal; 2 dobro to
tamanho; 0.5 metade do tamanho; -1 inverte a sprite na horizontal);
image_yscale:
Escalonamento vertical da sprite (1, tamanho normal; 2 dobro to
tamanho; 0.5 metade do tamanho; -1 inverte a sprite na vertical);
Exemplos:
- Código:
//transparencia da imagem pela metade
image_alpha=0.5
- Código:
//Guarda a rotação da imagem na variavel texto
texto="A rotação da sprite é: "+string(image_angle)
- Código:
//Muda a sprite para a sprite chamada "spr_direita"
sprite_index=spr_direita
Vamos expandir a explicação sobre as variáveis image_xscale e image_yscale. Elas mudam o tamanho da nossa sprite. Elas podem ser usadas para um ótimo propósito que é reduzir o número de sprites que usamos para criar nosso jogo. Normalmente quando criamos um personagem que anda tanto para esquerda quanto para direita, nós criamos uma imagem para cada lado, é a mesma imagem só que invertida. Mas se quisermos, podemos usar apenas uma imagem e inverte-la usando image_xscale. 1 seria a imagem na posição normal. -1 seria ela invertida. Exemplo:
- Código:
//Se apertar a seta direita
if keyboard_check(vk_right)
{
//muda para sprite anda
sprite_index=spr_anda
//deixa o tamanho horizontal normal
image_xscale=1
}
//Se apertar a seta esquerda
if keyboard_check(vk_left)
{
//muda para sprite anda
sprite_index=spr_anda
//deixa o tamanho horizontal invertido
image_xscale=-1
}
Escala
O circulo vermelho indica o eixo (x,y). O eixo do quadrado da esquerda é (16,0), já o da direita é (16,0).
À direita o eixo x está 0, já à esquerda o eixo x está centralizado. Os círculos vermelhos simbolizam o eixo (x,y). Veja que nesses exemplos só alteramos o eixo x logo, o mesmo se aplica ao eixo y.
FUNÇÕES e VARIÁVEIS:
Essas cinco variáveis retornam valores em relação a sprite que está sendo utilizada pelo objeto no momento.
Exemplos:
- Código:
//Se a sprite spr_carro existir
if sprite_exists(spr_carro)
{
//A sprite spr_carro é deletada e não poderá mais ser usada durante o jogo
sprite_delete(spr_carro)
}
- Código:
//grava a largura da sprite na variável ll
ll=sprite_width
Enfim mais uma aula chega ao fim. Espero vocês na próxima. Vlw?
Perguntas? Só postar nos comentários.
Próxima aula: Backgrounds.
FLWS!
Última edição por Alex FC em Dom 22 Fev 2015, 20:25, editado 18 vez(es) (Motivo da edição : Atualização)
Re: #DGM Aula 03 - Sprites
mt bom o tuto mas lembre se d colocar q eh algumas coisas pra PRO eskeceu dnovo hein?
flws
flws
Gsa2134- Data de inscrição : 27/01/2010
Reputação : 0
Número de Mensagens : 229
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: #DGM Aula 03 - Sprites
Muito boa a aula ... cara parabens . grande AlexFC de novo
uma otima explicação
uma otima explicação
Re: #DGM Aula 03 - Sprites
Agora entendi pra que algumas engines temo mask...
boa aula Alex FC..
boa aula Alex FC..
lucas mendes- Data de inscrição : 04/05/2009
Reputação : 0
Número de Mensagens : 416
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 1
x 0 x 0 x 0
Re: #DGM Aula 03 - Sprites
Alex sempre nos surpreendendo...
Muito bom, bem elaborado, com imagens, bem explicado...
Aguardo a proxima aula
Muito bom, bem elaborado, com imagens, bem explicado...
Aguardo a proxima aula
Re: #DGM Aula 03 - Sprites
Os engimes foram os mais dificis para eu criar os jogos de Game Maker,valeu Alex FC
Não entendi.
Cara to acompanhando suas aulas.E em todas venho compreendendo tudo. Mas nesta aula 15, vc pede pra gente baixar um arquivo é o arquivo é de um executavel, porem você pede pra gente inserir uns codigos no step e tal. mas como eu vou inserir esses codigos no step de um executavel, pq no arquivo so veio ele.
kkwebmaster- Data de inscrição : 30/07/2010
Reputação : 0
Número de Mensagens : 3
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: #DGM Aula 03 - Sprites
Aula atualizada - 20/10/12:
- Aula refeita do zero com uma explicação mais simples e objetiva, além de vários exemplos adicionados.
Ps: As próximas aulas serão atualizadas em breve.
FLWS!
- Aula refeita do zero com uma explicação mais simples e objetiva, além de vários exemplos adicionados.
Ps: As próximas aulas serão atualizadas em breve.
FLWS!
Re: #DGM Aula 03 - Sprites
tenho uma duvida
- Código:
if keyboard_check_direct(change_key_0) {vspeed = -5}
if keyboard_check_direct(change_key_1) {hspeed = 7sprite_index=sonic_walk_r}
if keyboard_check_direct(change_key_2) {vspeed = 5}
if keyboard_check_direct(change_key_3) {hspeed = -7 sprite_index=sonic_walk_l}
Nivaldo2000- Data de inscrição : 03/02/2013
Reputação : 0
Número de Mensagens : 35
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: #DGM Aula 03 - Sprites
Bom, basta usar o mesmo exemplo. Olhe como funciona:
FLWS!
- Código:
//Se segurar tecla direita
if keyboard_check (vk_right)
{
//muda sprite
sprite_index = spr_direita
//velocidade de animação
image_speed = 0.25
//vai pra direita
hspeed = 5
}
FLWS!
Re: #DGM Aula 03 - Sprites
bom tentei adicionar um codigo para quando parar de apertar o botão ele mudar a animação mais acabou n indo só deu pra alterar a velocidade da animação
e eu quero fazer mais ou menos assim ele olha pra > quando aperta up down ou right ele vai com a animação right e quando ele olha para< quando aperta up down ou left ele animasse para left
enquanto niguem respondia fiz isso:
e eu quero fazer mais ou menos assim ele olha pra > quando aperta up down ou right ele vai com a animação right e quando ele olha para< quando aperta up down ou left ele animasse para left
enquanto niguem respondia fiz isso:
- Código:
if keyboard_check (vk_right)
{
sprite_index = sonic_walk_r
image_speed = 0.25
hspeed = 5
}
if keyboard_check_released (vk_right)
{
sprite_index = sonic_stop_r
image_speed = 0.25
hspeed = 0
}
if keyboard_check (vk_left)
{
sprite_index = sonic_walk_l
image_speed = 0.25
hspeed = -5
}
if keyboard_check_released (vk_left)
{
sprite_index = sonic_stop_l
image_speed = 0.25
hspeed = 0
Nivaldo2000- Data de inscrição : 03/02/2013
Reputação : 0
Número de Mensagens : 35
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [Aula 02]O que são as sprites
» [Vídeo-Aula]Aula 4.1 - Usando funções básicas do draw
» Criação de sprites por Joton (Vídeo-Aula 2)
» [Aula 05]Arrumando sprites para começar a programa
» Mini Vídeo Aula - Fazendo Sprites em 3d no Corel
» [Vídeo-Aula]Aula 4.1 - Usando funções básicas do draw
» Criação de sprites por Joton (Vídeo-Aula 2)
» [Aula 05]Arrumando sprites para começar a programa
» Mini Vídeo Aula - Fazendo Sprites em 3d no Corel
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos