Aquí os dejo el proyecto que más tarde hemos realizado ya que es una programación mucho mas laboriosa y por ello hemos tenido que buscar más información. En este juego se usa todo tiempo de estructuras en lo cual se demuestra lo aprendido a lo largo del curso.
Snake
Aquí os dejo el código:
int angulo=0;
int largura=5;
int tiempo=0;
int[] cabezax= new int[2500];
int[] cabezay= new int[2500];
int comidax=(round(random(47))+1)*8;
int comiday=(round(random(47))+1)*8;
boolean rehacer=true;
boolean terminar=false;
void setup()
{
reiniciar();
size(400,400);
textAlign(CENTER);
}
void draw()
{
if (terminar)
{
}
else
{
tiempo+=1;
fill(255,0,0);
stroke(0);
rect(comidax,comiday,8,8);
fill(0);
stroke(0);
rect(0,0,width,8);
rect(0,height-8,width,8);
rect(0,0,8,height);
rect(width-8,0,8,height);
if ((tiempo % 5)==0)
{
desplazamiento();
ampliar();
muerte();
}
}
}
void keyPressed()
{
if (key == CODED)
{
if (keyCode == UP && angulo!=270 && (cabezay[1]-8)!=cabezay[2])
{
angulo=90;
}
if (keyCode == DOWN && angulo!=90 && (cabezay[1]+8)!=cabezay[2])
{
angulo=270;
}if (keyCode == LEFT && angulo!=0 && (cabezax[1]-8)!=cabezax[2])
{
angulo=180;
}if (keyCode == RIGHT && angulo!=180 && (cabezax[1]+8)!=cabezax[2])
{
angulo=0;
}
if (keyCode == SHIFT)
{
reiniciar();
}
}
}
void desplazamiento()
{
for(int i=largura;i>0;i--)
{
if (i!=1)
{
cabezax[i]=cabezax[i-1];
cabezay[i]=cabezay[i-1];
}
else
{
switch(angulo)
{
case 0:
cabezax[1]+=8;
break;
case 90:
cabezay[1]-=8;
break;
case 180:
cabezax[1]-=8;
break;
case 270:
cabezay[1]+=8;
break;
}
}
}
}
void ampliar()
{
if (cabezax[1]==comidax && cabezay[1]==comiday)
{
largura+=round(random(3)+1);
rehacer=true;
while(rehacer)
{
comidax=(round(random(47))+1)*8;
comiday=(round(random(47))+1)*8;
for(int i=1;i<largura;i++)
{
if (comidax==cabezax[i] && comiday==cabezay[i])
{
rehacer=true;
}
else
{
rehacer=false;
i=1000;
}
}
}
}
stroke(destello(1),destello(0),destello(.5));
fill(0);
rect(cabezax[1],cabezay[1],8,8);
fill(255);
rect(cabezax[largura],cabezay[largura],8,8);
}
void muerte()
{
for(int i=2;i<=largura;i++)
{
if (cabezax[1]==cabezax[i] && cabezay[1]==cabezay[i])
{
fill(255);
rect(125,125,160,100);
fill(0);
text("Has perdido",200,150);
text("Para volver a jugar presione Shift.",200,200);
terminar=true;
}
if (cabezax[1]>=(width-8) || cabezay[1]>=(height-8) || cabezax[1]<=0 || cabezay[1]<=0)
{
fill(255);
rect(125,125,160,100);
fill(0);
text("HAS PERDIDO",200,150);
text("Para volver a jugar presione Shift.",200,200);
terminar=true;
}
}
}
void reiniciar()
{
background(255);
cabezax[1]=200;
cabezay[1]=200;
for(int i=2;i<1000;i++)
{
cabezax[i]=0;
cabezay[i]=0;
}
terminar=false;
comidax=(round(random(47))+1)*8;
comiday=(round(random(47))+1)*8;
largura=5;
tiempo=0;
angulo=0;
rehacer=true;
}
float destello(float percent)
{
float slime=(sin(radians((((tiempo +(255*percent)) % 255)/255)*360)))*255;
return slime;
}
Los comandos del juego son los siguientes:
-El movimiento de la serpiente se realiza con las flechas del teclado.
-El juego consiste en coger el máximo número de cuadraditos rojos(representan manzanas). Estos aumentan el tamaño de la serpiente.
-Se pierde al tocar los lados de la pantalla.
viernes, 12 de mayo de 2017
Proyecto ping-pong individual
Aquí os dejo parte del proyecto. Este juego lo realizamos inicialmente, por lo tanto es el mas simple. Conseguimos realizarlo buscando información en internet e implementando técnicas adquiridas a lo largo del curso como puede ser el uso del random a la hora de cambiar el color de la bola y el desplazable pulsando el tabulador.
Ping-pong individual
Y aquí os dejo el código:
float a,b,c;
int grosor=30;
int x,y,puntuacion=0;
int cambiarX=-5;
int cambiarY=-5;
int perdido=0;
void setup()
{
size(800, 700);
x=(int)random(width);
y=height-grosor;
}
void draw()
{
if(perdido==0)
{
background(24,120,85);
fill(a,b,c);
if (keyPressed){
a = random (0,255);
b = random (0,255);
c = random (0,255);
}
text("Puntuación:"+puntuacion+"00",width/2,height/2);
rect(mouseX,height-grosor,200,grosor);
ellipse(x,y,10,10);
x=x+cambiarX;
y=y+cambiarY;
if(x<0 | x>width)
{
cambiarX=-cambiarX;
}
if(y<0)
{
cambiarY=-cambiarY;
}
if(y>height-grosor)
{
if(x>mouseX && x<mouseX+200)
{
cambiarY=-cambiarY;
puntuacion++;
}
else
{
finjuego();
}
}
}
else
{
background(100,100,200);
text("¡Has perdido!",width/2,height/2);
text("Haz click para volver a jugar",width/2,height/2+20);
}
}
void finjuego()
{
perdido=1;
}
void mouseClicked()
{
cambiarY=-cambiarY;
puntuacion=0;
perdido=0;
}
Ping-pong individual
Y aquí os dejo el código:
float a,b,c;
int grosor=30;
int x,y,puntuacion=0;
int cambiarX=-5;
int cambiarY=-5;
int perdido=0;
void setup()
{
size(800, 700);
x=(int)random(width);
y=height-grosor;
}
void draw()
{
if(perdido==0)
{
background(24,120,85);
fill(a,b,c);
if (keyPressed){
a = random (0,255);
b = random (0,255);
c = random (0,255);
}
text("Puntuación:"+puntuacion+"00",width/2,height/2);
rect(mouseX,height-grosor,200,grosor);
ellipse(x,y,10,10);
x=x+cambiarX;
y=y+cambiarY;
if(x<0 | x>width)
{
cambiarX=-cambiarX;
}
if(y<0)
{
cambiarY=-cambiarY;
}
if(y>height-grosor)
{
if(x>mouseX && x<mouseX+200)
{
cambiarY=-cambiarY;
puntuacion++;
}
else
{
finjuego();
}
}
}
else
{
background(100,100,200);
text("¡Has perdido!",width/2,height/2);
text("Haz click para volver a jugar",width/2,height/2+20);
}
}
void finjuego()
{
perdido=1;
}
void mouseClicked()
{
cambiarY=-cambiarY;
puntuacion=0;
perdido=0;
}
Proyecto
Hoy es el último día de clase en el cual he acabado el proyecto del snake y el ping-pong sigue en desarrollo. Esperamos terminarlo a tiempo.
Proyecto
Estos últimos días no he subido diario debido a que acabábamos muy justos de tiempo y no teníamos tiempo a subir una entrada en el blog. Hemos realizado el juego de ping-pong individual y a partir de este estamos desarrollando uno para dos jugadores. Ademas de esto hemos buscado informacion poco a poco y hemos conseguido confeccionar el juego del snake.
jueves, 4 de mayo de 2017
Proyecto
Alvaro y yo estamos realizando juegos en processing, mas concretamente el Ping Pong. Primero realizaremos uno individual ya que es mas simple y a continuación realizaremos el de dos jugadores.El comienzo del proyecto de dos jugadores se puede observar en el blog de Alvaro. Actualmente estamos pensando si nos dará tiempo a realizar algún juego mas o no.
Suscribirse a:
Entradas (Atom)