顯示具有 08160812_葉人傑 標籤的文章。 顯示所有文章
顯示具有 08160812_葉人傑 標籤的文章。 顯示所有文章

2022年1月17日 星期一

WEE13

 東西都差不多了

PImage img,monster,hero,pic1,button;

int N=0;

int condition;

float heroX = 100,heroY = 400;

float monsterX = 150,monsterY = 10;

float []arrowX = new float[100];

float []arrowY = new float[100];

float []arrowVX = new float[100];

float []arrowVY = new float[100];

boolean []arrowFlying = new boolean[100];

boolean gamestart = false;

boolean gameover = false;


void setup(){

  size(300,500);

  

  img = loadImage("background.jpg");

  monster = loadImage("mon.jpg");

  hero = loadImage("bow.jpg");

  pic1 = loadImage("pic1.jpg");

  button = loadImage("button.jpg");

  

  

}



void draw(){

  background(255);

  image(img,0,0);

  image(monster,80,10);

  image(hero,heroX,heroY);

  

  if(keyPressed ){

    if(keyCode == LEFT){

      heroX -= 5;

    }

    if(keyCode == RIGHT){

      heroX += 5;

    }

  }

  

 for(int i=0;i<N;i++){

      arrowY[i] += arrowVY[i];

      ellipse(arrowX[i],arrowY[i],10,10);

  }

}


void mouseClicked(){

  N++;

  arrowX[N-1] = heroX;

  arrowY[N-1] = heroY;

  arrowVX[N-1] = 0;

  arrowVY[N-1] = -3;

}

void mousePressed(){

  gamestart = true;

  if(condition==0){

    image(pic1,0,150);

    image(button,100,200);

  }

  if(mouseButton == LEFT&&dist(300,360,mouseX,mouseY)<60){

    condition = 1;

  }

}

WEEK12

 期末作業

這勿再加上弓箭、按鈕

PImage img,monster,hero,pic1,button;

int N=0;

int condition;

float heroX = 100,heroY = 400;

float monsterX = 150,monsterY = 10;

float []arrowX = new float[100];

float []arrowY = new float[100];

float []arrowVX = new float[100];

float []arrowVY = new float[100];

boolean []arrowFlying = new boolean[100];

boolean gamestart = false;

boolean gameover = false;


void setup(){

  size(300,500);

  

  img = loadImage("background.jpg");

  monster = loadImage("mon.jpg");

  hero = loadImage("bow.jpg");

  pic1 = loadImage("pic1.jpg");

  button = loadImage("button.jpg");

  

  

}



void draw(){

  background(255);

  image(img,0,0);

  image(monster,80,10);

  image(hero,heroX,heroY);

  

  if(keyPressed ){

    if(keyCode == LEFT){

      heroX -= 5;

    }

    if(keyCode == RIGHT){

      heroX += 5;

    }

  }

  

 for(int i=0;i<N;i++){

      arrowY[i] += arrowVY[i];

      ellipse(arrowX[i],arrowY[i],10,10);

  }

}


void mouseClicked(){

  N++;

  arrowX[N-1] = heroX;

  arrowY[N-1] = heroY;

  arrowVX[N-1] = 0;

  arrowVY[N-1] = -3;

}

void mousePressed(){

  gamestart = true;

  if(condition==0){

    image(pic1,0,150);

    image(button,100,200);

  }

  if(mouseButton == LEFT&&dist(300,360,mouseX,mouseY)<60){

    condition = 1;

  }

}


弓箭








按鈕



WEEK11

 還是做期末作業

這次加上圖片

PImage img,monster,hero,pic1,button;

int N=0;

int condition;

float heroX = 100,heroY = 400;

float monsterX = 150,monsterY = 10;

float []arrowX = new float[100];

float []arrowY = new float[100];

float []arrowVX = new float[100];

float []arrowVY = new float[100];

boolean []arrowFlying = new boolean[100];

boolean gamestart = false;

boolean gameover = false;


void setup(){

  size(300,500);

  

  img = loadImage("background.jpg");

  monster = loadImage("mon.jpg");

  hero = loadImage("bow.jpg");

  pic1 = loadImage("pic1.jpg");

  button = loadImage("button.jpg");

  

  

}



void draw(){

  background(255);

  image(img,0,0);

  image(monster,80,10);

  image(hero,heroX,heroY);

  

  if(keyPressed ){

    if(keyCode == LEFT){

      heroX -= 5;

    }

    if(keyCode == RIGHT){

      heroX += 5;

    }

  }

  

 for(int i=0;i<N;i++){

      arrowY[i] += arrowVY[i];

      ellipse(arrowX[i],arrowY[i],10,10);

  }

}


