aliens1

 

 

 

 

 

 

aliens2

 

 

 

 

 

 

aliens3

 

 

 

 

 

 

 

aliens4

 

 

ruitjespapier alien
 
OOP aliens met een class om de aliens op ruitjespapier te zetten           terug naar de inleiding
 
De bewegende aliens op het ruitjespapier
zie ook de alien die zich door boxen op en neer beweegt
 
de schets maakt gebruik van de class Aliens en Ruitjes
 
 
 

Aliens vreemd0;  
Aliens vreemd1;  
Aliens vreemd2;  
Ruitjes ruiten;  
  
float x;   
float y;  
float nx;   
float ny;   
float i;  
//Omdat nu x, y, nx en ny in draw in translate komen moeten de variabelen  
//als global worden gedeclareerd! 
  void setup() {  
//  size(960, 540);  
    fullScreen(); 
  x = width/2;   
  y = height/2;  
  nx = height/30;   
  ny = height/30;   
  ruiten =  new Ruitjes(nx, x, y);  
  vreemd0 = new Aliens(0, 0, nx, ny/3, 4, color(#D34DC4));   
  vreemd1 = new Aliens(x-8*nx, y, 3*nx, ny, 2, color(#89A8E5));   
  vreemd2 = new Aliens(x+10*nx, y, nx, ny, 1, color(#49DE33));  
}  
  
void draw() {  
  background(#E6FBFF);   
//Met onderstaande code (regel .. t/m regel ) roteerd vreemd0 links boven 
  pushMatrix();  
  translate(x-20*nx, y-10*ny);  
  rotate(radians(i));  
  i++;  
  vreemd0.rectHoofd();  
  vreemd0.lichaam();  
  popMatrix();  
    
  vreemd1.arcHoofd();  
  vreemd1.lichaam();  
  vreemd2.rectHoofd();  
  vreemd2.lichaam();  
  ruiten.display();  
  vreemd2.heenEnTerug();  
  vreemd1.opEnNeer();  
}  
  
void keyPressed() {      
  if (key == 's') {     
    noLoop();  
  }      
  if (key == 'r') {        
    loop();  
  }  
}
 

Aliens class

 

class Aliens {
float x;  
 float y;  
 float nx;  
 float ny;  
 color c; 
 float snelh;
Aliens(float x_, float y_, float nx_, float ny_, float snelh_, color c_) { 
 x = x_; 
 y = y_; 
 nx = nx_; 
 ny = ny_; 
 c = c_;  
 snelh = snelh_; 
 }
void arcHoofd() { 
 beginShape();  
 {  
 vertex(x-nx/2, y); //1  
 vertex(x-nx/2, y-ny); //2  
 vertex(x-2.5*nx, y-3*ny); //3  
 vertex(x-2.5*nx, y-4*ny); //4  
 vertex(x-nx/2, y-2*ny); //5  
 vertex(x, y-2.5*ny); //6  
 vertex(x+nx/2, y-2*ny); //7  
 vertex(x+2.5*nx, y-4*ny); //8  
 vertex(x+2.5*nx, y-3*ny); //9  
 vertex(x+nx/2, y-ny); //10  
 vertex(x+nx/2, y); //11  
 endShape(CLOSE); 
 }
fill(0, 0, 255);  
 //ogen  
 ellipse(x-nx/2, y-3*ny, nx/2, ny);  
 ellipse(x+nx/2, y-3*ny, nx/2, ny);  
 //mond  
 fill(255, 255, 0);  
 rectMode(CENTER);  
 rect(x, y-5*ny/3, 1.5*nx, ny/4);  
 fill(255, 0, 0);  
 //schedel  
 arc(x, y-3*ny, 3*nx, 6*nx, radians(180), radians(360)); 
 }
void rectHoofd() { 
 fill(250, 100, 0);  
 //--------------------hoofd 2-----------------------  
 beginShape();  
 {  
 vertex(x-nx/2, y-ny); //1  
 vertex(x-1.5*nx, y-3*ny); //2  
 vertex(x-2.5*nx, y-3*ny); //3  
 vertex(x-2.5*nx, y-4*ny); //4  
 vertex(x-1.5*nx, y-4*ny); //5  
 vertex(x-1.5*nx, y-5*ny); //6  
 vertex(x-nx/2, y-6*ny); //7  
 vertex(x+nx/2, y-6*ny); //8  
 vertex(x+1.5*nx, y-5*ny); //9  
 vertex(x+1.5*nx, y-4*ny); //10  
 vertex(x+2.5*nx, y-4*ny); //11  
 vertex(x+2.5*nx, y-3*ny); //12  
 vertex(x+1.5*nx, y-3*ny); //13  
 vertex(x+nx/2, y-ny); //14  
 endShape(CLOSE); 
 }
fill(0, 0, 255);  
 //ogen  
 ellipse(x-nx, y-4.5*ny, nx/2, ny);  
 ellipse(x+nx, y-4.5*ny, nx/2, ny);  
 //neus  
 fill(255, 0, 0);  
 triangle(x-nx/2, y-3*ny, x, y-4*ny, x+nx/2, y-3*ny);  
 //mond  
 fill(255, 255, 0);  
 rectMode(CENTER);  
 rect(x, y-2.5*ny, 2*nx, ny/4);  
 fill(255, 200, 0);  
 //hals  
 quad(x-1.5*nx, y, x-nx/2, y-ny, x+nx/2, y-ny, x+1.5*nx, y); 
 }
void lichaam() { 
 fill(c);  
 beginShape();  
 {  
 vertex(x-1.5*nx, y+7*ny); //1  
 vertex(x-2.5*nx, y+2.5*ny); //2  
 vertex(x-nx, y+ny); //3  
 vertex(x-4.5*nx, y); //4  
 vertex(x+4.5*nx, y); //5  
 vertex(x+nx, y+ny); //6  
 vertex(x+2.5*nx, y+2.5*ny); //7  
 vertex(x+1.5*nx, y+7*ny); //8  
 vertex(x, y+3*ny); //9  
 endShape(CLOSE); 
 }  
 fill(255, 0, 0);  
 rectMode(CENTER);  
 rect(x, y+ny, 2*nx, ny/4); 
 }
void heenEnTerug() { 
 x = x + snelh; 
 if (x > width || x < 0) { 
 snelh = snelh *-1; 
 } 
 }
void opEnNeer() { 
 y = y + snelh; 
 if (y > height || y < 0) { 
 snelh = snelh *-1; 
 } 
 } 
}