Arquivar

Arquivo de Autor

[Pascal] Jogo da Forca

O jogo da forca é um dos jogos mais clássicos que existe. O jogador tem como objetivo descobrir uma palavra secreta, e a cada tentativa frustada, a “vítima” passa a sofrer com o aperto da corda. É vencer ou morrer, um desafio interessante e divertido, que agrada a todos que participam. O jogo da forca se encaixa na área de inteligência linguística, outro jogos também desta área é o bingo gramatical e o telefone sem fio.

Este post é para todos aqueles que tem como desafio no primeiro ano de graduação a usar a linguagem Pascal para programar este jogo. E para aqueles que acham também impossível programar um joguinho nesta linguagem. O jogo da forca aqui desenvolvido foi testado e compilado TP7.

Para adiquirir o código completo clique aqui.

Abraços, até a próxima.

Fim de ano

Olá galera !

Ainda não entrei de férias, mas o fim do ano vem chegando e muito já se despediram dos amigos da escola, outros já acabaram os estudos e outros pretendem que o ano comece logo para continuar os estudos e conhecer mais pessoas.

O meu ano ainda não acabou, ainda tenho trabalhos para fazer e alguns tutoriais para vocês ainda este ano. Então, gostaria de a todos pelos comentários e visitas, pois chegamos a4 mil visitas só este ano.

Esta ano foi bem interessante, divertido e muito especial pois comecei a namorar a garota dos meus sonhos, também comecei meu mestrado, dei algumas palestras sobre desenvolvimento de jogos e um mini curso também. Mas o ano não foi só bom, é claro que tem as coisas ruins, falta de dinheiro, alguns momentos que te desanimam e você para e pensa, porque continuar a fazer isso que faço.

Mas, agradeço a todos que colaboraram com o blog, ao pessoal da Escola de Engenharia de São Carlos e ao pessoal da Escola de Engenharia de Piracicaba, pessoal do curso de XNA do Senac ministrado pelo professor Gustavo, pessoal dos grupos XNA-br e outros grupos que frequento e a todos novos amigos que fiz este ano, e aos amigos de sempre também. Vocês são D+!

Não deixem de visitar os blog do André Baltieri tem sempre muita coisa interessante lá, o blog do Felipe Augusto, um blog um pouco diferente mas interessante do meu amigo Fernando sobre filosofia, o blog das Girls of War e o blog do Felipe Aron que tem muito coisas interessante também sobre XNA.

Para aqueles que não sabem onde procurar motivações para passar um ano alegre e viver a vida, veja o clássico vídeo motivacional da vida da águia.

Pra fechar este tópico, desejo a todos um Feliz Natal e um Próspero Ano Novo e que 2010 seja ótimo para todos.

Fiquem aqui com o vídeo do Chiron Beta Prime.

Abraços, até a próxima

CategoriasDiversos Tags:

Vídeos dos projetos atuais

Fala ai galera, agora a pouco gravei um vídeo da classe que manipula e anima sprites que estou criando junto com André Baltieri para o Imagine Cup e fiz um teste com os sprites do Sonic, vejam como ficou.

Segunda versão do sonic, agora com scrolling de tela, melhorias nas classes e música de fundo.

Ballons Busters é um jogo que Jorge, Otávio e eu estamos desenvolvendo no mini-curso do SENAC Piracicaba nas aulas do professor Gustavo, baseado nos jogos antigos de balões e flechas.

Outros vídeos feito pelo André veja abaixo

Logo vamos mostrar como criar uma classe para animar seu personagem favorito, abraços e até a próxima

[Notícias] Nova Engine da Microsoft: Boku

Boku é um novo programa para criação de jogos daMicrosoft que usa uma maneira super visual de programação. Tipo o Multimedia Fusion ou Klik&Play. Está sendo criado para ser acessível à crianças e jovens. O motor roda no XBox permitindo rápido design usando apenas o controle do video game.

O núcleo do projeto de Boku é a interface de programação. A língua é simples e é inteiramente baseada em ícones, o que faz a experiência super visual. As circunstâncias são avaliadas simultâneamente. A língua de Boku é projetada especificamente para o desenvolvimento de jogos e fornece os primitivos especializados especialmente usados para situações de jogos. Os programas são expressados em termos físicos, usando conceitos como a visão, audição, etc. Boku pode criar jogos mais complexos numa maneira bem simples e intuitiva.