void mouseClicked(){

  N++;

  arrowX[N-1] = heroX;

  arrowY[N-1] = heroY;

  arrowVX[N-1] = 0;

  arrowVY[N-1] = -3;

}

void mousePressed(){

  gamestart = true;

  if(condition==0){

    image(pic1,0,150);

    image(button,100,200);

  }

  if(mouseButton == LEFT&&dist(300,360,mouseX,mouseY)<60){

    condition = 1;

  }

}

背景




主角



怪物








WEEK10

 開始做期末作品

PImage img,monster,hero,pic1,button;

int N=0;

int condition;

float heroX = 100,heroY = 400;

float monsterX = 150,monsterY = 10;

float []arrowX = new float[100];

float []arrowY = new float[100];

float []arrowVX = new float[100];

float []arrowVY = new float[100];

boolean []arrowFlying = new boolean[100];

boolean gamestart = false;

boolean gameover = false;


void setup(){

  size(300,500);

  

  img = loadImage("background.jpg");

  monster = loadImage("mon.jpg");

  hero = loadImage("bow.jpg");

  pic1 = loadImage("pic1.jpg");

  button = loadImage("button.jpg");

  

  

}



void draw(){

  background(255);

  image(img,0,0);

  image(monster,80,10);

  image(hero,heroX,heroY);

  

  if(keyPressed ){

    if(keyCode == LEFT){

      heroX -= 5;

    }

    if(keyCode == RIGHT){

      heroX += 5;

    }

  }

  

 for(int i=0;i<N;i++){

      arrowY[i] += arrowVY[i];

      ellipse(arrowX[i],arrowY[i],10,10);

  }

}


void mouseClicked(){

  N++;

  arrowX[N-1] = heroX;

  arrowY[N-1] = heroY;

  arrowVX[N-1] = 0;

  arrowVY[N-1] = -3;

}

void mousePressed(){

  gamestart = true;

  if(condition==0){

    image(pic1,0,150);

    image(button,100,200);

  }

  if(mouseButton == LEFT&&dist(300,360,mouseX,mouseY)<60){

    condition = 1;

  }

}

WEEK6

 學習text

size(500,500);

