2020年3月27日 星期五

PROCESSING-彩虹苦力怕

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++;
  }
解釋完之後來快速的看一下GIF吧~~~
登登
飛吧小火箭蹦蹦蹦💣💣💣

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},
                     {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);填滿的形狀是矩形🏁
        }
      }
  }
         
(也可以用別的形狀)可似那樣就不向苦力怕惹😬
以上就是這周的內容了喔~~~
快樂😜
  

沒有留言:

張貼留言