2020年3月27日 星期五

Week04-陣列與指標,發射子彈

W04-01---發射子彈

~~程式碼~~
PImage imgBG;
int []x = new int[1000];///另一種陣列宣告的方法
int []y = new int[1000];
int []r = new int[1000];
color []c = new color[1000];
int n=0;///子彈下一次要更新誰
void setup(){
  size(337,600);///Size要跟圖片大小一樣
  imgBG=loadImage("BG.png");
}
void draw(){
  background(imgBG);
  for(int i=0; i<n; i++){///設變數從i到"n"
  fill(c[i]);
  circle(x[i], y[i], r[i]);///球的大小變成r[i]
    y[i]--;///球往上飛
  }
  if(mousePressed) r[now]++;//如果一直按,球會變大(i)
}
int now=0;
void mousePressed(){
 ///if(n>=5) return;保護子彈不超過5顆
  x[n] = mouseX;///陣列位置
  y[n] = mouseY;
  r[n] = 10;
  c[n] = color( random(255), random(255), random(255));///分別從255裡面去挑一個顏色
  now = n;
  n++; ///讓球不斷出現
}

找到一張圖片放進裡面
注意 : 背景Size的大小要跟圖片一樣


宣告陣列、宣告n子彈數目、設定球的大小、陣列位置

加入這行程式碼~~
n = (n+1)%5; ///回收子彈再利用最舊的那顆補到新的

加入r陣列一直按住球會變大

加入y[i]--; 讓球往上飛起來

陣列宣告成 " Int[1000] " ~~
讓每顆球變不同隨機顏色~~

W04-02---複習陣列用法 -> 2D陣列、物件


1D陣列(1*4)

2D陣列(4*4)

2D陣列(5*5)




沒有留言:

張貼留言