2020年10月26日 星期一

week07 三角形,接水果遊戲

 今天教了三角形頂點座標

再來把三角形+了面和邊
接下來教了三角形會更隨著滑鼠中心座標移動
接下來可以讓三角形自動旋轉

void setup(){
size(500,500);
}
void draw(){
beginShape();
//background(255);
for(int angle=0;angle<360;angle+=120){
  float angle2 = radians(angle+frameCount);
  float x = mouseX+cos(angle2)*100;
  float y = mouseY+sin(angle2)*100;
   vertex(x,y);// ellipse(x,y,2,2);
}
endShape(CLOSE);
接下來教了接水果小遊戲
float fruitX=150, fruitY=0;//宣告橢圓形
float kidX=150, kidY=450;//宣告底下要接的東西
int score=0;
void setup(){
  size(500,500);
}
void draw(){
  background(255);
  rect(kidX,kidY,50,80);//下面要接的東西
  kidX=mouseX;//可以移動底下要接的東西
  ellipse(fruitX,fruitY, 60, 80);//橢圓形在最上面的點
  fruitY++;//橢圓形往下掉
  if(fruitY>kidY){//如果水果掉得夠低
    if( kidX < fruitX && fruitX < kidX+80 ){
      score+= 10;//加分
      fruitY=0; fruitX=random(50,450);//水果重生
    }else{
      fruitY=0; fruitX=random(50,450);//水果重生
    }
  }
}
接下來水果會一直掉下來
float [] fruitX = new float[10];//java陣列
float [] fruitY = new float[10];
//float fruitX=150, fruitY=0;//宣告橢圓形
float kidX=150, kidY=450;//宣告底下要接的東西
int score=0;
void setup(){
  size(500,500);
  for(int i=0;i<10;i++){
    fruitX[i]=random(50,450);
    fruitY[i]= -i*100;
  }
}
void draw(){
  background(255);
  rect(kidX,kidY,50,80);//下面要接的東西
  kidX=mouseX;//可以移動底下要接的東西
  for(int i=0;i<10;i++){
  ellipse(fruitX[i],fruitY[i], 60, 80);//橢圓形在最上面的點
  fruitY[i]++;//橢圓形往下掉
  if(fruitY[i]>kidY){//如果水果掉得夠低
    if( kidX < fruitX[i] && fruitX[i] < kidX+80 ){
      score+= 10;//加分
      fruitY[i]=0; fruitX[i]=random(50,450);//水果重生
      }else{
      fruitY[i]=0; fruitX[i]=random(50,450);//水果重生
      }
    }
  }
}

:0 week07

 

size(500,500);
for(int angle=0;angle<360;angle+=30)
{
  float angle2=radians(angle);
  float x=100+cos(angle2)*50;
  float y=100+sin(angle2)*50;
  ellipse(x,y,2,2);
}

size(500,500);
beginShape();
for(int angle=0;angle<360;angle+=120)
{
  float angle2=radians(angle);
  float x=100+cos(angle2)*50;
  float y=100+sin(angle2)*50;
  vertex(x,y);
}
endShape(CLOSE);


-
void setup()
{
  size(500,500);
}
void draw()
{
  beginShape();
  for(int angle=0;angle<360;angle+=120)
  {
    float angle2=radians(angle+mouseX);
    float x=100+cos(angle2)*50;
    float y=100+sin(angle2)*50;
    vertex(x,y);
  }
  endShape(CLOSE);
}


void setup()
{
  size(500,500);
}
void draw()
{
  beginShape();
  for(int angle=0;angle<360;angle+=120)
  {
    float angle2=radians(angle+mouseX);
    float x=mouseX+cos(angle2)*50;
    float y=mouseY+sin(angle2)*50;
    vertex(x,y);
  }
  endShape(CLOSE);
}


void setup()
{
  size(500,500);
}
void draw()
{
  beginShape();
  for(int angle=0;angle<360;angle+=120)
  {
    float angle2=radians(angle+frameCount);
    float x=mouseX+cos(angle2)*100;
    float y=mouseY+sin(angle2)*100;
    vertex(x,y);
  }
  endShape(CLOSE);
}


float fruitX=150,fruitY=0;
float kidX=150,kidY=450;
int score=0;
void setup()
{
  size(300,500);
}
void draw()
{
  background(255);
  rect(kidX,kidY,50,80);
  kidX=mouseX;
  ellipse(fruitX,fruitY,60,80);
  fruitY++;
  if(fruitY>kidY)
  {
    if(kidX<fruitX && fruitX<kidX+80)
    {
      score+=10;
      fruitY=0; fruitX=random(50,450);
    }
    else
    {
      fruitY=0; fruitX=random(50,450);
    }
  }
}










week07

 

今天要學畫出漂亮的圖


1.

用單位元畫出像時鐘一樣的圖


for(int angle=0;angle<360;angle+=x)

x決定圖的形狀


2.

beginShape()、endShape()連接vertex()畫出圖形

*endShape(CLOSE):少打了CLOSE,會有一段缺角



3.

加入滑鼠互動、殘影


4.

*時間單位

1hr = 60min

1min = 60sec

1sec = 60frame

frameCount:第幾個frame


*角度有2種:

(1) degree(360度)

(2) sin()、cos() 用radians(弧度/徑度)


5.

第12行:     fruitY++     讓水果墜落

第14行:      if(kidX<fruitX && fruitX<kidX+80 )  判定是否有接住水果

第16、18行:      fruitY=0; fruitX=random(50,450);   不管是否有接住,隨機生成下一個水果


6.

第1、2行: 

float [] fruitX=new float[10];
float [] fruitY=new float[10];

以上JAVA陣列處理更多的圖形
*C陣列:   float fruitX[10];


第9行:

fruitY[i]=-i*100;

新水果的重生點,為了不讓重生的水果黏在一起






week07


size(500,500);

  beginShape();

  for(int angle=0; angle<360; angle+=120){

    float angle2 = radians(angle);

    float x = 100+cos(angle2)*50;

    float y = 100+sin(angle2)*50;

    vertex(x,y);

  }

  endShape(CLOSE);



void setup(){

size(500,500);

}


void draw(){

  beginShape();

  for(int angle=0; angle<360; angle+=120){

    float angle2 = radians(angle+mouseX);

    float x = mouseX+cos(angle2)*50;

    float y = mouseY+sin(angle2)*50;

    vertex(x,y);

  }

  endShape(CLOSE);

}


(EXTRA)

int A=30;
void setup() {
  size(500, 500);
}

void draw() {
  for (int x1=25; x1<=475; x1+=45) {
    for (int y1=25; y1<=475; y1+=45) {
      beginShape();
       if(y1%2==0){
          if(x1%2==0){
            A=20; 
            stroke(0,0,0);
          }
          else{
            A=40; 
            stroke(255,0,0);
          }
        }
        else{
          if(x1%2==0){
            A=30; 
            stroke(255,0,0);
          }
          else{
            A=30; 
            stroke(0,0,0);
          }
        }
        
      for (int angle=0; angle<360; angle+=120) {
        float angle2 = radians(angle+A);
        float x2 = x1+cos(angle2)*20;
        float y2 = y1+sin(angle2)*20;
        vertex(x2, y2);  
      }
      endShape(CLOSE);
      beginShape();
      for (int angle=0; angle<360; angle+=120) {
        if(y1%2==0){
          if(x1%2==0) A=20;
          else A=40;
        }
        else A=30;
        
        float angle2 = radians(angle+A);
        float x2 = x1+cos(angle2)*12;
        float y2 = y1+sin(angle2)*12;
        vertex(x2, y2);
      }
      endShape(CLOSE);
      beginShape();
      for (int angle=0; angle<360; angle+=120) {
        if(y1%2==0){
          if(x1%2==0) A=20;
          else A=40;
        }
        else A=30;
        
        float angle2 = radians(angle+A);
        float x2 = x1+cos(angle2)*4;
        float y2 = y1+sin(angle2)*4;
        vertex(x2, y2);
      }
      endShape(CLOSE);
    }
  }
}







07

 void setup()

{

  size(500,500);

}

void draw()

{

  beginShape();

  for(int angle=0;angle<360;angle+=120)

  {

    float angle2=radians(angle+frameCount);

    float x=mouseX+cos(angle2)*100;

    float y=mouseY+sin(angle2)*100;

    vertex(x,y);

  }

  endShape(CLOSE);

}









float fruitX=150, fruitY=0;

float kidX=150, kidY=450;

int score=0;

void setup()

{

  size(300,500);

}

void draw()

{

  background(255);

  rect(kidX,kidY,50,80);

  kidX=mouseX;

  ellipse(fruitX,fruitY,60,80);

  fruitY++;

  if(fruitY>kidY)

  {

    if(kidX<fruitX && fruitX<kidX+80)

    {

      score+=10;

      fruitY=0; fruitX=random(50,450);

    }

    else

    {

      fruitY=0; fruitX=random(50,450);

    }

  }

}









float [] fruitX=new float[10];

float [] fruitY=new float[10];

float kidX=150, kidY=450;

int score=0;

void setup()

{

  size(500,500);

  for(int i=0;i<10;i++)

  {

    fruitX[i]=random(50,450);

    fruitY[i]=-i*100;

  }

}

void draw()

{

  background(255);

  rect(kidX,kidY,50,80);

  kidX=mouseX;

  for(int i=0;i<10;i++)

  {

    ellipse(fruitX[i],fruitY[i],60,80);

    fruitY[i]++;

    if(fruitY[i]>kidY)

    {

    if(kidX<fruitX[i] && fruitX[i]<kidX+80)

      {

        score+=10;

        fruitY[i]=0; fruitX[i]=random(50,450);

      }

      else

      {

        fruitY[i]=0; fruitX[i]=random(50,450);

      }

    }

  }

}










WEEK07

week07

找出規律並描繪出三角形的點

 

size(500,500);

for(int angle=0; angle<360; angle+=30){

  float angle2=radians(angle);

  float x = 100+cos(angle2)*50;

  float y = 100+sin(angle2)*50;

  ellipse(x,y,2,2);

}

把點連成線繪製出封閉的三角形


size(500,500);

beginShape();

for(int angle=0; angle<360; angle+=120){

  float angle2=radians(angle);

  float x = 100+cos(angle2)*50;

  float y = 100+sin(angle2)*50;

  vertex(x,y);

}

endShape(CLOSE);

使三角形隨著滑鼠在原地旋轉



void setup(){

  size(500,500);

}

void draw(){

  beginShape();

  for(int angle=0; angle<360; angle+=120){

    float angle2=radians(angle+mouseX);

    float x = 100+cos(angle2)*50;

    float y = 100+sin(angle2)*50;

    vertex(x,y);

  }

  endShape(CLOSE);

}

使三角形隨著滑鼠移動旋轉



void setup(){

  size(500,500);

}

void draw(){

  beginShape();

  for(int angle=0; angle<360; angle+=120){

    float angle2=radians(angle+mouseX);

    float x = mouseX+cos(angle2)*50;

    float y = mouseY+sin(angle2)*50;

    vertex(x,y);

  }

  endShape(CLOSE);

}

設定三角形的大小、選轉角度


void setup(){

  size(500,500);

}

void draw(){

  beginShape();

  for(int angle=0; angle<360; angle+=120){

    float angle2=radians(angle+frameCount);

    float x = mouseX+cos(angle2)*100;

    float y = mouseY+sin(angle2)*100;

    vertex(x,y);

  }

  endShape(CLOSE);

}

接水果遊戲


float fruitX=150, fruitY=0;

float KidX=150,KidY=450;

int score=0;

void setup(){

  size(300,500);

}

void draw(){

  background(255);

  KidX=mouseX;

  rect(KidX,KidY,50,80);

  ellipse(fruitX,fruitY,60,80);

  fruitY++;

  if(fruitY>KidY){

    if(KidX<fruitX && fruitX<KidX+80){

      score +=10;

      fruitY=0;fruitY=random(50,450);

    }else{

      fruitY=0;fruitX=random(50,450);

    }

  }

}

接水果


float [] fruitX = new float[10];

float [] fruitY = new float[10];

float KidX=150,KidY=450;

int score=0;

void setup(){

  size(500,500);

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

    fruitX[i] = random(50,450);

    fruitY[i] = -i*100;

  }

}

