martes, 10 de mayo de 2016

INTRODUCCIÓN A PROCESSING

Normalmente un programa en processing tiene esta estructura:
 void setup(){ 

 }
 void draw(){ 

 } 


Todas las instrucciones que escribas entre las llaves del setup se ejecutarán al principio del programa y las que estén entre las llaves del draw se ejecutarán una vez y otra vez. 

 Cada instrucción tendrá un punto y coma al final. Por ejemplo, la instrucción 

ellipse (100,100,10,10); 

dibuja una elipse en las coordenadas 100,100 con ejes 10,10. Como los ejes horizontal y vertical son iguales, dibujará un círculo. La coordenada y va de arriba a abajo, al revés que en matemáticas.

 La instrucción

 size(400,400);

 hará que la pantalla gráfica tenga un tamaño de 400x400 pixels. El siguiente programa

 void setup(){ 

   size(400,400);

 }
 void draw(){

 ellipse (100,100,10,10); 
}

Creará una pantalla gráfica de 400x400 y dibujará un círculo de 10x10 en las coordenadas 100x100. En realidad no dibuja un solo círculo, sino que lo dibuja una vez y otra vez. Cada vez que se ejecuta el draw se llama frame.

Si dibujo el círculo en coordenada x en lugar de 10, puedo modificar x y hacer que se mueva.  Primero tengo que crear la variable x. Si es un número entero la creo con la instrucción int x; al principio, fuera del draw y del setup

El siguiente programa hace que la bola se mueva: 

int x;
void setup(){ 

   size(400,400);

 }
 void draw(){

 ellipse (x,100,10,10); 
x=x+1;
}

Como ves, la bola no se mueve, sino que se dibujan muchas. Si quiero dar la sensación de movimiento, necesito que borre la pantalla. Utilizo background(0);
eso hace que la pantalla se ponga negra, porque he puesto un cero. Si pongo un 255 sería blanca. Si pongo un número intermedio sería gris. Más oscuro cuanto más bajo.

Si quiero meter una condición (si pasa esto has esto) las instrucciones son 

if (condición){

   instrucciones
}

por ejemplo, 

if (x<1 1="" font="">

velx = -5;

}

Cuando x es menor que 1, la variable velx valdrá -5.



Con esas instrucciones intenta hacer una bola que rebote por la pantalla.

Proyecto ping pong

La idea es hacer una raqueta en forma de rectángulo que muevas con el teclado y una bola que rebote en ella y en las paredes. En primer lugar te digo las instrucciones nuevas que vas a necesitar:

rect(x,y,ancho,alto); dibuja un rectángulo. El punto superior derecho es x,y. Ancho y alto son los otros dos parámetros. Obviamente son el ancho y alto del rectángulo.

En un if, cuando se deben cumplir dos condiciones, se usa &&, Así:

