domingo, 7 de febrero de 2016

newton completo y con aceleración

String[] imFiles = {"fondo.png", "manzana.png", "newton1.png", "newton2.png"};
PImage[] im = new PImage[4];
 
int nX = 0;    
int a = 3;
int nY = 0;      // Coordenada Y, Newton
float mY = 0;    // Coordenada Y, manzanas
int mX = 15;     // Coordenada X, manzanas
float mV = 0;    // Velocidad Y, manzanas
float mA = 0.05; // Aceleracion Y, manzanas
int p = 0;       // Puntos conseguidos
boolean pCount = true;  // Almacena si se pueden contar puntos o no
long t = 0;      // Almacena el tiempo
 
void setup() {
  size(400, 400);
  nY = height - 135;
  t = millis();
 
  // Carga las imagenes
  for(int i = 0; i < 4; i = i + 1) {
    im[i] = loadImage(imFiles[i]);
  }
}

void draw() {
  background(200);
  image(im[0], 0, 0, width, height);  // Imagen de fondo
 
  // Movimiento de la manzana
  mV = mV + mA;
  mY = mY + mV;
  if (mY > height) {
    mY = 15;  
    mX = int(random(width - 20));
    mV = 0;  
    pCount = true;  // Al lanzar una nueva manzana, se podran volver a contar puntos
  }
 
  fill(255);
 
  // Deteccion de la colision
  if (mY + 50 > nY && mY < nY + 135) {
    if (mX + 40 > nX && mX < nX + 128) {
      fill(255, 0, 0);
      // Si hay colision, incrementa un punto
      if (pCount) p = p + 1;
      pCount = false;  // En cualquier caso, cada vez que se entre
                       // aqui, ya no se pueden contar puntos
    }
  }

  image(im[1], mX, mY);  // Manzana
  if(pCount) {
    image(im[2], nX, nY);  // Newton buscando manzanas
  } else {
    image(im[3], nX, nY);  // Newton alcanzo una manzana
  }
 
  // Contabilizacion del tiempo
  float timer = (millis() - t) / 1000;

  // Fin del juego (GAME OVER)
  if (timer >= 30) {
    noLoop();
  }

  // Muestra el tiempo en la pantalla
  fill(0);
  textSize(20);  // Incrementa el tamaño de la fuente de texto
  text("Tiempo: " + (30 - timer), 10, 25);

  // Muestra los puntos en pantalla
  fill(0);
  textSize(20);
  text("Manzanazos: " + p, 3 * width / 5, 25);
}

void keyPressed() {
  // Incrementa las coordenadas en 3 unidades
  if (keyCode == RIGHT) {
    nX = nX + a++;
  }
  // Decrementa las coordenadas en 3 unidades
  if (keyCode == LEFT) {
    nX = nX - a++;
  }
  // Limita el valor de la coordenada X
  if (nX < 0) {
    nX = 0;
  }
  if (nX > width - 20) {
    nX = width - 20;
  }
}

caza la manzana

int nX = 0;      // Coordenada X, Newton
int nY = 0;      // Coordenada Y, Newton
float mY = 0;    // Coordenada Y, manzanas
int mX = 15;     // Coordenada X, manzanas
float mV = 0;    // Velocidad Y, manzanas
float mA = 0.05; // Aceleracion Y, manzanas
int p = 0;       // Puntos conseguidos
boolean pCount = true;  // Almacena si se pueden contar puntos o no
long t = 0;      // Almacena el tiempo
 
void setup() {
  size(400, 400);
  nY = height - 25;
  t = millis();  // Inicializa la variable de tiempo
}

void draw() {
  background(200);
 
  // Movimiento de la manzana
  mV = mV + mA;
  mY = mY + mV;
  if (mY > height) {
    mY = 15;  
    mX = int(random(width - 20));
    mV = 0;  
    pCount = true;  // Al lanzar una nueva manzana, se podran volver a contar puntos
  }
 
  fill(255);
 
  // Deteccion de la colision
  if (mY + 10 > nY && mY - 10 < nY + 20) {
    if (mX + 10 > nX && mX - 10 < nX + 20) {
      fill(255, 0, 0);
      // Si hay colision, incrementa un punto
      if (pCount) p = p + 1;
      pCount = false;  // En cualquier caso, cada vez que se entre
                       // aqui, ya no se pueden contar puntos
    }
  }

  ellipse(mX, mY, 20, 20);
  rect(nX, nY, 20, 20);

 
  // Contabilizacion del tiempo
  float timer = (millis() - t) / 1000;  // Cuenta cuanto tiempo ha pasado en segundos

  // Fin del juego (GAME OVER)
  if (timer >= 30) {  // Si el tiempo alcanza 30000 es el fin del juego
    noLoop();
  }

  // Muestra el tiempo en la pantalla
  fill(0);
  text("Tiempo: " + (30 - timer), 10, 20);

  // Muestra los puntos en pantalla
  fill(0);
  text("Manzanazos: " + p, 3 * width / 4, 20);
}

