✨Week09✨
球下墜
💻程式碼
float x=250, y=0, vx=0, vy=3;
void setup()
{
size(500,600);//畫布大小
}
void draw()
{
background(255);//清背景
ellipse(x,y,50,50);//圓球
y=y+vy;//球下墜速度
}
兩顆球下墜
💻程式碼
float x1=250,y1=0,vx1=0,vy1=3; //第一顆球位置 速度
float x2=150,y2=50,vx2=0,vy2=2;//第二顆球位置 速度
void setup()
{
size(500,600);
}
void draw()
{
background(255);
ellipse(x1,y1,50,50);//第一顆球
ellipse(x2,y2,50,50);//第二顆球
y1=y1+vy1;//第一顆球
y2=y2+vy2;//第二顆球
}
多顆球下墜
💻程式碼
float []x={250,150,350,350};//位置x軸
float []y={0,50,80,100};//位置y軸
float []vx={0,0,0,0};//速度x
float []vy={3,2,2.5,4};//速度y
void setup()
{
size(500,600);
}
void draw()
{
background(255);
for(int i=0;i<4;i++)//四顆球
{
ellipse(x[i],y[i],50,50); //球設定
y[i]=y[i]+vy[i];//速度
}
}
讓球反彈
💻程式碼
float []x={250,150,350,350};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup()
{
size(500,600);
}
void draw()
{
background(255);
for(int i=0;i<4;i++)
{
ellipse(x[i],y[i],50,50);
y[i]=y[i]+vy[i];
if(y[i]>600)vy[i]=-vy[i];//當球來到畫面下緣 讓球的往反方向跑
if(y[i]<0)vy[i]=-vy[i];//當球來到畫面上緣 讓球的往反方向跑
}
}
碰球得分
💻程式碼
float []x={250,150,350,350};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup()
{
size(500,600);
}
void draw()
{
background(255);
for(int i=0;i<4;i++)
{
fill(255,255,0); ellipse(x[i],y[i],50,50);
if(dist(mouseX,mouseY,x[i],y[i])<=50)//如果滑鼠靠近黃球 執行下一組
{
continue;
}
y[i]=y[i]+vy[i];
if(y[i]>600)vy[i]=-vy[i];
if(y[i]<0)vy[i]=-vy[i];
}
fill(255,0,0); ellipse(mouseX,mouseY,50,50);//滑鼠的球
}
碰到消失
💻程式碼
float []x={250,150,350,350};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
boolean [] dead={false,false,false,false};//布林陣列 true1 false0
void setup()
{
size(500,600);
}
void draw()
{
background(255);
for(int i=0;i<4;i++)
{
if(dist(mouseX,mouseY,x[i],y[i])<=50)
{
dead[i]=true;//碰到就死掉
}
if(dead[i]==true)//死掉就換下一個
{
continue;
}
fill(255,255,0); ellipse(x[i],y[i],50,50);
y[i]=y[i]+vy[i];
if(y[i]>600)vy[i]=-vy[i];
if(y[i]<0)vy[i]=-vy[i];
}
fill(255,0,0); ellipse(mouseX,mouseY,50,50);
}
布林變數
💻程式碼
boolean down;//按下去
void setup()
{
size(500,300);
}
void draw()
{
if(mousePressed)down=true;//滑鼠按下是True
else down=false;
print(down);
if(down) background(255,255,0);//當true變黃色
else background(0,255,0);//false綠色
}
球的隨機設定
💻程式碼
float []x;
float []y;
float []vy;
boolean [] dead;
int N=20;
void setup()
{
size(500,600);
x=new float[N];//有20顆球
y=new float[N];
vy=new float[N];
dead=new boolean[N];
for(int i=0;i<N;i++)
{
x[i]=random(500);//500以下的隨機數值 x軸
y[i]=random(100,200);//100~200的隨機數值 y軸
vy[i]=random(3,4);//3~4的隨機數值 速度
dead[i]=false;
}
}
void draw()
{
background(255);
for(int i=0;i<N;i++)
{
if(dist(mouseX,mouseY,x[i],y[i])<=50)
{
dead[i]=true;
}
if(dead[i]==true)
{
continue;
}
fill(255,255,0); ellipse(x[i],y[i],50,50);
y[i]=y[i]+vy[i];
if(y[i]>600)vy[i]=-vy[i];
if(y[i]<0)vy[i]=-vy[i];
}
fill(255,0,0); ellipse(mouseX,mouseY,50,50);
}
class物件
💻程式碼
class Ball
{
float x,y,vx,vy;
boolean dead;
Ball()//建構
{
x=random(500);
y=random(100,200);
vy=random(3,4);
dead=false;
}
void draw()
{
if(dead==true)return;
ellipse(x,y,50,50);
if(dist(mouseX,mouseY,x,y)<50)
{
dead=true;//會死掉
}
y=y+vy;
if(y>500) vy=-vy;//讓球回彈
if(y<0) vy=-vy;
}
}
Ball [] balls;
void setup()
{
size(500,500);
balls=new Ball[20];//20顆球
for(int i=0;i<20;i++)
{
balls[i]=new Ball();
}
}
void draw()//畫出球
{
background(255);
for(int i=0;i<20;i++)
{
balls[i].draw();
}
}
球隨機方向移動
💻程式碼
class Ball
{
float x,y,vx,vy;
boolean dead;
Ball()
{
x=random(500);
y=random(100,200);
vx=random(-4,4);//隨機x軸速度
vy=random(-4,4);
dead=false;
}
void draw()
{
if(dead==true)return;
ellipse(x,y,50,50);
if(dist(mouseX,mouseY,x,y)<50)
{
dead=true;
}
x=x+vx;
y=y+vy;
if(y>500 || y<0) vy=-vy;
if(x>500 || x<0) vx=-vx;//反彈
}
}
Ball [] balls;
void setup()
{
size(500,500);
balls=new Ball[20];
for(int i=0;i<20;i++)
{
balls[i]=new Ball();
}
}
void draw()
{
background(255);
for(int i=0;i<20;i++)
{
balls[i].draw();
}
}
球與重力加速度
💻程式碼
class Ball
{
float x,y,vx,vy;
boolean dead;
Ball()
{
x=random(500);
y=random(100,200);
vx=random(-4,4);
vy=random(-4,4);
dead=false;
}
void draw()
{
if(dead==true)return;
ellipse(x,y,50,50);
//if(dist(mouseX,mouseY,x,y)<50)
//{
// dead=true;
//}
x=x+vx*1;
y=y+vy*1;
vy+=0.98;
if(y>500 || y<0) vy=-vy;
if(x>500 || x<0) vx=-vx;
}
}
Ball [] balls;
void setup()
{
size(500,500);
balls=new Ball[20];
for(int i=0;i<20;i++)
{
balls[i]=new Ball();
}
}
void draw()
{
background(255);
for(int i=0;i<20;i++)
{
balls[i].draw();
}
}
特訓99
💻程式碼
class Ball
{
float x,y,vx,vy;
boolean dead;
Ball()
{
reborn();
}
void reborn()
{
x=random(500);
y=random(500);
vx=random(-2,2);
vy=random(-2,2);
dead=false;
}
void draw()
{
if(dead==true)return;
fill(255,0,0);
ellipse(x,y,5,5);
if(dist(mouseX,mouseY,x,y)<5)
{
dead=true;
gameOver=true;
}
x=x+vx;
y=y+vy;
if(y>500 || y<0) reborn();
if(x>500 || x<0) reborn();
}
}
Ball [] balls;
void setup()
{
size(500,500);
balls=new Ball[99];
for(int i=0;i<99;i++)
{
balls[i]=new Ball();
}
}
boolean gameOver=false;
void draw()
{
background(0);
for(int i=0;i<99;i++)
{
balls[i].draw();
}
if(gameOver)background(255,0,0);
}
沒有留言:
張貼留言