0. 球球
0-1. 球走
void setup(){
size(500,500);
}
int x=250, y=250; ///位置
void draw(){
ellipse(x,y,10,10); ///橢圓
x=x+1;
y=y-1;
}
0-2. 碰牆反彈
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;
if(y>500) vy = -vy;
}
0-3. 板子反彈
void setup(){
size(500,500);
}
float x=250, y=250; ///位置
float vx=1.0, vy=-0.5;
void draw(){
background(#FFFFF2); ///背景去除殘影
int boardX = mouseX;
rect(boardX, 470, 100, 20); ///板子(長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;
}
0-4. 加速度and讓板子縮放
void setup(){
size(500,500);
}
float x=250, y=250; ///位置
float vx=1.0, vy=-0.5;
float boardX, boardY=470, boardW=100, boardH=20;
void draw(){
boardX = mouseX-boardW/2;
background(#FFFFF2); ///背景去除殘影
int boardX = mouseX;
rect(boardX, boardY, boardW, boardH); ///板子(長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>boardY && x<boardY+boardH) &&
(x>boardX && x<boardX+boardW) ){
vy = -vy;
vx = (mouseX-pmouseX)/2;
}
///讓板子縮放
if(mousePressed && mouseButton == LEFT) boardW *= 1.01; ///滑鼠左鍵
if(mousePressed && mouseButton == RIGHT) boardW *= 0.99;
}
1. go
1-1. 9入旗子
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);
}
}
}
1-2. 修改迴圈
void setup(){
size(500,500);
}
int [][] go ={
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,1,0,0},
{0,0,1,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,1,0,0,1,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},
};
void draw(){
for(int i=0; i<9; i++){
for(int j=0; j<9; j++){
if(go[i][j] == 1)
fill(0);
else
fill(255);
ellipse(50+j*50, 50+i*50, 50, 50);
}
}
}
1-3. 棋盤
void setup(){
size(500,500);
}
int [][] go ={ ///0沒有旗子 1黑 2白
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,1,0,0},
{0,0,1,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,1,0,0,1,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},
};
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++){
for(int j=0; j<9; j++){
if(go[i][j] == 1){
fill(0);
ellipse(50+j*50, 50+i*50, 50, 50);
}else if(go[i][j] == 2){
fill(255);
ellipse(50+j*50, 50+i*50, 50, 50);
}
}
}
}
1-4. 放旗子
///go
void setup(){
size(500,500);
}
int [][] go ={ ///0沒有旗子 1黑 2白
{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},
};
int N=0;
void mousePressed(){
int i = (mouseX-25)/50; ///按的位置
int j = (mouseY-25)/50;
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++){
for(int j=0; j<9; j++){
if(go[i][j] == 1){
fill(0);
ellipse(50+j*50, 50+i*50, 40, 40);
}else if(go[i][j] == 2){
fill(255);
ellipse(50+j*50, 50+i*50, 40, 40);
}
}
}
}
沒有留言:
張貼留言