if ((x>1)&&(y>2){
<1 amp="" p="" y="">  x = x + 1;
}

Fíjate bien en cómo van los paréntesis.

Para hacer que la bola rebote en la raqueta, la x debe ser la de la raqueta y la distancia al centro de la raqueta en y, menor que la mitad de su longitud.

Para controlar la raqueta con el teclado, aquí tienes un ejemplo de programa:


void draw() {

if (keyPressed) {
  if (key == 'b' || key == 'B') { 
   x=x+1;
  } 
}


Las variables keyPressed y key son variables de sistema, eso quiere decir que las crea processing por sí mismo. KeyPressed es verdadero cuando se pulsa una tecla y entonces key vale la tecla pulsada. Aquí x aumenta cuando se pulsa b (mayúscula o minúscula)

Haz un programa que controle una raqueta con el teclado y una bola que rebote en las paredes y en la raqueta

sábado, 6 de febrero de 2016

INTRODUCCIÓN A UNITY

Unity no es la mejor opción para empezar a aprender a programar videojuegos. Si quieres aprender Unity debes haber empezado por Scratch u otras aplicaciones. Si estás leyendo esto es porque has hecho ya varios proyectos más o menos complejos en Scratch y vas a comenzar un curso de Unity. 

Si no vas a tener un profesor o alguien que te ayude, aunque hayas utilizado ya Scratch, deberías seguir con algo más fácil. Puedes consultar esta entrada.

Si vas a comenzar con Unity, descárgalo en esta página e instálalo.

Mi recomendación es que no te lances a hacer el primer videojuego que se te ocurra, sino que sigas varios videotutoriales y hagas exáctamente el juego que se explique en ellos. Una vez hayas hecho unos tres proyectos así, empieza a diseñar los tuyos.

Es mejor que todos sigamos los mismos tutoriales en el instituto, así nos entendemos mejor. 

INTRODUCCIÓN A SCRATCH

Puedes programar en scratch directamente en internet usando el explorador en esta página. Si te registras puedes subir tus proyectos e insertarlos en tu blog o en tu página web. Pero si quieres aprender, lo mejor es descargarte el programa, grabar los proyectos en tu disco duro y probarlos en tu ordenador. Luego podrás subirlos a la página de Scratch.

Para programar en tu ordenador necesitas descargarte el Scratch y el Adobe Air. Sigue los pasos 1 y 2 de esta página. El paso 3 es para descargar material de apoyo y está en inglés, así que voy a poner yo material de apoyo en esta página. El Scratch es gratis. Es un proyecto del Instituto Tecnológico de Massachusetts, así que no tienes que temer que desde esta página se te vayan a descargar virus o software malicioso.

Hay muchos manuales de Scratch y videotutoriales en internet. Cualquiera te puede valer, pero es mejor que sigas los que yo voy a poner aquí, así será más fácil que sigas los cursos que se den en el instituto y que te ayuden tus compañeros y profesores, porque siempre nos entenderemos mejor si seguimos los mismos manuales. Entra en este manual y haz los ejercicios.



domingo, 5 de julio de 2015

PROGRAMACIÓN DE VIDEOJUEGOS

Estas son algunas herramientas para empezar a crear videojuegos. Voy a empezar desde lo más sencillo para niños a lo más complejo. Lo he organizado por niveles. Deberías elegir alguno del nivel 1, cuando lo domines otro del nivel 2 y luego otro del 3.

1.1 Code.org Es un juego al que pueden jugar niños muy pequeños. Aunque es sencillo, te va introduciendo conceptos de programación que de otro modo serían difíciles de explicar

1.2. Scratch. Fácil de aprender y de instalar. Incluso puedes programar online. Ideal para niños pequeños. Supuestamente es para 8-16 años. Los padres pueden aprender fácilmente aunque no sepan nada de programación y enseñar a sus hijos. O los niños pueden aprender solos a partir de primero de ESO si son inteligentes, o a lo mejor necesitan algo de ayuda para empezar. En la red hay manuales muy sencillos

Scratch es lo mejor si lo que uno quiere es empezar pronto a aprender de verdad a programar ordenadores.

1.3. Human resource machine. Es un videojuego. Son puzzles que debes resolver y para ello tienes que aplicar razonamientos propios de la programación. No es realmente programar, pero jugar te ayudará a aprender conceptos de programación.

1.4. Game maker. Es más visual y da resultados más inmediatos. Si eres un adulto que sabe programar y tienes un hijo muy motivado, es mejor empezar por scratch y seguir con Greenfoot y luego processing. Pero Game maker es más motivador porque se obtienen mejores resultados más rápido, aunque se parece menos a la programación a base de teclear código. Es más visual, y más sencillo. Los resultados son buenos, pero en 2D. Yo realmente no lo recomiendo para aprender, pero sí para construir videojuegos sencillos con buenos resultados

1.5. Alice. Para programar en 3D. No lo conozco bien, pero parece algo más complicado que Scratch. Quizás para 11-14 años. Gente acostumbrada a seguir tutoriales por internet o con alquien que le ayude. Si lo que te motiva es el 3D empieza por aquí, y pásate luego a Unreal.

2.1. Greenfoot: A partir de 14. O gente con experiencia en Scratch.
2.2 Scirra
2.3 Turbulenz
2.4 box2d Más dirigido a simulaciones físicas


3.1. Unity  No es lo mejor para empezar, pero es lo mejor si realmente quieres hacer un videojuego que te guste en 3D. Aunque también tiene un módulo 2D y es potente si quieres hacer juegos de calidad en 2D. Trabajar en 3D supone muchas horas de trabajo y hay que tener en cuenta que hacer un programa en 3D hacen falta dos cosas: programación y diseño gráfico. Así que si realmente quieres aprender a programar, no es lo mejor porque dedicarás muchísimas horas al diseño. Pero si realmente quieres aprender a hacer videojuegos en 3D, este tipo de herramientas son las mejores. El módulo de programación es complejo. Antes de empezar con esto deberías tener experiencia con greenfoot o algo similar, y tener a alguien que te ayude. La gente que suele usar Unity  suele formar equipos de manera que unos se encargan de programar, otros de modelar y otros de la música.

3.2 Unreal Engine  Las desventajas de Unreal es que es más difícil de aprender que Unity, y además hay que pagar para empezar a publicar tus juegos. Esto a agosto de 2015. Estas cosas cambian y de pronto te sacan una versión más sencilla de manejar y gratuita.

3.3. Processing. Processing es lo mejor si realmente quieres aprender a programar. Utiliza processing si quieres utilizar la programación de videojuegos como camino para aprender a programar en general, o si quieres aprender a hacer videojuegos en 2D o aplicaciones de tipo visual: programas interactivos, presentación de información, aplicaciones artísticas, etc.

No empieces con processing si no tienes experiencia con alguno de los anteriores programas y si no estás en cuarto de ESO o bien eres muy bueno en matemáticas y al menos has terminado segundo de ESO. Otra cosa buena de processing es que es Java. Si haces proyectos complejos con processing habrás aprendido Java, y eso es bastante útil.

Los siguientes son frameworks o librerías javascript para videojuegos

3.4 impactjs
3.5 Phaser
3.5 Kiwi
3.6 Game
3.7 melon

Si lo que quieres hacer es animación 2D y no realmente videojuegos, quizás lo mejor que hay gratuito es Synfig:

Para animación y modelado 3D está el 3D Studio Max  y para creación de edificios 3D que puedes integrar con Unity está el SketchUp y el Sweet Home

En esta página hay algunos ejemplos hechos con processing: http://mirayaprende.royalwebhosting.net/

Más enlaces:

https://www.codecademy.com/
https://www.udacity.com/courses/all
http://www.programmr.com/
http://programando.la/
https://www.coursera.org/

martes, 11 de marzo de 2014