2021年12月27日 星期一

岩壁悲歌 Week11

  2021/12/20

----------------------------------------

小葉老師在協助同學期末作品


彈弓的模擬






void setup(){

  size(400,300);

}

float x,y,vx,vy;

boolean flying=false;

void draw(){

  background(255);

  line(mouseX,mouseY,100,200);

  float force = 1*dist(mouseX,mouseY,100,200);

  if(flying){

    ellipse(x,y,30,30);

    x+=vx;  y+=vy;

    vy+=0.98;

  }

  if(frameCount%(2*60)==0){

    x=mouseX;  y=mouseY;  vx=(100-mouseX)*0.1;  vy=(200-mouseY)*0.1;

    flying=true;  

  }

}

------------------------------------------------


馬力歐採怪物









float []turtleX=new float[30];

float x=100,y=200,vx=0,vy=0;

boolean jumping=false,MarioDie=false;

boolean[]turtleAlive=new boolean[30];

void setup(){

  size(500,300);

  turtleX[0]=500;

  for(int i=1;i<30;i++){

    turtleX[i]=turtleX[i-1]+random(100,200);

    turtleAlive[i]=true;

  }

}

void draw(){

  background(255);

  if(MarioDie) background(255,0,0);

  fill(#E5DCB7);  rect(0,200,500,100);

  for(int i=0;i<30;i++){

    if(turtleAlive[i]){

      if(dist(x,y-20,turtleX[i],200-20)<40){

        if(jumping)  turtleAlive[i]=false;

        else  MarioDie=true;

      }

      fill(0,255,0);  ellipse(turtleX[i],200-20,40,40);

      if(!MarioDie)  turtleX[i]-=3;

    }

  }

  fill(255,0,0);  ellipse(x,y-20,40,40);

  if(jumping){

    x+=vx;  y+=vy;  vy+=0.98;

    if(y>200){

      y=200;  jumping=false;

    }

  }

}

void mousePressed(){

  jumping=true;

  vy-=16;

}

---------------------------------------


寶石方塊








int[][]square=new int[8][8];

color[] c={#FA1E1E,#1E44FA};

void setup(){

  size(400,400);

  for(int i=0;i<8;i++){

    for(int j=0;j<8;j++){

      square[i][j]=int(random(2));

    }

  }

}

void draw(){

  for(int i=0;i<8;i++){

    for(int j=0;j<8;j++){

      if(mousePressed&&i==moveI&&j==moveJ)  strokeWeight(5);

      else if(mousePressed&&i==moveI2&&j==moveJ2)  strokeWeight(5);

      else  strokeWeight(1);

      if(square[i][j]==0){

        fill(c[0]);  rect(j*50,i*50,50,50);

      }else if(square[i][j]==1){

        fill(c[1]);  rect(j*50,i*50,50,50);

      }

    }

  }

}

int moveI,moveJ,moveI2,moveJ2;

void mousePressed(){

  int j=mouseX/50,i=mouseY/50;

  moveJ=j;  moveI=i;

  moveJ2=j;  moveI2=i;

}

void mouseDragged(){

  int j=mouseX/50,i=mouseY/50;

  moveJ2=j;  moveI2=i;

}

void mouseReleased(){

  int j=mouseX/50,i=mouseY/50;

  moveJ2=j;  moveI2=i;

  if(testNeighbor(i,j,moveI,moveJ)==true){

    int temp=square[i][j];

    square[i][j]=square[moveI][moveJ];

    square[moveI][moveJ]=temp;

  }

}

boolean testNeighbor(int i,int j,int i2,int j2){

  if(i==i2&&j-j2==1)  return true;

  if(i==i2&&j2-j==1)  return true;

  if(j==j2&&i-i2==1)  return true;

  if(j==j2&&i2-i==1)  return true;

  return false;

}

沒有留言:

張貼留言