211122 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++//速度1,2,3,...
//y++
//y++
y=y+3;//3是速度
y=y+vy;//vy是速度
}
再畫出一顆球球🏀🏀
👉程式碼(更改部分為豆沙粉色 )
float x=250,y=0,vx=0,vy=3;
float x2=150,y2=50,vx2=0,vy2=2;
void setup(){
size(500,600);
}
void draw(){
background(255);
ellipse(x,y,50,50);
ellipse(x2,y2,50,50);
//y++//速度1,2,3,...
//y++
//y++
y=y+3;//3是速度
y=y+vy;//vy是速度
y2=y2+vy2;//vy2是速度
}
畫出更多球球🏀🏀🏀🏀
改用for迴圈
👉程式碼
float []x={250,150,350,300};
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];
}
}
彈力球球🎈
👉程式碼(更改部分為豆沙粉色 )
float []x={250,150,350,300};
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,300};
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++){///迴圈會跑4次
fill(255,255,0);ellipse(x[i],y[i],50,50);
if(dist(mouseX,mouseY,x[i],y[i])<=50){
continue;///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);
}
讓球球消失
👉程式碼(更改部分為豆沙粉色 )
float []x={250,150,350,300};
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
///boolean
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];
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變數,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);//綠色
}
讓更多球球消失Part1
👉程式碼(更改部分為豆沙粉色 )
float []x;
float []y;
float []vy;
boolean[]dead;
int N=20;
void setup(){
size(500,600);
x=new float[N];//決定陣列大小
y=new float[N];
vy=new float[N];
dead=new boolean[N];
for(int i=0;i<N;i++){
x[i]=random(500);//500以下的亂數
y[i]=random(100,200);
vy[i]=random(3,4);//2...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;//如果死掉了,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);
}
讓更多球球消失Part2
👉程式碼
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];
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(500);
vx=random(-4,4);
vy=random(-4,4);///介於-4到4之間挑一個亂數
dead=false;
}
void draw(){
if(dead==true) return;///離開函式
ellipse(x,y,100,100);
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();
}
}
到處反彈的球球們
👉加入這行程式碼
vy+=0.98;///重力加速度
特訓99
躲避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 ( mouseX!=0 && dist(mouseX, mouseY, x, y)<50) {
dead=true;
gameOver= true;
}
x=x+vx;
y=y+vy;
if(y>500 || y<0)return;///如果沒有改return會反彈
if(x>500 || x<0)return;
}
}
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);
}
如果喜歡我的部落格的話
請幫我按右上角的愛心(根本按不下去)
也可以按右上角的小鈴鐺(這也按不下去)
才不會錯過我的更新哦!😉
沒有留言:
張貼留言