Los personajes se moverá por el escenario constantemente y rebotarán cuando lleguen a un borde.
PImage fondo;
//creamos objeto
PImage pescado1; //primer disfráz
PImage pescado2; //segundo disfráz
//Aquí se deberán instanciar todos los clones del objeto pez que se utilizarán
fish1 pez1 = new fish1(int(random(480)), int(random(400)), int(random(1,7)));
fish1 pez2 = new fish1(int(random(480)), int(random(400)), int(random(1,7)));
fish1 pez3 = new fish1(int(random(480)), int(random(400)), int(random(1,7)));
fish1 pez4 = new fish1(int(random(480)), int(random(400)), int(random(1,7)));
fish1 pez5 = new fish1(int(random(480)), int(random(400)), int(random(1,7)));
void setup() {
size(480, 360);
//cargamos imagen fondo
fondo = loadImage("imagenes/8.png");
//y cargamos imagenes disfraces del personaje
pescado1 = loadImage("imagenes/1.png");
pescado2 = loadImage("imagenes/2.png");
//La carga de imágenes es un proceso lentísimo por eso conviene hacerlo una única vez, y el lugar más indicado es el setup()
}
void draw(){
//la mostramos, en este caso a partir del punto 1,1
//el ancho de la imagen es el mismo de la ventana,
//el alto de la imagen es el mismo de la ventana
image(fondo,1, 1, width, height);
//Mostramos a los clones del personaje en la ventana
pez1.mostrar();
pez2.mostrar();
pez3.mostrar();
pez4.mostrar();
pez5.mostrar();
}
class fish1 {//programa del personaje
//variables con las posiciones x e y del personaje
float x;
float y;
int velocidad =5; //contiene la velocidad del personaje
int cambio = 0; //se utiliza para saber que acaba de producirse un cambio
int direccion = 0; //contiene si el movimiento es hacia izquierdas o derechas
float scala = 0.5; //afecta al tamaño del disfráz
void setup(){//método no utilizado que se suele poner para opciones de configuración, Al estar vacío, se puede quitar sin consecuencias
}
fish1(float pez_x, float pez_y, int pez_v) { //Método constructor
x = pez_x;
y = pez_y;
velocidad = pez_v;
}
void mostrar(){
if (x > width) {
//Sí el pez se sale de la ventana por el lado derecho
//ponemos 1 en dirección para saber que a partir de ahora se tiene que mover hacia la izquierda
direccion = 1;
}
if (x < -100) {
//Sí el pez se sale de la ventana por el lado izquierdo
//ponemos 0 en dirección para saber que a partir de ahora se tiene que mover hacia la izquierda
direccion = 0;
}
if (direccion == 0){
if (cambio == 0){
//si el pez se mueve hacia la derecha y si hay que hacer un cambio de personaje
//colocamos el personaje a una altura aleatoria
y = random(100,height);
//cambiamos la alarma de cambio
cambio = 1;
//cambiamos el tamaño del disfráz
scala = 0.5 + random(0.5);
}
//movemos el disfraz hacia su nueva posición
x = x+velocidad;
image(pescado1,x, y, 100*scala, 100*scala);
}else{
if (cambio == 1){
//si el pez se mueve hacia la derecha y si hay que hacer un cambio de movimiento
//colocamos el personaje a una altura aleatoria
y = random(100,height);
//cambiamos la alarma de cambio
cambio = 0;
//cambiamos el tamaño del disfráz
scala = 0.5 + random(0.5);
}
x -= velocidad;
image(pescado2,x, y, 100*scala, 100*scala);
}
}
}
Primer disfráz
Segundo disfáz
Fondo
(C) Dpto Tecnología
IES Antonio Machado
Alcalá de Henares
Abril 2016
IES Antonio Machado
Alcalá de Henares
Abril 2016