Ur Conejeros - Proyecto Imagen Escrita 2019 T1

De Casiopea
Revisión del 14:16 20 may 2019 de Ursanrhem (discusión | contribs.) (Página creada con «{{Tarea |Título=Ur Conejeros - Proyecto Imagen Escrita 2019 T1 |Número=1 |Asignaturas Relacionadas=Imagen Escrita |Cursos Relacionados=Imagen Escrita 2019 |Carreras Relac…»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)



TítuloUr Conejeros - Proyecto Imagen Escrita 2019 T1
AsignaturaImagen Escrita
Del CursoImagen Escrita 2019
CarrerasFormación y Oficio"Formación y Oficio" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property., Interacción y Servicios"Interacción y Servicios" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property., Otra
1
Alumno(s)Ur Conejeros

Código

ArrayList<Integer> x = new ArrayList<Integer>(), y = new ArrayList<Integer>(); //Determina la posición de partida int w = 30, h = 30, bs = 20, dir = 2, applex = 12, appley = 10; int movex = 0; int movey = 0; //Referencias para movimiento int[] dx = {0,0,1,-1}, dy = {1,-1,0,0}; //Movimientos de la serpiente en los ejes X e Y boolean gameover = false; //Referencia para GAME OVER

void setup(){

 size(600,600); 
 x.add(5); 
 y.add(5);

}

void draw(){

 background(0);
 for(int i = 0 ; i < x.size(); i++) { //cuerpo de la serpiente
    fill(0,150,0); //color de la serpiente
    rect(x.get(i)*bs, y.get(i)*bs, bs, bs); //Forma de la serpiente
 }
 if(!gameover) {
 fill(255,0,0); //Color de la fruta
 rect(applex*bs, appley*bs, bs, bs); //Forma de la fruta
 if(frameCount%5==0) {
   x.add(0,x.get(0) + dx[dir]);
   y.add(0,y.get(0) + dy[dir]); //Incrementa el largo de la serpiente cuando come una fruta 
   
   if (x.get(0) < 0 || y.get(0) < 0 || x.get(0) >= w || y.get(0) >= h) gameover = true;
   //Si la serpiente toca las paredes GAME OVER
   for(int i = 1; i < x.size(); i++) if(x.get(0)==x.get(i) && y.get(0) == y.get(i)) gameover =true;
   //Si la serpiene se toca a si misma GAME OVER
   
   if(x.get(0)==applex && y.get(0)==appley) {
     
     applex = (int)random(0,w); //Crea una nueva fruta en otro lugar 
     appley = (int)random(0,h); //Crea una nueva fruta en otro lugar
   
 }else { 
   x.remove(x.size()-1);
   y.remove(y.size()-1);//Para que la serpiente no crezca sobre si misma
 }
 }
 }else { //Que pasa cuando hay GAME OVER
   fill(255,0,0);
   textAlign(CENTER);
   textSize(35);
   text("GAME OVER", width/2, height/2); //Texto de instrucciones
   
   fill(255);
   textAlign(CENTER);
   textSize(20);
   text("Presiona Espacio para reinciar", width/2, height/2+30); //Texto de instrucciones
   
   if(keyPressed&&key==' ') {
     x.clear();
     y.clear();
     x.add(5);
     y.add(5);
     gameover = false; //Resetea el juego

}}}

void keyPressed() {

 int newdir = key=='s' ? 0 : (key=='w' ? 1 : (key=='d' ? 2 : (key=='a' ? 3 : -1)));
 //Controles: S= Down, W= Up, D=Right, A=Left
 
 if(newdir != -1 && (x.size() <= 1 ||!(x.get(1)==x.get(0)+dx[newdir] && y.get(1)==y.get(0)+dy[newdir]))) dir = newdir;
 //Para que la serpiente no vuelva sobre si misma

}