20200327 發射子彈&陣列
一開始先複習了之前教的按滑鼠讓球跟著移動
int []x={0,0,0,0,0};//有5個位置放球的x坐標
int []y={0,0,0,0,0};//有5個位置放球的y坐標
void setup()
{
size(800,450);//設定背景大小(尺寸跟背景照片的大小要一樣)
bg=loadImage("bg.png");//把bg.png(照片)拿來當背景
}
void draw()
{
background(bg);//背景設為bg
circle(x[0],y[0],40);//在x[0],y[0]的位置畫一個大小40的球
}
void mousePressed()
{
x[0]=mouseX;//x坐標=滑鼠的x坐標
y[0]=mouseY;//y坐標=滑鼠的y坐標
}
--------------------------------------------------------------------------------------------------------------------------
再來教了變出5顆球的方法(但是只能點5次,超過的話程式就會當掉)
int []x={0,0,0,0,0};//有5個位置放球的x坐標
int []y={0,0,0,0,0};//有5個位置放球的y坐標
int n=0;//一開始沒有球
void setup()
{
size(800,450);//設定背景大小(尺寸跟背景照片的大小要一樣)
bg=loadImage("bg.png");//把bg.png(照片)拿來當背景
}
void draw()
{
background(bg);//背景設為bg
for(int i=0;i<5;i++)
{
circle(x[i],y[i],40);//在x[i],y[i]的位置畫一個大小40的球
}
}
void mousePressed()
{
x[n]=mouseX;//x坐標=滑鼠的x坐標
y[n]=mouseY;//y坐標=滑鼠的y坐標
n++;//多一顆球
}
--------------------------------------------------------------------------------------------------------------------------
為了避免程式當掉,要有一個保護機制(點超過5次就會停止)
int []x={0,0,0,0,0};//有5個位置放球的x坐標
int []y={0,0,0,0,0};//有5個位置放球的y坐標
int n=0;//一開始沒有球
void setup()
{
size(800,450);//設定背景大小(尺寸跟背景照片的大小要一樣)
bg=loadImage("bg.png");//把bg.png(照片)拿來當背景
}
void draw()
{
background(bg);//背景設為bg
for(int i=0;i<5;i++)
{
circle(x[i],y[i],40);//在x[i],y[i]的位置畫一個大小40的球
}
}
void mousePressed()
{
if(n>=5) return;//超過5顆球的時候停止(避免程式當掉)
x[n]=mouseX;//x坐標=滑鼠的x坐標
y[n]=mouseY;//y坐標=滑鼠的y坐標
n++;//多一顆球
}
--------------------------------------------------------------------------------------------------------------------------
再來是讓球重複使用的方法
int []x={0,0,0,0,0};//有5個位置放球的x坐標
int []y={0,0,0,0,0};//有5個位置放球的y坐標
int n=0;//一開始沒有球
void setup()
{
size(800,450);//設定背景大小(尺寸跟背景照片的大小要一樣)
bg=loadImage("bg.png");//把bg.png(照片)拿來當背景
}
void draw()
{
background(bg);//背景設為bg
for(int i=0;i<5;i++)
{
circle(x[i],y[i],40);//在x[i],y[i]的位置畫一個大小40的球
}
}
void mousePressed()
{
x[n]=mouseX;//x坐標=滑鼠的x坐標
y[n]=mouseY;//y坐標=滑鼠的y坐標
n=(n+1)%5;//把球重複使用(第6次會拿第1顆來用)
}
--------------------------------------------------------------------------------------------------------------------------
再來要讓球往上飄
int []x={0,0,0,0,0};//有5個位置放球的x坐標
int []y={0,0,0,0,0};//有5個位置放球的y坐標
int n=0;//一開始沒有球
void setup()
{
size(800,450);//設定背景大小(尺寸跟背景照片的大小要一樣)
bg=loadImage("bg.png");//把bg.png(照片)拿來當背景
}
void draw()
{
background(bg);//背景設為bg
for(int i=0;i<5;i++)
{
circle(x[i],y[i],40);//在x[i],y[i]的位置畫一個大小40的球
y[i]--;//y坐標-1 讓球往上跑(螢幕頂端y=0)
}
}
void mousePressed()
{
x[n]=mouseX;//x坐標=滑鼠的x坐標
y[n]=mouseY;//y坐標=滑鼠的y坐標
n=(n+1)%5;//把球重複使用(第6次會拿第1顆來用)
}
--------------------------------------------------------------------------------------------------------------------------
再來讓球變大(按住滑鼠可以讓球愈來愈大)
int []x={0,0,0,0,0};//有5個位置放球的x坐標
int []y={0,0,0,0,0};//有5個位置放球的y坐標
int []r={5,5,5,5,5};//有5個位置放球的半徑r
int n=0;//一開始沒有球
void setup()
{
size(800,450);//設定背景大小(尺寸跟背景照片的大小要一樣)
bg=loadImage("bg.png");//把bg.png(照片)拿來當背景
}
int now=0;//一開始now=0
void draw()
{
background(bg);//背景設為bg
for(int i=0;i<5;i++)
{
circle(x[i],y[i],r[i]);//在x[i],y[i]的位置畫一個大小r[i]的球
y[i]--;//y坐標-1 讓球往上跑(螢幕頂端y=0)
}
if(mousePressed) r[now]++;//按住滑鼠時,球的半徑+1(加得愈多,變大的速度愈快)
}
void mousePressed()
{
x[n]=mouseX;//x坐標=滑鼠的x坐標
y[n]=mouseY;//y坐標=滑鼠的y坐標
r[n]=5;//一開始球的半徑是5
now=n;//現在用的球是n
n=(n+1)%5;//把球重複使用(第6次會拿第1顆來用)
}
--------------------------------------------------------------------------------------------------------------------------
再來讓球變成綠色的
PImage bg;//使用照片bg
//宣告陣列的新方法
int []x=new int[1000];//有1000個位置放球的x坐標
int []y=new int[1000];//有1000個位置放球的y坐標
int []r=new int[1000];//有1000個位置放球的半徑r
color []c=new color[1000];//有1000個位置放球的顏色color
int n=0;//一開始沒有球
void setup()
{
size(800,450);//設定背景大小(尺寸跟背景照片的大小要一樣)
bg=loadImage("bg.png");//把bg.png(照片)拿來當背景
}
int now=0;//一開始now=0
void draw()
{
background(bg);//背景設為bg
for(int i=0;i<5;i++)
{
fill(c[i]);//用c[i](顏色)填滿
circle(x[i],y[i],r[i]);//在x[i],y[i]的位置畫一個大小r[i]的球
y[i]--;//y坐標-1 讓球往上跑(螢幕頂端y=0)
}
if(mousePressed) r[now]++;//按住滑鼠時,球的半徑+1(加得愈多,變大的速度愈快)
}
void mousePressed()
{
x[n]=mouseX;//x坐標=滑鼠的x坐標
y[n]=mouseY;//y坐標=滑鼠的y坐標
r[n]=5;//一開始球的半徑是5
c[n]=color(0,255,0);//把c[n]設為綠色
now=n;//現在用的球是n
n=(n+1)%5;//把球重複使用(第6次會拿第1顆來用)
}
--------------------------------------------------------------------------------------------------------------------------
再來讓球可以自己隨機改變顏色!
PImage bg;//使用照片bg
//宣告陣列的新方法
int []x=new int[1000];//有1000個位置放球的x坐標
int []y=new int[1000];//有1000個位置放球的y坐標
int []r=new int[1000];//有1000個位置放球的半徑r
color []c=new color[1000];//有1000個位置放球的顏色color
int n=0;//一開始沒有球
void setup()
{
size(800,450);//設定背景大小(尺寸跟背景照片的大小要一樣)
bg=loadImage("bg.png");//把bg.png(照片)拿來當背景
}
int now=0;//一開始now=0
void draw()
{
background(bg);//背景設為bg
for(int i=0;i<5;i++)
{
fill(c[i]);//用c[i](顏色)填滿
circle(x[i],y[i],r[i]);//在x[i],y[i]的位置畫一個大小r[i]的球
y[i]--;//y坐標-1 讓球往上跑(螢幕頂端y=0)
}
if(mousePressed) r[now]++;//按住滑鼠時,球的半徑+1(加得愈多,變大的速度愈快)
}
void mousePressed()
{
x[n]=mouseX;//x坐標=滑鼠的x坐標
y[n]=mouseY;//y坐標=滑鼠的y坐標
r[n]=5;//一開始球的半徑是5
c[n]=color(random(255),random(255),random(255));//把c[n]設為隨機的顏色
now=n;//現在用的球是n
n=(n+1)%5;//把球重複使用(第6次會拿第1顆來用)
}
--------------------------------------------------------------------------------------------------------------------------
今天也複習了陣列
int []a={1,0,1,0};//宣告陣列a
size(400,100);//設定背景大小(寬,高)
for(int i=0;i<4;i++)
{
if(a[i]==1) fill(0,255,0);//用綠色填滿
else fill(128);//用灰色填滿
rect(i*100,0,100,100);//畫一個長方形(x坐標,y坐標,寬,高)
}
--------------------------------------------------------------------------------------------------------------------------
後來做了一個更大的2D陣列!
//左手是i,右手是j
//宣告陣列a(二維陣列)
int [][]a={
{1,1,1,1,1},
{0,0,0,1,0},
{0,0,1,0,0},
{0,1,0,0,0},
{1,1,1,1,1} };
size(500,500);//設定背景大小
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(a[i][j]==1) fill(0,255,0);//用綠色填滿
else fill(128);//用灰色填滿
rect(j*100,i*100,100,100);//畫一個長方形(j對應x坐標,i對應y坐標)
}
}
--------------------------------------------------------------------------------------------------------------------------
心得
老師上星期是教用鍵盤控制球的方法,這星期教了用滑鼠控制球的方法,而且還複習了陣列,經過這次的複習讓我對陣列更有概念了!之前對陣列的樣子還是有點模糊,但這次直接用圖把陣列的樣子畫出來就更清楚了!










沒有留言:
張貼留言