2022年9月26日 星期一

xyt week04

  week04 

  1. 小程式_打磚塊_橢圓球
  • 往斜上方移動

```java
void setup(){
 size(500, 500); 
}
int x=250, y=250;//變數(位置)
void draw(){
 ellipse(x, y, 10, 10);//橢圓
 x = x + 1;
 y = y - 1;
```

2.  製造反彈效果

```java
void setup(){
 size(500, 500); 
}
float x=250, y=250;//變數(位置)精細
float vx=1.0, vy=-0.5;
void draw(){
 ellipse(x, y, 10, 10);//橢圓
 x = x + vx;
 y = y + vy;
 if( x > 500 ) vx = -vx;//右邊界
 if( y < 0 ) vy = -vy;//上邊界
 if( x < 0) vx = -vx;//左邊界
}

```

3. 滑鼠移動下面板塊

```java
void setup(){
 size(500, 500); 
}
float x=250, y=250;//變數(位置)精細
float vx=2.0, vy=-1.5;
void draw(){
 background(#FFFFF2);
 int boardX = mouseX;
 rect(boardX, 470, 100, 20);//控制的板子
 ellipse(x, y, 10, 10);//橢圓
 x = x + vx;
 y = y + vy;
 if( x > 500 ) vx = -vx;//右邊界
 if( y < 0 ) vy = -vy;//上邊界
 if( x < 0) vx = -vx;//左邊界
 if( y>470 && x>boardX && x<boardX+100 ) vy = -vy;
}

``` 

4. 加入滑鼠移動速度,暗助滑鼠左鍵放大板塊

```java
void setup(){
 size(500, 500); 
}
float x=250, y=250;//變數(位置)精細
float vx=2.0, vy=-2.5;
float boardX, boardY=470, boardW=100, boardH=20;
void draw(){
 boardX = mouseX-boardW/2;
 background(#FFFFF2);//背景,去除殘影
 rect(boardX, boardY, boardW, boardH);//控制的板子
 ellipse(x, y, 10, 10);//橢圓
 x = x + vx;
 y = y + vy;
 if( x > 500 ) vx = -vx;//右邊界
 if( y < 0 ) vy = -vy;//上邊界
 if( x < 0) vx = -vx;//左邊界
 if( ( y>boardY && y<boardY+boardH ) && ( x>boardX && x<boardX+boardW) ){
   vy = -vy;
   vx += (mouseX-pmouseX)/2;//mouse的移動速度
 }
 if(mousePressed && mouseButton==LEFT) boardW *= 1.01;
 if(mousePressed && mouseButton==RIGHT) boardW *=0.99;
}

```


 5. 小程式_圍棋

```java
void setup(){
 size(500, 500); 
}
void draw(){
  //用迴圈來畫出很多棋
 for(int x=50; x<=450; x+=50 ){
  for(int y=50; y<=450; y+=50){
   ellipse(x, y, 50, 50); 
  }
 }
}

```


 6. 圍棋 陣列

```java
void setup(){
 size(500, 500); 
}
int [][] go ={
  {0,0,0,0,0,0,0,0,1},
  {0,0,0,0,0,0,0,0,1},
  {0,1,0,0,0,0,0,0,1},
  {0,0,0,0,0,0,1,0,1},
  {0,0,0,0,0,0,0,0,1},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
};//陣列9x9
void draw(){
  //用迴圈來畫出很多棋
 for(int i=0; i<9; i++){//左手i對應y座標
  for(int j=0; j<9; j++){//右手j對應x座標
    if( go[i][j]==1)fill(0);
    else fill(255);
    ellipse(50+j*50, 50+i*50, 50, 50);
  }
 }
}

```


 7. 圍棋 棋盤

```java
void setup(){
 size(500, 500); 
}
int [][] go ={
  {0,0,0,0,0,0,0,0,1},
  {0,0,0,0,0,0,0,0,1},
  {0,1,0,0,0,0,0,2,1},
  {0,0,0,0,0,0,1,0,1},
  {0,0,0,0,0,0,0,0,1},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
};//陣列9x9
void draw(){//用迴圈來畫出很多棋
 background(246, 194, 108);//木頭色的棋盤
 for(int i=1; i<=9; i++){//用迴圈畫出很多條線
  line(50, 50*i, 450, 50*i);//湊出來的
  line(50*i, 50, 50*i, 450);//湊出來的
 }
 for(int i=0; i<9; i++){//左手i對應y座標
  for(int j=0; j<9; j++){//右手j對應x座標
    if( go[i][j]==1){
      fill(0);//1:黑棋
      ellipse(50+j*50, 50+i*50, 40, 40);
     }else if( go[i][j]==2){
      fill(255);//2:白棋
      ellipse(50+j*50, 50+i*50, 40, 40);
     }
  }
 }
}

```


8. 滑鼠事件 點擊下棋 黑白交換 
```java
void setup(){
 size(500, 500); 
}
int [][] go ={
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
};//陣列9x9
int N=0;//目前有幾個棋子
void mousePressed(){
 int j = (mouseX-25)/50;//右手j, 對應x座標
 int i = (mouseY-25)/50;//左手i, 對應y座標
 go[i][j] = (N%2==0) ? 1:2;
 N++;//多了一個棋子
}
void draw(){//用迴圈來畫出很多棋
 background(246, 194, 108);//木頭色的棋盤
 for(int i=1; i<=9; i++){//用迴圈畫出很多條線
  line(50, 50*i, 450, 50*i);//湊出來的
  line(50*i, 50, 50*i, 450);//湊出來的
 }
 for(int i=0; i<9; i++){//左手i對應y座標
  for(int j=0; j<9; j++){//右手j對應x座標
    if( go[i][j]==1){
      fill(0);//1:黑棋
      ellipse(50+j*50, 50+i*50, 40, 40);
     }else if( go[i][j]==2){
      fill(255);//2:白棋
      ellipse(50+j*50, 50+i*50, 40, 40);
     }
  }
 }
}

```


 

沒有留言:

張貼留言