void keyPressed() {
  // Incrementa las coordenadas en 3 unidades
  if (keyCode == RIGHT) {
    nX = nX + 3;
  }
  // Decrementa las coordenadas en 3 unidades
  if (keyCode == LEFT) {
    nX = nX - 3;
  }
  // Limita el valor de la coordenada X
  if (nX < 0) {
    nX = 0;
  }
  if (nX > width - 20) {
    nX = width - 20;
  }
}

reloj cocina

PImage im[] = new PImage[10];   // Array para 10 imagenes
String imFile[] = {"0.jpg", "1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg"};
 int h = 60;

void setup() {
  size(140, 95);  // 2 digitos de 70 pixels de ancho y 95 de alto  
  for (int i = 0; i < 10; i = i + 1) {
    im[i] = loadImage(imFile[i]);
  }
}

void draw() {
h--;
delay(1000);
  int h_dec = int(h / 10);    // Extrae el digito de mayor peso de la hora (decenas)
  int h_uni = h - h_dec * 10; // Extrae el digito de menor peso de la hora (unidades)
 
  image(im[h_dec], 0, 0);     // Muestra el digito de las decenas
  image(im[h_uni], 70, 0);    // Muestra el digito de las unidades

}

reloj post id

PImage im[] = new PImage[10];   // Array para 10 imagenes
String imFile[] = {"0.jpg", "1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg"};

void setup() {
  size(140, 285);  // 6 digitos en tres filas y dos columnas  
  for (int i = 0; i < 10; i = i + 1) {
    im[i] = loadImage(imFile[i]);
  }
}

void draw() {
  int h = hour();            
  int h_dec = int(h / 10);  
  int h_uni = h - h_dec * 10;
 
  image(im[h_dec], 0, 0);    
  image(im[h_uni], 70, 0);  
 
  int m = minute();           // Toma los minutos del reloj del ordenador y almacenalos en una variable
  int m_dec = int(m / 10);    // Extrae el digito de mayor peso de los minutos (decenas)
  int m_uni = m - m_dec * 10; // Extrae el digito de menor peso de los minutos (unidades)
 
  image(im[m_dec], 0, 95);    // Muestra el digito de las decenas
  image(im[m_uni], 70, 95);   // Muestra el digito de las unidades
 
  int s = second();           // Toma los segundos del reloj del ordenador y almacenalos en una variable
  int s_dec = int(s / 10);    // Extrae el digito de mayor peso de los segundos (decenas)
  int s_uni = s - s_dec * 10; // Extrae el digito de menor peso de los segundos (unidades)
 
  image(im[s_dec], 0, 190);   // Muestra el digito de las decenas
  image(im[s_uni], 70, 190);  // Muestra el digito de las unidades
}

mi serpiente

int rojo = 255;
int tiempo = 1;
int diametro = 20;
int azul = 255;
 
void setup() {
  size(400, 400);
}

void draw() {
  tiempo = tiempo + 1;    
  rojo = int(128 * (1 + sin(tiempo * 2 * PI / frameRate / 20)));
  diametro = int(50 * (1 + sin( tiempo * 2 * PI / frameRate / 5))); // Modifica el diametro del circulo con el paso del tiempo
 
  noStroke();            
  fill(rojo, azul, 0, 50);
  ellipse(mouseX, mouseY, diametro, diametro);
}

Serpiente roja

int rojo = 255;
int tiempo = 0;
int diametro = 50;
 
void setup() {
  size(400, 400);
}

void draw() {
  tiempo = tiempo + 1;    
  rojo = int(128 * (1 + sin(tiempo * 2 * PI / frameRate / 20)));
  diametro = int(50 * (1 + sin( tiempo * 2 * PI / frameRate / 5))); // Modifica el diametro del circulo con el paso del tiempo
 
  noStroke();            
  fill(rojo, 0, 0, 50);
  ellipse(mouseX, mouseY, diametro, diametro);
}

Verstad programas de practica

1.linea
line(0, 0, 100, 100);
2.dos lineas negra y roja
background(255);
line(0, 0, 100, 100);
stroke(0, 0, 255);
line(0, 100, 100, 0);
3.dos lineas negra y roja inversa
stroke(0, 0, 255);
line(0, 100, 100, 0);
background(255);
line(0, 0, 100, 100);
4.lineas roja y azul
stroke(0, 0, 255);
line(0, 100, 100, 0);
stroke(255,0,0);
line(0, 0, 100, 100);
5 linea variables
int value1 = 0;
int value2 = 100;
line(value1, value1, value2, value2);
line(value1, value2, value2, value1);
6.elipse
size(400, 200);
ellipse(width/2, height/2, width, height);
7.setup y draw
void setup() {
size(300, 300);
}

void draw() {
line(0 ,0, width, height);
}
8.creador de lineas
void setup() {
size(300,300);
}

void draw() {
line(0, 0, mouseX, mouseY);
}
9.linea movil
void setup() {
size(300,300);
}

void draw() {
background(255);
line(0, 0, mouseX, mouseY);
}