As principais características de Boku são:

  • A língua de nível mais elevado incorpora primitivos do mundo real: colisão, cor, visão, etc
  • Usa o controle do XBox 360, não é necessário o uso de um teclado
  • Roda no XBox 360 e no PC
  • Editor de Terreno Interativo
  • Construtor de trajetos e pontes (pathfinding)
  • 20 personagens diferentes com suas próprias habilidades
  • Projetado para poder compartilhar seus jogos e dar-lhes avaliações e notas

O mais impressionante é que parece Boku pode ser usado para criar todos os tipos de jogos, incluindo os atiradores em cima, ação 2D, 3D e até mesmo plataformas. Confira um vídeo dele em ação após a ruptura.

Os detalhes exatos como Boku será lançado permanecem obscuras, embora seja esperado o lançamento de alguma forma ainda em 2009.

[XNA] Desenvolvendo nosso primeiro jogo 2D (Pong) – Parte 3

Eai galera, após algumas semanas fazendo meus trabalhos do mestrado decidi tirar uma rápida folga para escrever a parte 3 do tutorial que vai tratar de detalhar o movimento da bola e escrever a pontuação dos jogadores na tela.

Movimento da bola

Vamos analisar neste momento o que precisamos para fazer uma bola se movimentar no nosso jogo.

Na figura acima podemos ver que para uma bola se movimentar precisamos de um vetor que vai indicar qual direção a bola ira se mover, e também vamos precisar definir uma velocidade de movimento. Sendo assim, a próxima posição pode ser definida como a posição atual somada ao vetor direção multiplicado pela velocidade. Simples não?

Vamos começar a ver então como isso vai ficar em nosso jogo, abra o projeto que estamos desenvolvendo, para quem não tem o projeto clique aqui. E vamos então definir inicialmente a velocidade da bola e o seu vetor direção inicial. Para isso clique no arquivo Ball.cs e modifique os seguintes atributos do construtor da bola.

public Ball(Vector2 newPosition, Texture2D loadedTexture)
{
    this.texture = loadedTexture;
    this.position = newPosition;
    // Define direcao em X = 1 e Y = 1
    this.direction = new Vector2(1, 1);
    // Define velocidade em X = 3 e Y = 3
    this.speed = new Vector2(3, 3);
}

O que fizemos então, definimos a velocidade X e Y da bola em 3 pixels e nosso vetor direção com o valor 1 para X e 1 para Y, ou seja quando multiplicarmos velocidade por 1, o valor será a própria velocidade, e isso incrementado a posição vai dar o deslocamento positivo em X e Y da bola. Mas para a bola se movimentar precisamos atualizar sua posição então abra o arquivo Game1.cs e acrescente a seguinte linha de código abaixo antes das entradas do teclado do jogador 1 e 2.

// Atualiza a posição da bola</p>
// posição = posição anterior * direcao * velocidade
ball.position += ball.direction * ball.speed;</p>

Pronto, se você executar o programa agora, você verá a bola andando na diagonal para baixo a direita e vai sumir da tela. Para ela não atravessar o campo na parte inferior precisamos limitar seu movimento e caso ela ultrapasse esse limite modificamos seu vetor direção.

Primeiramente vamos limitar seu movimento ao colidir com a parte superior e inferior do campo, para isso digite logo abaixo das entradas do teclado no método Update() o seguinte código.

// Checa colisões da bola com as paredes do campo
// Verifica se a bola colidiu em baixo
if (ball.position.Y + ball.texture.Height > 570)
{
    ball.direction.Y *= -1;
}
// Verifica se a bola colidiu em baixo
if (ball.position.Y < 70)
{
    ball.direction.Y *= -1;
}

Veja, quando a posição y da bola é maior que 570 a linha inferior do campo, mudamos o vetor direção para -1, ou seja a seta do nosso vetor vai inveter o sentido. O mesmo acontece para quando a posição y da bola é menor que 0. Mas se executar o programa agora você verá a bola colidir com a parte inferior do campo porem ela vai sumir a direita e não vai aparecer novamente, pois quando ela ultrapassa a direita ou a esquerda da tela algum jogador recebe pontos por ter marcado um gol  e logo em seguida a bola volta ao centro do campo para recomeçar a partida. Como fazer isso?

Colocado a pontuação dos jogadores

Vamos definir uma variavel para armazenar os pontos dos jogadores, então logo abaixo de definir so objetos raquetes, escreve o seguinte código.

