week04
1.打磚塊
void setup(){
size(500,500);
}
int x=250,y=250;
void draw(){
ellipse(x,y,10,10); ///橢圓
x=x+1; (讓橢圓的形狀往x+1方向擴張)
y=y-1;(讓橢圓的形狀往y-1方向擴張)
}
---------------------------------------------------------------
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(x<0)vx=vx*-1;
if(y<0)vy=-vy;
if(y>500)vy=vy*-1;
4個if讓球碰到牆壁反彈
}
---------------------------------------------
void setup(){
size(500,500);
}
float x=250,y=250;
float vx=2.0,vy=-0.5;
void draw(){
background(#E2FF6F); 設定背景更新背景 消暗影
rect(mouseX,475, 100, 20);
int boardX = mouseX;
ellipse(x,y,10,10);
x=x+vx;
y=y+vy;
if(x>500)vx=-vx;
if(x<0)vx=-vx;
if(y<0)vy=-vy;
if(y>470 && x>boardX && x<boardX+100)vy=-vy;
}
滑鼠座標在板子左上角
變形提2
void setup(){
size(500,500);
}
float x=250,y=250;
float vx=2.0,vy=-0.5;
void draw(){
background(#E2FF6F);
rect(mouseX-50,475, 100, 20);
ellipse(x,y,10,10);
x=x+vx;
y=y+vy;
if(x>500)vx=-vx;
if(x<0)vx=-vx;
if(y<0)vy=-vy;
if(y>470 && x>=mouseX-50 && x<=mouseX+50)vy=-vy;
if(y==500) print("game over");
}
滑鼠X標在板子中間
-----------------------------------------
void setup(){
size(500,500);
}
float x=250,y=250;
float vx=2.0,vy=-0.5;
float boardX, boardY=470,boardW=100,boardH=20; 板子的座標
void draw(){
boardX=mouseX-boardW/2; 讓滑鼠座標在板子x座標中間
background(#E2FF66);
rect(boardX,boardY, boardW, boardH);
ellipse(x,y,10,10);
x=x+vx;
y=y+vy;
if(x>500)vx=-vx;
if(x<0)vx=-vx;
if(y<0)vy=-vy;
if(y>boardY && y<boardY+boardH &&
x>boardX && x<boardX+boardW)
{vy=-vy; vx+=(mouseX-pmouseX)*0.5;}
if(mousePressed && mouseButton==LEFT)boardW *= 1.01;//按下滑鼠板子放大
if(mousePressed && mouseButton==RIGHT)boardW *=0.99;//按下滑鼠板子縮小
}
-------------------------------
2.圍棋
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); 用陣列畫處50*50高寬的棋子 9*9排列
}
}
}
-----------------------------------------------
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,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,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(){
background(246,194,108);
for(int i=1 ;i<=9;i++){
line(50,50*i,450,50*i); ///利用for來畫線x和y
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); 在陣列職等於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);
}
}
}
}
----------------------------------------
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(){ //當滑鼠按下 計算ij座標,ij初始為0
int j=(mouseX-25)/50;
int i=(mouseY-25)/50;
go[i][j]=(N%2==0) ? 1:2; 當餘數為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);
}
}
}
}
沒有留言:
張貼留言