Processing
RGB彩虹射擊🌈;藝起來畫苦力怕
1.RGB彩虹射擊
那個字實在是太小惹所以請看下面的解釋💗
1.首先需要宣告一些空間
PImage img1,img2,img3,img4,img5;照片位置
int []x=new int [1000]; 宣告陣列X(放子彈的X值)
int []y=new int [1000]; 宣告陣列Y(放子彈的Y值)
int []r=new int [1000]; 宣告陣列R(子彈的半徑)
color []c=new color[1000]; 宣告陣列C(子彈的顏色)
*new*這個讓陣列宣告可以直接指定值,不用一個一個打.✨
int n=0;
int now=0;
int pX=300,pY=800; 戰鬥機一開始的位置
1.函式
void setup()
{
size(740,1000);
img1=loadImage("pl01.png"); 讀入照片✌
img2=loadImage("pl02.png");
img3=loadImage("pl03.png");
img4=loadImage("pl04.png");
img5=loadImage("5.jpg"); 讀入背景
這裡需要注意的是要注意照片檔案類型不然會讀不到ㄛ💩
}
2.函式
void draw()
{
background(img5);
for(int i=0;i<1000;i++){
circle(x[i],y[i],r[i]); 畫出圓形的子彈(子彈的X值,子彈的Y值,子彈的半徑r)
fill(c[i]); 幫C(子彈)上色
y[i]-=10; 讓子彈向前飛
}
if(mousePressed)r[now]++; 滑鼠按下時子彈的半徑增加❤
接下來也是在同一個函式裡面 (指定按鍵跟顯示圖片)
if(keyPressed && keyCode==UP){ 按下箭頭上的時候戰鬥機☝
pY-=10; 向前移動
image(img4,pX,pY,138,120); 並顯示向前的圖片
}
else if(keyPressed && keyCode==RIGHT) { 按下右鍵的時候戰鬥機👉
pX+=10; 向右移動
image(img2,pX,pY,138,120); 並顯示向右的圖片
}
else if(keyPressed && keyCode==DOWN) { 按下向下鍵的時候戰鬥機👇
pY+=10; 向下移動
image(img1,pX,pY,138,120); 並顯示向下的圖片
}
else if(keyPressed && keyCode==LEFT){ 按下左鍵的時候戰鬥機👈
pX-=10; 向左移動
image(img3,pX,pY,138,120); 並顯示向左的圖片
}
}
else image(img1,pX,pY,138,120); 如果都沒按下任何按鍵時顯示不動的圖片
}
3.函式
void mousePressed(){滑鼠按下時
x[n]=pX; 指定球從戰機的X發射
y[n]=pY; 指定球從戰機的Y發射
r[n]=10; 子彈的初始直徑
c[n]=color(random(255),random(255),random(255));隨機指定顏色
now=n;
n++;
}
2.藝起來畫CREEPER🎃
int [][]a={ 1,2,3,4,5,p行,
f列 1 {3,2,1,1,2}, 這裡是在建構2D陣列.
2 {1,0,1,0,1}, 用換行的方式提高辨別度.🎏
3 {2,1,0,1,2},
4 {3,0,0,0,1},
5 {1,0,1,0,3},
};void setup()
{
size(500,500);(有5行,5列)所以大小是500*500
}
void draw()
{
for(int p=0;p<5;p++){ 用陣列的方式指定位置
for(int f=0;f<5;f++){
if(a[f][p]==1)fill(80,250,112); fill(填滿的顏色)是個填滿的函式
else if(a[f][p]==2)fill(230,250,230);
else if(a[f][p]==3)fill(200,250,200);
else fill(0);
rect(p*100,f*100,100,100);填滿的形狀是矩形🏁
}
}
}
(也可以用別的形狀)可似那樣就不向苦力怕惹😬
以上就是這周的內容了喔~~~
快樂😜



沒有留言:
張貼留言