// Objets Raquetes</p>
Bat bat1, bat2;</p>
// Score do jogo
int[] score = new int[2];</p>

Agora precisamos quando o jogo começar dizer para nosso score que os jogadore tem 0 pontos. Então no método Initialize() digite o seguinte código após inicializarmos o objeto raquete 2.

// Inicializando o score dos jogadores</p>
score[0] = 0; // Jogador 1
score[1] = 0; // Jogador 2

Então agora quando a bola passar os limites de tala a direita (0) e a esquerda (800), precisamos fazer a bola retornar a sua posição inicial e aumentar um ponto no score do outro jogador. Digite o seguinte código logo após o código de fazer a bola colidir com o campo.

// Verifica se alguem marcou ponto
// Se a bola passar pela direita da tela
if (ball.position.X + ball.texture.Width > 800)
{
    score[0] += 1; // aumenta um ponto ao score do jogador 1
    // Coloca a bola no centro do campo novamente
    ball.position = new Vector2(393, 313);
    // Muda a direção de disparo da bola
    ball.direction.X *= -1;
}
// Se a bola passar pela esquerda da tela
if (ball.position.X < 0)
{
    score[1] += 1; // aumenta um ponto ao score do jogador 2
    // Coloca a bola no centro do campo novamente
    ball.position = new Vector2(393, 313);
    // Muda a direção de disparo da bola
    ball.direction.X *= -1;
}

Agora se executar o jogo poderá ver a bola ultrapassar a posição do campo de um jogador, aumentar um ponto do jogador que marcou ponto, retornar a bola ao centro e mudar a direção x da bola fazendo que ao recomeçar a partida a bola comece para o outro lado. Agora com o movimento da bola funcionando precisamos somente exibir a pontuação na tela para informar quanto esta a partida, para isso vamos definir uma definir uma font arial de tamanho 30 como o nome de gameFont.spritefont.

Clique com o botão direito do mouse em Content -> Add -> New Folder e coloque o nome da pasta como Fonts, após fazer isso clique com o botão direito na pasta Fonts que acabou de criar Add -> New Item e selecione SpriteFont colocando o de gameFont. Se Solution Explorer é para ficar como a figura abaixo.

Vamos agora criar uma variável do tipo SpriteFont e carregar nossa font  no método LoadContent(). Então abaixo do local onde declaramos nosso score, vamos fazer a seguinte declaração.

// SpriteFont para escrever na tela
SpriteFont font;

E no método LoadContent() após carregar o background do jogo digite o seguinte código para carregar a font.

// Carrega a font para escrita
font = Content.Load<SpriteFont>(@"Fonts\gameFont");

Legal galera, o ultimo passo é só desenhar o score na tela, para fazermos isso vamos no método Draw() logo após desenha a bola e vamos digitar o seguinte código.

// Desenhando o score do jogador 1 no centro do quadrado
Vector2 textSize = font.MeasureString(score[0].ToString());
spriteBatch.DrawString(font, score[0].ToString(), new Vector2(300, 35) - textSize/2, Color.White);
// Desenhando o score do jogador 2 no centro do quadrado
textSize = font.MeasureString(score[1].ToString());
spriteBatch.DrawString(font, score[1].ToString(), new Vector2(500, 35) - textSize/2, Color.White);

O que estamos fazendo, estamos declarando um vetor com o nome de tamanho do texto (textSize), e estamos falando que ele recebe o tamanho em pixel da escrita do valor. Para que isso? Para desenhar nosso texto em um centro especifico, pois assim como ao desenhar imagens ele desenha de um ponto (x,y) para frente, ou seja quando nossa pontuação aumentar da casa unitária para casa decimal, ele vai ficar fora do centro do quadrado da nossa imagem. Sendo assim, pegamos o centro do local que queremos desenhar menos metade do tamanho desta escrita e começamos a desenhar a partir deste (x,y), mantendo sempre a escrita do score no cento do quadrado.

E acho que por hoje é isso pessoal, se não nos esquecemos de nada, podemos rodar nossa aplicação e ver o resultado da nossa janela com a imagem de fundo, caso não tenha erros.

Para fazer download do projeto clique aqui.

Resumo do tutorial

Aprendemos como funciona o movimento continuo de um objeto dentro do jogo, criamos então o movimento da bola não deixando ela sair fora do campo e colocamos também a pontuação dos jogadores.

