A comunidade brasileira de desenvolvimento e programação de jogos.
Bem-vindo: Qui Jul 09, 2020 11:50 pm

Todos os horários são GMT - 3 horas




Criar novo tópico Responder  [ 3 mensagens ] 
Autor Mensagem
 Título: Curso Básico Visual Basic 6 - Parte II
MensagemEnviado: Sáb Jan 23, 2010 2:44 pm 
Offline
Membro intermediário
Avatar do usuário

Registrado em: Dom Dez 11, 2005 8:28 pm
Mensagens: 82
Esta é a uma continuação dos meus tutoriais de Visual Basic para Iniciantes, voltado para jogos.
Aqui está o primeiro tutorial:
http://www.gamedev.com.br/forum/viewtopic.php?t=433
-------------------------------------------------------------

Neste tutorial vamos aprender a fazer um jogo parecido com Duck Hunt, aquele... Do Dinavision! Para começarmos, baixe o Pacote de Imagens:
http://www.4shared.com/file/205197728/c ... agens.html

O pacote é essencial pois são os sprites do jogo, vou pedir desculpa apenas pelo sprite do Pato, mas definitivamente área gráfica não é minha praia.

Comece criando um formulário e defina as propriedades width esteja para 6780 e heigth para 6315. Coloque o fundo com alguma cor e faça um título personalizado, use imagens, sua criatividade e os conhecimentos aprendidos até agora nos outros tutoriais! Olhe como eu fiz o meu:

Imagem

Para escrever com fundo trasnparente que nem eu fiz, só altere a função backstyle de "opaque" para "transparent".

Crie um outro Label com nome "pisca" e escreva "Pressione Enter para Começar!", ou coisa parecida com isso:

Imagem

Vamos fazer esse label piscar, para isso primeiramente adicione em qualquer parte do formulário a ferramenta timer (aquela do reloginho), não importa onde, já que essa é uma ferramenta invisível e não aparecerá no projeto quando o mesmo for compilado!

Agora edite a função Interval do timer para 100 (isso nos dará 100 milisegundos para cada vez que o timer for executado)

Dê dois cliques no timer e digite:

Código:
If pisca.ForeColor = &HFF& Then
pisca.ForeColor = &HC000&
Else
pisca.ForeColor = &HFF&
End If


