Week 11 👀
加入一個圓✊
//Step01-1:能不能東西動起來!!!!!掉下來金幣(座標x,y)
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; //vy是速度
}
兩個圓✊✊
//Step01-3:很多組!for+陣列
float []x={250,150,350,100};
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];//vy是速度
}
}
撞到邊框會反彈增加互動👇👇
//Step01-4:多一點互動
float []x={250,150,350,100};
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];//vy是速度
if(y[i]>600) vy[i]= -vy[i];//撞到下方
if(y[i]<0) vy[i]= -vy[i];//撞到上方
}
}
碰到球會讓紅色球停止✌
//Step02-1:mouse碰到球,可得分
float []x={250,150,350,100};
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];//vy是速度
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);
}
可將球死掉👀👀
//Step02-2: dead[] array
float []x={250,150,350,100};
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};//false 0,true 1
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;//如果死掉了,continue換下一個
fill(255,255,0);ellipse(x[i],y[i],50,50);
y[i]= y[i] + vy[i];//vy是速度
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意思👌
//Step02-2b: 練習 boolean 變數true成立,false不成立
boolean down;//按下去
void setup(){
size(500,300);
}
void draw(){
if(mousePressed) down=true;
else down=false;
print(down);
if(down) background(255,0,0);//紅色
else background(0,255,0);//綠色
}
讓球多一點✊✊✊✊✊
//Step03-2: 用class物件
class Ball{
float x,y,vx,vy;
boolean dead;
Ball(){
x= random(500);//500以下的亂數
y= random(100,200);
vy= random(3,4);//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];
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();
}
}
//Step04-2:
//Step04-3
class Ball{//我們發明 Ball物件
float x, y, vx, vy;
boolean dead;
Ball(){//建構 同名的東西
reborn();
}
void reborn(){
x = random(500);
y = random(500);
vy = random(-2,2);
vx = 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*1;//速度*時間=距離
y = y + vy*1;
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);
}
沒有留言:
張貼留言