No próximo tutorial, vamos colocar os efeitos sonoros de batida, rebatida, pontuação e uma música de fundo, além de colocar colisões da bola com a raquete.

CategoriasTutoriais, XNA Tags:, ,

[Humor] Tetris tem um Deus

Tetris (em russo: Тетрис) é um jogo electrónico muito popular, desenvolvido em 1984 por Alexey Pajitnov, Dmitry Pavlovsky e Vadim Gerasimov. Pajitnov e Pavlovsky eram engenheiros informáticos no Centro de Computadores da Academia Russa das Ciências e Vadim era um aluno com 16 anos.

O objetivo do jogo é encaixar tetraminós, que são peças de diversos formatos que descem do topo de uma tela. Quando uma linha é completada, desaparece e dá pontos extra ao jogador. O jogo termina quando as linhas incompletas se empilham até o topo da tela do jogo.

Quem joga sabe como é frustrante errar uma pecinha e ferrar toda uma organização bem na hora que a peça vertical de 4 bloquinhos esta chegando. Mas é óbvio que isso tem um culpado e não é você. O vingativo em questão é o próprio Deus do Tetris, confira o vídeo abaixo.

Referência:

CollegeHumor, http://www.collegehumor.com/video:1924722, acessado em Dezembro de 2009.

CategoriasHumor Tags:,

[Jogos educativos] A química na sua casa

Este jogo desenvolvido pela ABIQUIM (Associação Brasileira da Indústria Química) tem por objetivo ensinar os jogadores as propriedades químicas do materiais que encontramos em nossa casa. Alguns exemplos são o polipropileno utilizado nos gabinetes dos aparelhos e tv, a poliamida usada e alguns tapetes, etc.  Jogue este jogo clicando aqui.

Até a próxima.

[Fan Film] Lord of the Rings – Born of Hope

Depois de The Hunt for Golun, os fãs de Senhor dos Anéis esperavam ansiosos pelo próximo fan-film Born of Hope. Mais uma incrível produção independente de baixo custo, em que todos que participaram e ajudaram são adoradores das histórias de J.R.R Tolkien e não recebem um centavo pela produção. Essa pequena produção sem fins lucrativos tem atraido olhares de todas as pessoas que assistiram. Com certeza é um trabalho excelente que vale a pena assistir.


Born of Hope teve sua estréia dia 1 de Dezembro de 2009 e conta a história dos Dúnedain, os Guadiões do Norte no momento antes da Guerra do Anel, antes do retorno do rei. Inspirado por apenas um par de números escritos por Tolkien no apêndices do Senhor dos Anéis a história segue Arathorn e Gilraen, os pais de Aragorn, em sua primeira reunião, por um peíodo turbulento na história do seu povo.

Trailer

Com 60 minutos de duração, mas ainda sem legenda em português, o filme pode ser visto no site dos criadores: http://www.bornofhope.com/.

Link direto para o filme, clique aqui.

Abraços e bom filme para vocês.

[Código Fonte] Jogo da velha em XNA e C#

Eai turma tudo bem ?

Como dito anteriormente, estou hoje disponibilizando um código bem simples de como fazer um jogo da velha em XNA e também está para download um jogo da velha só usando o C#. Espero que estudem o código, melhorem e se quiserem fazer perguntas também fiquem a vontade.

O jogo no momento é para 2 jogadores e assim que der tempo pretendo colocar alguma Inteligência Artificial para jogador conta a máquina

Para fazer download do código fonte do jogo da velha em XNA clique aqui.

Para fazer download do código fonte do jogo da velha somente em  C# clique aqui.

Abraços, até a próxima

[Evento] Global Game Jam 2010

Olá galera, mais novidades para vocês. No dia 29 de janeiro de 2010 acontecerá o evento Global Game Jam 2010, que promove cerca de 50 horas (durante 3 dias seguidos) de criação de games independentes ao redor do mundo.

Por enquanto, o brasil já conta com cinco pontos de apoio: USP e UFSCar, a Rio Game Developers, a CEFET/MG e a IFSULDEMINAS. As inscrições para participar do evento já estão abertas e diversas universidades do mundo estão apoiando a iniciativa e pode até colaborar sediando edições locais do evento entre os dias 29 e 31 de Janeiro.

Mais informações sobre o evento podem ser obtidas, em seu site oficial.

Abraços, espero que a maioria aqui participe, t+

CategoriasEventos Tags:,