void draw(){

  background(255);

  rect(KidX,KidY,50,80);

  KidX=mouseX;

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

    ellipse(fruitX[i],fruitY[i],60,80);

    fruitY[i]++;

    if(fruitY[i]>KidY){

      if(KidX<fruitX[i] && fruitX[i]<KidX+80){

        score+=10;

        fruitY[i]=0; fruitY[i]=random(50,450);

      }else{

        fruitY[i]=0; fruitX[i]=random(50,450);

      }

    }

  }

}

week0707070707

WEEK07




根據滑鼠左右改變三角形的旋轉方向
每移動位子印出一個三角形
 void setup(){
size(500,500);
}
void draw(){
  beginShape();
  for(int angle=0;angle<360;angle+=120)
  {
     float angle2 = radians(angle+mouseX);
     float x = mouseX+cos( angle2 ) * 50;
     float y = mouseY+sin( angle2 ) * 50;
     vertex(x,y);
     //ellipse( x, y, 2, 2);
  }
endShape(CLOSE);
}


三角形本身會自轉
移動印出
void setup()
{
  size(500,500);
}
void draw()
{
  beginShape();
  for(int angle=0; angle<360; angle+=120)
  {
    float angle2 = radians(angle + frameCount);
    float x = mouseX+cos( angle2 ) * 100;
    float y = mouseY+sin( angle2 ) * 100;
    vertex(x,y);
  }
  endShape(CLOSE);
}


float [] fruitX = new float[10];
float [] fruitY = new float[10];
float kidX=150,kidY=450;
int score=0;
void setup()
{
  size(500,500);
  for(int i=0;i<10;i++)
  {
    fruitX[i] = random(50,450);
    fruitY[i] = -i*100;
  }
}
void draw()
{
  background(255);
  rect(kidX,kidY,50,80);
  kidX=mouseX;
  for(int i=0;i<10;i++)
  {
    ellipse(fruitX[i],fruitY[i],60,80);
    fruitY[i]++;
    if(fruitY[i]>kidY)//水果掉得夠低
    {
      if(kidX < fruitX[i] && fruitX[i] < kidX+80)//接到水果了
      {
        score+=10;//加分水果重生
        fruitY[i]=0; fruitX[i]=random(50,450);
      }
      else
      {
        fruitY[i]=0; fruitX[i]=random(50,450);
      }
    }
  }