fill(#1777A2);

textSize(50);

text("HIIII!",50,50);

再來是不同程式碼,座標不同

void setup()

{

  size(500,500);

  fill(#1777A2);

  textSize(50);

}

void draw()

{

    text("HIIII!",50,100);

}


使用frameCount來跑秒,一秒60偵

void setup()

{

  size(500,500);

  fill(#1777A2);

  textSize(50);

}

void draw()

{

  background(255);  

  text("Time:"+frameCount,50,100);

}

再來是按下滑鼠後,會變換文字

PFont font1,font2;
void setup()
{
   size(500,500);
   font1 = createFont("標楷體",100);
   textFont(font1);
   font2 = createFont("微軟正黑體",100);
}
void draw()
{
  background(0);  
  text("中文",100,100); 
  if(mousePressed) textFont(font2);
  else textFont(font1);
}


疫苗認證老人WEEK FINAL

 由於前面再忙活動,所以太晚開始製作,這幾天只要睜開眼就是在打程式碼,不停地問老師和朋友,但是還是趕不完QQ,

這邊附上程式碼和圖

PImage img,monster,hero,pic1,button;

int N=0;

int condition;

float heroX = 100,heroY = 400;

float monsterX = 150,monsterY = 10;

float []arrowX = new float[100];

float []arrowY = new float[100];

float []arrowVX = new float[100];

float []arrowVY = new float[100];

boolean []arrowFlying = new boolean[100];

boolean gamestart = false;

boolean gameover = false;


void setup(){

  size(300,500);

  

  img = loadImage("background.jpg");

  monster = loadImage("mon.jpg");

  hero = loadImage("bow.jpg");

  pic1 = loadImage("pic1.jpg");

  button = loadImage("button.jpg");

  

  

}



void draw(){

  background(255);

  image(img,0,0);

  image(monster,80,10);

  image(hero,heroX,heroY);

  

  if(keyPressed ){

    if(keyCode == LEFT){

      heroX -= 5;

    }

    if(keyCode == RIGHT){

      heroX += 5;

    }

  }

  

 for(int i=0;i<N;i++){

      arrowY[i] += arrowVY[i];

      ellipse(arrowX[i],arrowY[i],10,10);

  }

}


void mouseClicked(){

  N++;

  arrowX[N-1] = heroX;

  arrowY[N-1] = heroY;

  arrowVX[N-1] = 0;

  arrowVY[N-1] = -3;

}

void mousePressed(){

  gamestart = true;

  if(condition==0){

    image(pic1,0,150);

    image(button,100,200);

  }

  if(mouseButton == LEFT&&dist(300,360,mouseX,mouseY)<60){

    condition = 1;

  }

}



2021年12月13日 星期一

week9 疫苗認證老人

 今天做期末作業

我的題目是弓箭傳說

以下是今天的進度



程式碼:

void setup(){

  size(300,500);

}

float heroX=150,heroY=250;

float []arrowX=new float[24];

float []arrowY=new float[24];

float []arrowVX=new float[24];

float []arrowVY=new float[24];

boolean shooting=false;

void draw(){

  background(255,204,84);

  ellipse(heroX,heroY,50,50);

  if(shooting){

    for(int i=0;i<24;i++){

      arrowX[i]+=arrowVX[i];

      arrowY[i]+=arrowVY[i];

      ellipse(arrowX[i],arrowY[i],10,10);

      if(frameCount%30==0){

        for(int k=23;k>0;k--){

          arrowX[k]=arrowX[k-1];

          arrowY[k]=arrowY[k-1];

          arrowVX[k]=arrowVX[k-1];

          arrowVY[k]=arrowVY[k-1];

        }

      }

    }

  }

}

void mousePressed(){

  shooting=true;

  arrowX[0]=heroX;

  arrowY[0]=heroY;

  arrowVX[0]=-1;

  arrowVY[0]=1;

}

2021年11月30日 星期二

week08-疫苗認證老人

 今天介紹了gether town 

https://openprocessing.org/sketch/911326


     第一堂課要做一個可以走路的2D腳色

可以去google搜尋animated sprites找到2D腳色,並下載


再來讓他走路
程式碼:





2021年11月22日 星期一

week07-疫苗認證老人

 今天要做會掉落的球

先把球做出來


程式碼:

float x=250,y=250,vx=0,vy=3;

void setup(){

  size(500,600);

}

void draw(){

  background(255);

  ellipse(x,y,50,50);

  //y++;//落下速度

  //y=y+3;//y++的三倍速度

  y=y+vy;//vy是速度

}


再來做出第二顆球,然後速度要不一樣


程式碼:

float x=250,y=0,vx=0,vy=4;

float x2=150,y2=0,vx2=0,vy2=3;

void setup(){

  size(500,600);

}

void draw(){

  background(255);

  ellipse(x,y,50,50);

  ellipse(x2,y2,50,50);

  y=y+vy;//vy是速度

  y2=y2+vy2;

}


再來用陣列跟迴圈來做球

程式碼:

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];//vy是速度

  }

}


再來是球碰到地板跟天花板會回彈

程式碼:

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];//vy是速度

  //以下為回彈

  if(y[i]>600)vy[i]=-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++){

    fill(#F7E302);

  ellipse(x[i],y[i],50,50); 

  if(dist(mouseX,mouseY,x[i],y[i])<=50){

      continue;

    }

  y[i] = y[i] + vy[i];//vy是速度

  if(y[i]>600)vy[i]=-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 []vy={3,2,2.5,4};
boolean []dead={false,false,false,false};//false 0,true 1
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;//如果沒有死掉
      fill(#F7E302);ellipse(x[i],y[i],50,50); 
      y[i] = y[i] + vy[i];//vy是速度
      if(y[i]>600)vy[i]=-vy[i];//碰到地板後vy[i]會變成負的
      if(y[i]<0)vy[i]=-vy[i];//再碰到後會再變
    }

  fill(255,0,0);ellipse(mouseX,mouseY,50,50);
  
}












2021年11月1日 星期一

week05-疫苗認證老人

 安裝函式

Sketch/Library/Add library









用範例程式開啟影片


程式碼:
Import processing.vedio.*;

Movie movie;

void setup(){
    size (560,046);
    background(0);
    //Load and play the video in a  loop
    movie = new Movie(this,"launch2.mp4");
}

void movieEvent(Movie m){
    m.read();
}

void draw(){
    //if(movie.available() == true){
    //     movie.read();
    }
    image(movie,0,0,width.height);
}

自己寫程式開啟影片


程式碼:

Import processing.vedio.*;
Movie movie;
void setup(){
    size (560,046);
    movie = new Movie(this,"launch2.mp4");
    movie.loop();

void draw(){
        image(movie,0,0);
    }
    image(movie,0,0,width.height);
}
}

void movieEvent(Movie m){
    m.read();
}


開啟視訊鏡頭







2021年10月25日 星期一