Esse código funciona da seguinte maneira, ele vê se o label está com a cor inicial (aquele laranja, cujo código é &HFF&, então modifica para outra cor, e quando já está com outra cor que eu escolhi, ele volta pro laranja! Pra você conseguir o código da cor é simples também, veja:

Imagem

Agora pra fazer o Enter funcionar, vamos clicar duas vezes no formulário e sair do evento load para o evento KeyPress e digitar

Código:
If KeyAscii = 13 Then
Form2.show
Unload Me
End If


Com esse código você está carregando um segundo formulário e descarregando o atual.


Agora monte um segundo formulário parecido com este:

Imagem

Agora posicione no centro da tela, usando a ferramenta image, a figura da mira. Clique duas vezes no formulário e tire da opção Load e coloque a opção MouseMove. Para dar movimento a mira, usaremos um código similar ao usado no primeiro tutorial, não sendo necessário explicar novamente:

Código:
Image1.Left = X
Image1.Top = Y


Essa opção cria automaticamente e invisivelmente as variáveis X e Y que guardam a posição do ponteiro do mouse no formulário! Por isso se quisermos fazer algo seguir o ponteiro do mouse, é só fazer esse algo seguir o valor dessas variáveis!

Usando novamente a ferramenta image, crie o pato no canto da tela. Ao final, vai ficar parecido com isto:

Imagem

Vamos dar vida ao pato, fazer ele passar na tela, infinitas vezes, cada vez que ele chegar ao final ou é acertado, deve voltar e recomeçar pra ser morto ou chegar ao final de novo. Pra isso vamos criar uma variável chamada de "velocidade", afim de podermos controlar ao longo do jogo a velocidade do pato. Em cima de todo e qualquer código digite

Código:
Dim velocidade As Integer


Afim de criar uma variável com nome velocidade do tipo inteiro. E no form load, digite:

Código:
velocidade = 50


Afim de por a velocidade inicial em 50

Crie um timer na tela e bote com interval de 50, clique duas vezes sobre ele e use este código:

Código:
Image2.Left = Image2.Left - velocidade


O Código acima faz o pato se mover pra esquerda na velocidade da variável.

Crie outra variável do tipo real com nome score, embaixo da outra variável

Código:
Dim score As Integer


Agora clique duas vezes sobre o pato e digite

Código:
score = score + 1
Image2.Left = 6800


Troque o evento de click para mouse move e digite

Código:
Image1.Left = Image2.Left
Image1.Top = Image2.Top


Isso é pra evitar um bug e dar uma ajuda ao player, evita um bug no sentido de que ao mover o mouse em cima do pato, você não está com mouse no formulário, portanto, a mira para de se mover! E ajuda ao player porquê dá precisão na mira, é como se ela se ajustasse bem no meio do pato automaticamente.
Volte para o evento click e digite

Código:
score = score + 1
Image2.Left = 6800


Isso faz o Score aumentar quando você mata o pato e faz o pato voltar a posição inicial.

Crie um outro Label escrito "0", lá no canto onde tem um lugar para o Score, seu projeto deve estar parecendo com isso agora:

Imagem

Crie um outro timer, esse timer vai controlar o Score, vai cuidar de atualizá-lo sempre que você matar um pato. Bote o com intervalo 10 e use este código:

Código:
Label2 = score


Só que... Nós só programos o pato pra voltar em caso de ser acertado, mas se ninguém acertar o pato ele simplesmente some da tela e não volta! Em qualquer um dos timers, acrescente essa linha de código

Código:
If Image2.Left < -800 Then Image2.Left = 6800


Isso fará com que quando o pato chegar à posição -800 (limite esquerdo da tela) ele volte pra posição 6800 (limite direito da tela).

Agora vamos dar mais emoção ao jogo, fazer nosso querido patinho aumentar de velocidade conforme é morto, pra isso, vamos adicionar ao clicar no pato, a seguinte linha de código:

Código:
velocidade = velocidade + 10


Isso dará ao pato mais 10 de velocidade a cada vez que for acertado, tornando mais dificil acertar da próxima vez.

Agora vamos fazer o pato aparecer em posições aleatórias na tela! Pra isso vamos usar dois timers pro pato ficar "subindo e descendo" a tela, durante todo o jogo, pra definir a posição de altura do pato, como faremos isso? É aqui que complica!

Primeiro crie uma variável para a posição do pato com nome posicao:

Código:
Dim posicao As Integer


Depois faça o pato ir pra nova posição quando morrer! Adicione esta linha no click do pato

Código:
Image2.Top = posicao


Isso vai levar o pato pra cima ou pra baixo de acordo com o "mapeamento" do nosso while.

Crie dois timers, ambos com interval 10, mas o segundo, deixe com enabled = false
No primeiro timer use este código:

Código:
posicao = posicao + 100
If posicao >= 5200 Then
Timer4.Enabled = True
Timer3.Enabled = False
End If


Esse código vai incrementar a posição do pato o tempo todo, e quando ela chegar a 5200 (extremo inferior) ele vai ativar o próximo timer e se desativar.

No outro timer use este código:

Código:
posicao = posicao - 100
If posicao <= 0 Then
Timer3.Enabled = True
Timer4.Enabled = False
End If


Esse código vai decrementar a posição do pato quando for ativado, e quando chegar a 0 (extremo superior), ele vai ativar o timer anterior e se desativar. Fazendo com isso, um Loop.

Agora vamos fazer o jogo ficar mais "emocionante", colocando impecílios para o jogador aumentar seu score, agora, toda vez que um pato cruzar o campo sem ser acertado, fará o jogador perder Vida! Vamos criar a variável "vida".

Código:
Dim vida As Integer


Vamos setar a vida para 3 no form load

Agora vamos reformatar o layout do jogo pra que ele fique assim:

Imagem

Vamos mudar aquela linha de código

Código:
If Image2.Left < -800 Then Image2.Left = 6800


para esta

Código:
If Image2.Left < -800 Then
Image2.Left = 6800
vida = vida - 1
End If


Agora, além de mover o pato pra posição de volta, ele também seta a vida pra menos!
No entanto o label não vai se atualizar sozinho, então também devemos acrescentar essa linha:

Código:
label3 = vida


Acrescenta dentro do if ok?

Mas e ai? E quando as vidas acabarem? Vamos fazer voltar pra tela inicial! é só acrescentar

Código:
If vida < 0 Then
Form1.Show
Unload Me
End If


Ao final, esse timer todo deve estar assim:


Imagem

Só uma coisa, agora se o jogador voltar a jogar, o Score dele continua ao que tava no final do jogo, então, acrescente essa linha ao form load:

Código:
Label2 = 0


Download Código Fonte | Download Executável


É isso, o fim de mais um tutorial ;)


Voltar ao topo
 Perfil  
 
 Título:
MensagemEnviado: Qua Mar 09, 2011 4:35 am 
Offline
Membro novo

Registrado em: Qua Mar 09, 2011 4:27 am
Mensagens: 1
Desculpa tem um pequeno erro no final do POST

Só uma coisa, agora se o jogador voltar a jogar, o Score dele continua ao que tava no final do jogo, então, acrescente essa linha ao form load:

Código:
Label2 = 0


Codigo correto é score = 0


Voltar ao topo
 Perfil  
 
 Título: Re: Curso Básico Visual Basic 6 - Parte II
MensagemEnviado: Qui Jun 06, 2019 6:18 am 
Offline
Membro novo

Registrado em: Ter Jun 04, 2019 6:44 am
Mensagens: 1
Localização: India,chennai
Good job...! I really like your post and I learn large of techniques from your interesting post. Thank you for sharing with us...
Oracle dba Training in Chennai

_________________
Oracle Training in Chennai| Tableau Training in Chennai | Unix Training in Chennai


Voltar ao topo
 Perfil  
 
Exibir mensagens anteriores:  Ordenar por  
Criar novo tópico Responder  [ 3 mensagens ] 

Todos os horários são GMT - 3 horas


Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante


Enviar mensagens: Proibido
Responder mensagens: Proibido
Editar mensagens: Proibido
Excluir mensagens: Proibido
Enviar anexos: Proibido

Ir para:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por: Suporte phpBB