2020年10月26日 星期一

Sunnnnnnnnnnnnnn

 Week07


使用數學的Sin跟Cos
畫一個像時鐘的圓

然後用畫圖 - beginShape
角度可以自己調整

+120就變成三角形了 很好理解8

-----
程式碼:

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);
}
-----

會動的三角形
自己會旋轉,也可以用滑鼠控制三角形的位置

寫一個接水果的程式
街到了加分,水果重生
沒接到水果直接重生
-----
程式碼:
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=150, fruitY=0;
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);
      }
    }
  }
}
-----







沒有留言:

張貼留言