week04疫苗認證老人

 1.陣列for()迴圈、畫棋子、放棋子、用滑鼠放棋子

2.Generative Art

使用for()迴圈來畫棋盤


void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  line(50,50,50,450);
  line(100,50,100,450);
  line(150,50,150,450);
  line(200,50,200,450);
}

另一種寫法
void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
  }
}

再來是棋盤

void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
    line(50,50+50*i,450,50+50*i);
  }
}




int [][]c = {
  {1,0,0},{1,0,0},{1,0,0}
};
void setup(){
  size(300,300);
}
void draw(){
  for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
      if(c[i][j]==0)fill(128);
      else fill(60,160,60);
      rect(j*100,i*100,100,100);
    }
  }
}

j是x方向,i是y方向

再來開始放棋子

int [][]go = {
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {1,1,0,0,0,0,0,0,0}
};
void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
    line(50,50+50*i,450,50+50*i);
  }
  for(int i=0;i<9;i++){
    for(int j=0;j<9;j++){
      if(go[i][j]==1){
        int x=50+50*j,y=50+50*i;
        fill(255);ellipse(x,y,40,40);
      }
    }
  }
}

再來是可以自由放棋子

int [][]go = {
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {1,1,0,0,0,0,0,0,0}
};
void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
    line(50,50+50*i,450,50+50*i);
  }
  for(int i=0;i<9;i++){
    for(int j=0;j<9;j++){
      if(go[i][j]==1){
        int x=50+50*j,y=50+50*i;
        fill(255);ellipse(x,y,40,40);
      }
    }
  }
}
void mousePressed(){
  int j=(mouseX-50)/50;
  int i=(mouseY-50)/50;
  go[i][j]=1;
}


然後是黑白棋,然後我的右鍵不知道為什麼變成刪除


int [][]go = {
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0}
};
void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
    line(50,50+50*i,450,50+50*i);
  }
  for(int i=0;i<9;i++){
    for(int j=0;j<9;j++){
      if(go[i][j]==1){
        int x=50+50*j,y=50+50*i;
        fill(255);ellipse(x,y,40,40);
      }else if(go[i][j]==1){
        int x=50+50*j,y=50+50*i;
        fill(0);ellipse(x,y,40,40);
      }
    }
  }
}
void mousePressed(){
  int j=(mouseX-25)/50;
  int i=(mouseY-25)/50;
  if(mouseButton==LEFT)go[i][j]=1;
  if(mouseButton==RIGHT)go[i][j]=2;
  if(mouseButton==CENTER)go[i][j]=0;
}




再來是畫圓

void setup(){
  size(500,500);
}
void draw(){
  background(255);
  noFill();
  for(float a=0;a<360;a++){
    float x=250+mouseX*cos(radians((a));
    float y=250+mouseY*sin(radians((a));
    ellipse(x,y,mouseX,mouseY);
  }
}






2021年10月18日 星期一

week03疫苗認證老人

 圖片及聲音

老師我的電腦除了第一個圖片可以跑出來之外其他的都不行,也問過同學了,所以我只上傳程式碼

任意找一張圖


PImage img; 

void setup(){

  size(500,500);

  img=loadImage("https://storage.googleapis.com/smiletaiwan-cms-cwg-tw/article/202009/article-5f6226be9f5be.jpg");

}

void draw(){

  image(img,0,0,500,500);

}

再來將圖片拉近程式

PImage img; void setup(){ size(500,500); img=loadImage("background.jpg"); } void draw(){ image(img,0,0); }

更改xy的座標
mage(img2,mouseX-50,mouseY-50,100,100);


PImage img1,img2; void setup(){ size(500,500); img1=loadImage("background.jpg"); img2=loadImage("background2.png"); } void draw(){ image(img1,0,0,500,500); imageMode(CENTER); image(img2,mouseX-50,mouseY-50,100,100); }











加了corner後,小哆啦就會直接在滑鼠正中央跟隨了,不需要像之前在mouse後面加減數字了

PImage img1,img2; void setup(){ size(500,500); img1=loadImage("background.jpg"); img2=loadImage("background2.png"); } void draw(){ imageMode(CORNER); image(img1,0,0,500,500); imageMode(CENTER); image(img2,mouseX,mouseY,100,100); }


再來是安裝minim跟sound
打開playfile可以有程式碼跟音效
playfile 程式碼中的 groove.mp3檔案拉進去Processing內,就可以輸出製作音樂

import ddf.minim.*; Minim minim; AudioPlayer player; void setup(){ size(500,500); minim = new Minim(this); player = minim.loadFile("groove.mp3"); player.play(); } void draw(){ }