Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt

» Craftage Engine (Eclipse Origins totalmente modificado e sem bugs)
Seg 27 Abr 2015, 18:24 por pigot98


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

Halt

avatar
Administrador
Administrador
Nadaila escreveu:A partir dessa aula você deverá baixar o projeto, pois muita coisa muda nessa segunda etapa. O que vimos atrás foi o básico do básico.

Sprite

Nessa aula o projeto contém 2 modulos e 1 form.



GameCore - Núcleo do jogo, onde estão as funções para desenho.
GameStruct - Estrutura de dados para os personagens entre outros.

Se quiser, não precisa deixar como a imagem acima apenas deve renomear os módulos e o form.

Agora eu digo ... "Bem, vamos começar a escrever os códigos para trabalharmos!"

No módulo GameStruct, vamos analisá-lo.


Direção de Animação, não usei constantes dessa vez. Usei uma enumeração.
Direção do Personagem, isso é para a informar a direção e não animação.



Na estrutura do personagem temos.

Name, nome do personagem.
Size, este é o tamanho da Sprite (32x64).
Position, coordenada X e Y.
Sprite, imagem do personagem.
Direction, direção do persongem.
Moving, está em movimento ou não.

As variáveis abaixo são apenas para a animação. Se cada jogador conter sua própria velocidade, podemos criar inúmeras situações entre PvE.

Anim, número correspondente a animação da Sprite.
AnimTime, variável para guardar o tempo da animação.
MoveTime, variável para guardar o tempo de movimento.
[Step], Step é uma palavra reservada do visual basic e não pode ser usada como variável ou objeto (For Next / Step). Nesse caso eu adicionei Colchetes para usar como variável.

E as últimas variáveis, o nome já indicam para que servem.

No Evento do Form, o KeyDown. Essas variáveis é para não apertar variás teclas ao mesmo tempo e atrapalhar a animação.



Não podemos esquecer da nossa saída do programa.


Ainda não adicionamos GameRunning, então vamos para o GameCore.




Perceba que agora temos duas novas modificações. GameSize e GetAsyncKeyState.

GameSize é o tamanho do nosso jogo. GetAsyncKeyState é uma função da API "user32.dll", ela retorna o pressionamento de teclas em modo asíncrono.

Isso eu explicarei depois. Agora nossas subs de desenho. Não posso mostrar a imagem toda, então aqui vai o code.



Código:

 Public Sub DesenharImagem(ByVal Imagem As Bitmap, ByVal X As Integer, ByVal Y As Integer)
        g.DrawImageUnscaled(Imagem, X, Y)
    End Sub
    Public Sub DesenharImagem(ByVal Imagem As Bitmap, ByVal Posicao As Point)
        g.DrawImageUnscaled(Imagem, Posicao)
    End Sub
    Public Sub DesenharImagem(ByVal Imagem As Bitmap, ByVal Screenrect As Rectangle)
        g.DrawImage(Imagem, Screenrect)
    End Sub
    Public Sub DesenharImagem(ByVal Imagem As Bitmap, ByVal ScreenRect As Rectangle, ByVal ImageRect As Rectangle)
        g.DrawImage(Imagem, ScreenRect, ImageRect, GraphicsUnit.Pixel)
    End Sub


Parar diminuir a quantidade de códigos no GameLoop, crie estas duas subs.

DesenharNome


DesenharFPS


Movendo o personagem;


Quando DirUp é verdadeiro o código entre ele é executado.
Verifica se a tecla para cima foi pressionada.
Se foi pressionada, muda a direção do personagem para cima.

Se o personagem ainda não estiver no topo do form, ele pode andar.
Se estiver no topo do form ele não pode.

Se a tecla para cima não foi pressionada, personagem não se moverá.

Esta regra vale para todo o restante da sub.



Inicialização das imagens, nome e posição do personagem.



Inicialização do jogo e incremento de posição.

DesenharPersonagem;

Lembre-se esse código é executado no mínimo umas 30 vezes por segundo.



Primeiro, pega a animação do personagem a partir da direção.




O que está dentro do primeiro bloco vermelho, só será executado quando o personagem estiver em movimento, ou seja, Personagem.Moving = True.

O bloco verde é o movimento do personagem. A cada 5 milésimos de segundos, o personagem irá incrementar na sua direção +2 pixels.

Step quer dizer Etapa, nossa animação tem 2 etapas, passo direito e passo esquerdo.

Quando a Etapa for 0, ele ira desenhar a próxima animação da Sprite. Já vimos isso em Calcular Sprites.

Quando o personagem está de frente para nós, o número da animação é 4. Etapa 0 ele irá somar mais 1 número (4 + 1= 5, olhe naquela imagem que eu postei no outro tópico Calcular Sprites).

Quando se passar 150 milésimos de segundos, ele irá mudar para a etapa 1. Na etapa 1 ele irá subtrair 1 número (4 - 1= 3).

E assim sucessivamente, enquanto o jogador estiver se movendo, ele irá mudar a animação a cada 150 milésimos de segundos nos dando a impressão de animação.



Código:
DesenharImagem(Personagem.Sprite, New Rectangle(Personagem.Position.X, Personagem.Position.Y, Personagem.Size.Width, Personagem.Size.Height), _
                      New Rectangle(Personagem.Anim * 32, 0, Personagem.Size.Width, Personagem.Size.Height))

Agora finalizo a aula com o GameLoop;



Agora aqui, a primeira coisa é verificar os eventos do teclado. Chamamos a sub PlayerMove. Não vou dizer mais, pois já viram a aula passada e devem entender.

Enfim ...

DesenharPersonagem - Desenha o personagem (ah, é memo?).
DesenharNome - Desenha o nome do personagem.
DesenharFPS - E um draw no FPS.

Novamente, já ía me esquecendo de como dar a inicialização no form.



Projeto Aula


__________________________________________

Ei Convidado, sim você mesmo! Ajude o fórum à crescer postando coisas úteis, dê sugestões para melhorar-mos e divulgue o fórum.

Step inside, see the devil in I.

Gifts-
Fantasy - Fantasy - Fantasy - ~Razor - Darkmel

Zerei a internet
Ver perfil do usuário http://arenarpgmaker.eclipserpg.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum