反彈球
畫面大小(500,500)
用ellispe(x,y,寬,長) 來畫圓形
x+1 ,y-1來使球移動
void setup(){
size(500,500);
}
float x=250 , y=250;
void draw(){
ellipse( x, y , 10 ,10 );
x=x+1;
y=y-1;
}
設立變數vx,vy來控制球速
設立上下界來反彈
x = x + vx;
y = y + vy;
if ( x > 500 || x < 0 ) vx = -vx;
if ( y < 0 || y > 500 ) vy = -vy;
}
板子反彈
設立變數boardX = mouseX 滑鼠控制板子位置
rect( mouseX , 470 , 寬 , 長 , 弧度)方塊能跟滑鼠一起動。
預設板子的前後25會觸發反彈
void draw(){
background(#FFFFF2);
int boardX = mouseX;
rect(boardX-25 , 470 , 50 ,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-25 && x<boardX+25) vy=-vy;///反彈
vx+= (mouseX - pmouseX)/2;///算出滑鼠的移動量 加在vx
}
用mousePressed() 跟 mouseButton()來移動板子
if ( mousePressed && mouseButton == LEFT ) boardW *= 1.01
if ( mousePressed && mouseButton == RIGHT ) boardW *= 0.99
整體完成反彈球
void setup(){
size(500,500);
}
float x=250,y=250;
float vx=2.0,vy=-1.5;
float boardx,boardy=470,boardW=100,boardH=15;
void draw(){
background(#FFEAD1);
boardx=mouseX- boardW/2;
rect( boardx ,boardy,boardW,boardH,5);
ellipse(x ,y ,10, 10);
x=x+vx;
y=y+vy;
if(x >500 || x<0 ) vx=-vx;
if(y < 0 ) vy=-vy;
if( ( y>boardy && y<boardy+30 ) && ( 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;
}
圍棋用ellispe(x,y,寬,長) 來畫圓形雙迴圈來將x,y填滿圓形將全部棋先設為0void 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},
};
void draw(){
for (int x=50;x<=450;x+=50){
for (int y=50;y<=450;y+=50){
ellipse(x,y,50,50);
}
}
}
簡易棋盤雙迴圈畫線line(x1,y1,x2,y2) 分別將x y乘i來產生多條線void draw(){
background(#EABB74);
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
line( 50 , 50*i , 450 , 50*i);
line(50*i, 50 , 50*i, 450 );
}
}
}
使用if else 條件 如果讀到1 設黑 反之 設白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);
}
}
}完整的棋盤+棋子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},
};
int n=0;
void mousePressed(){
int j=(mouseX-25)/50;
int i=(mouseY-25)/50;
go[i][j]= (n%2==0)?1:2;
n++;
}
void draw(){
background(246 , 194 , 108);
for (int i=0;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);
}
}
}
}


沒有留言:
張貼留言