TOC

This article has been localized into Spanish by the community.

Creando un juego: SnakeWPF:
Chapter introduction:

In this article series, we're building a complete Snake game from scratch. It makes sense to start with the Introduction and then work your way through the articles one by one, to get the full understanding.

If you want to get the complete source code for the game at once, to get started modifying and learning from it right now, consider downloading all our samples!

Introducción

Un sumario breve de este artículo introductorio: Vamos a implementar el juego clásico "Snake" (Serpiente) en WPF, y el resultado final lucirá como algo así:

Muchas veces la creación de juegos es la razón de que mucha gente, especialmente los jóvenes sean atraídos al aprendizaje de la programación. Pero la pregunta normalmente es: ¿Cómo empiezo y qué necesito?. Bien, necesitarás un lenguaje de programación, como C#, C++ o cualquiera de los otros lenguajes populares. Y si dominas tu lenguaje preferido, no necesitarás nada más: Sólo comenzar desde el principio por agregar píxeles a la pantalla y en algún punto, probablemente tengas un juego funcionando.

Sin embargo, la mayoría de las personas prefieren un poco de ayuda con las cosas de bajo nivel. ¿Porqué agregar pixeles a la pantalla manualmente sí ya hay una librería o framework que lo puede hacer por ti y así puedes enfocarte en crear un juego entretenido? Hay muchos frameworks que te ayudarán a hacer esto y, de hecho, uno de ellos es WPF.

WPF no es la elección más obvia cuando quieres crear juegos - es definitivamente un framework que se enfoca mas en crear interfaces de usuario para aplicaciones orientadas a negocios. Aún así, hay muchos elementos en WPF que puedes usar para crear juegos, y quizás igualmente importante: Puedes tener todos los mecanismos para pintar y controlar una ventana en Windows.

Así que, sí estas buscando crear un juego sencillo, WPF puede ser una buena elección. Al menos será de gran ayuda para los aspectos más básicos, como crear una ventana, dibujar un área sencilla para el juego, etc. Sí quieres agregar cosas como gráficas avanzadas en 3D y objetos de movimiento rápido, es posible que necesites mas ayuda de una librería o framework, pero quedará bien para un juego sencillo - por ejemplo, el clásico juego de la Serpiente!

Serpiente en WPF.

Como prueba de concepto, decidí crear la versión basada en WPF del extremadamente clásico juego de la Serpiente. Usará una ventana regular de WPF como área de juego, también como controles comúnes de WPF para crear el gameplay. La razón por la que escogí el juego de la Serpiente es porque es muy relativamente sencillo de implementar (no tiene mucha lógica el código) y porque puede ser implementado usando figuras geométricas simples como cuadrados y círculos, los cuales pueden ser usado muy fácil con WPF. Pero también por que aún así es un juego realmente divertido, a pesar de su naturaleza simple.

Si no conoces el juego de la Serpiente, solamente puedo asumir que nunca tuviste un celular Nokia durante finales de los 90's principios del 2000. La primera versión del juego fue escrita y demostrada muchos años antes que eso, pero se volvió mas conocido cuando Nokia decidió incluirlo su propia versión en todos su celulares.

La jugabilidad es tan simple como entretenida: mueves una serpiente virtual en una dirección (izquierda, derecha, arriba o abajo) en la búsqueda de comida (a veces una manzana). Cuando tu serpiente golpea la manzana, se consume, tu serpiente crece y aparece una nueva manzana en la pantalla. Si golpeas las paredes o tu propia cola de serpiente, el juego termina y tienes que empezar de nuevo. Cuantas más manzanas comas, mayor puntuación obtendrás, pero más difícil será no golpearte la cola.

Hay MUCHAS variaciones en el juego: por ejemplo, la velocidad con la que se mueve tu serpiente a menudo aumentará cada vez que comas una manzana, lo que la hará cada vez más difícil, pero no todas las implementaciones de Snake lo harán. Otra variación son las paredes: algunas implementaciones te permitirán atravesar la pared y salir por el lado opuesto, mientras que otras implementaciones terminarán el juego tan pronto como llegues a la pared.

En nuestro SnakeWPF, las paredes son duras (la serpiente muere si las golpea), y la velocidad aumentará exponencialmente por cada manzana que coma, hasta cierto punto.

Resumen

En los próximos artículos, implementaremos una buena versión del clásico juego Snake usando el marco WPF. Comenzaremos con los antecedentes en el próximo artículo, y al final, tendremos nuestro primer juego basado en WPF completamente funcional.

Tenga en cuenta que si bien este es un tutorial de WPF, necesitaremos un poco más de código C# de lo normal, para implementar la lógica del juego, etc. Trataré de explicar la mayor parte a medida que avanzamos, pero en caso de que necesite un poco más de conocimiento sobre C#, no olvide que tenemos un buen tutorial completo de C# en nuestra red.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!