Más de una vez algún alumno me ha preguntado cómo podrían programar videojuegos. La verdad es que estamos acostumbrados a juegos tan bien hechos y tan complejos que cualquier cosa que pueda hacer un alumno de secundaria va a ser algo bastante simple comparado con aquellos con los que suele jugar.
Los lenguajes específicos que hay para programar videojuegos son bastante profesionales y es difícil iniciarse en su aprendizaje. Cuando yo estaba en el instituto, los videojuegos eran bastante sencillos y los ordenadores que teníamos en casa nos permitían programar videojuegos muy simples de manera sencilla.
Hace poco he descubierto un lenguaje de programación bastante sencillo de manejar, gratuíto y que permite iniciarse en el mundo de los videojuegos. Evidentemente, lo que podemos hacer como primer paso va a ser muy simple, pero poco a poco podemos ir comprendiendo ciertos conceptos de programación y hacer algo más complejo. Por otro lado, para un alumno de secundaria, siempre va a ser más divertido introducirse en el mundo de la programación por medio de los videojuegos que programando bases de datos o algo parecido.
El programa se llama processing:
Hay páginas como ésta en la que la gente comparte sus códigos. Lo malo es que todo está en inglés.
Para empezar a programar videojuegos lo mejor es empezar siguiendo el orden de los videojuegos que han ido surgiendo en el mercado: tenis, space invaders, moon cresta, galaxians, pac-man, etc.
Aquí tenéis el código del juego del tenis. Los controles son az para un jugador y pñ para el otro.
//Primera parte del programa. Declaración de variables.
//dimensiones de la ventana de juego
int ancho= 600;
int alto=400;
int goles1;//goles de jugador uno y dos
int goles2;
int x=150;//coordenadas de la pelota
int y=150;
int r=10;//radio de la pelota
int incx=1;//incrementos. Lo que se le va a sumar a x e y para que se mueva la pelota
int incy=1;
boolean sub1;//variable booleana, ésto quiere decir que sólo puede valer verdadero o falso. Verdadero si el jugador uno ha pulsado subir
boolean baj1;//Verdaderosi el jugador uno ha pulsado bajar
boolean sub2;//bubir jugador dos
boolean baj2;//bajar jugador dos
int posx=40;//coordenadas del centro de la raqueta uno
int posy =150;
int pos2x=ancho-40;//coordenadas del centro de la raqueta dos
int pos2y =150;
// definición de la función setup, que se ejecuta siempre al principio
void setup(){
size(ancho,alto); //dimensiones de la ventana
background(0);//color de fondo
smooth();//hace que los contornos de lo que se dibuja sean suaves, que no haya picos
frameRate(200);//velocidad. Veces por segundo que se ejecuta la función draw. En teoría a partir de 60 da igual lo que se ponga, pero lo cierto es que con 200 va más rápido que con 60
PFont font;//define el tipo de letra para el texto
font = loadFont("Impact-48.vlw");
textFont(font);
}
//el bucle draw se repite constantemente
void draw() {
background(0);//pinta de negro la pantalla
text(goles1, width/2-40, 60);//escribe el marcador
text(goles2, width/2+40, 60);
ellipse(x,y,r,r);//dibuja la pelota
//bote con el borde
if ((y>alto-1)||(y<1)){
incy=incy*(-1);
}
//goles
if (x>ancho-40){
background(80);
}
if(x==ancho){
goles1++;
x=width/2;
incx=-1;
}
if (x==0){
x=width/2;
incx=+1;
goles2++;
}
if (x<20){
background(80);
}
//bote con las raquetas
if (((x==posx+5)&&((posy-y)*(posy-y)<2500))||(((x==pos2x-5)&&((pos2y-y)*(pos2y-y)<2500)))){
incx=-(incx);
}
//movimiento de la pelota
x=x+incx;
y=y+incy;
//dibuja las raquetas
rect(posx,posy,10,50);
rect(pos2x,pos2y,10,50);
//mueve las raquetas
if (sub1){
posy--;
}
if (baj1){
posy++;
}
if (sub2){
pos2y--;
}
if (baj2){
pos2y++;
}
}
void keyPressed(){
if (key == 'a'){
sub1=true;
}
if (key =='z'){
baj1= true;
}
if (key == 'p'){
sub2=true;
}
if (key =='ñ'){
baj2=true;
}
}
void keyReleased(){
if (key == 'a'){
sub1=false;
}
if (key =='z'){
baj1= false;
}
if (key == 'p'){
sub2=false;
}
if (key =='ñ'){
baj2=false;
}
}
domingo, 17 de enero de 2010
domingo, 12 de julio de 2009
lunes, 8 de junio de 2009
martes, 26 de mayo de 2009
Aquí van algunos enlaces sobre la máquina de vapor:
Savery:
http://es.wikipedia.org/wiki/Thomas_Saveryhttp://digilander.libero.it/calchic/english2/saveryeng.html
Newcomen:
http://es.wikipedia.org/wiki/Thomas_Newcomen
http://digilander.libero.it/calchic/english2/newcomeneng.html
Watt:
http://automata.cps.unizar.es/Biografias/Watt.htm
http://digilander.libero.it/calchic/english3/watt003e.html
http://digilander.libero.it/calchic/english3/double_acting.html
Savery:
http://es.wikipedia.org/wiki/Thomas_Saveryhttp://digilander.libero.it/calchic/english2/saveryeng.html
Newcomen:
http://es.wikipedia.org/wiki/Thomas_Newcomen
http://digilander.libero.it/calchic/english2/newcomeneng.html
Watt:
http://automata.cps.unizar.es/Biografias/Watt.htm
http://digilander.libero.it/calchic/english3/watt003e.html
http://digilander.libero.it/calchic/english3/double_acting.html
lunes, 18 de mayo de 2009
SIMULADOR DE CIRCUITOS ELECTRICOS Y ELECTRONICOS
Hola de nuevo, os dejo la dirección de otro simulador de circuitos eléctricos y electrónicos. Necesita JAVA.
http://www.falstad.com/circuit/e-index.html
http://www.falstad.com/circuit/e-index.html
Etiquetas:
electricidad,
electronica,
SIMULADOR
FABRICACION DE UN ALTAVOZ
Me han mandado este video de como se fabrica un altavoz. Está en inglés porque es un video del Discoveri channel, pero se entiende.
domingo, 22 de febrero de 2009
PEQUEÑA TURBINA EN EL DARRO

Me ha llamado la atención en Granada esta pequeña turbina en el río Darro.
Aunque este río tiene muy poco caudal, no se ha desaprovechado la oportunidad de colocar una pequeña turbina con un generador y aprovechar la energía del río. El coste de la instalación debe ser muy pequeño, y así por encima me imagino que producirá de 10 a 20 kw de electrididad.
Suscribirse a:
Entradas (Atom)