顯示具有 05160372_林彥甫 標籤的文章。 顯示所有文章
顯示具有 05160372_林彥甫 標籤的文章。 顯示所有文章

2019年1月20日 星期日

week6_

1.放入音檔


(從文件裡找範例程序


(並選擇此程序



(複製這兩行程式碼


(丟入音檔即可撥放

2019年1月5日 星期六

Week 17期末作品

我們的期末作品延續期中,搭配Arduino以及按鈕模組,增加使用者與遊戲的互動

黏上保麗龍球,改良難按的小按鈕


遊戲操作


程式碼












2018年12月27日 星期四

Week16 期末作品

01.arduino



02.processing

import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import ddf.minim.signals.*;
import ddf.minim.spi.*;
import ddf.minim.ugens.*;
import processing.serial.*;
Serial myPort;

float[] zombieX=new float[8];
float[] zombieY=new float[8];
PImage imgZombie,imgBG,img,imgBG2;
int state=0;
int remainTime=0;
int score1=0;
int score2=0;

import ddf.minim.*;
Minim minim;
AudioPlayer player;

void reborn(int i){
  zombieX[i]=int (random(3))*135;
  zombieY[i]=10;
}

void setup(){
  size(400,600);
  myPort = new Serial(this,"COM7",9600);
  imgBG= loadImage("BG.jpg");
  img= loadImage("shot.jpg");
  imgBG2= loadImage("BG2.png");
  minim = new Minim(this);
  player = minim.loadFile("456.mp3");
  player.play();
  
  imgZombie=loadImage("zombie2.png");
  for(int i=0;i<8;i++){
    reborn(i);
    zombieY[i]=325-i*50;
  }
}
int old1=0, old2=0, old3=0;
int Button1=0,Button2=0,Button3=0;
void draw(){
  if(state==0){
    drawOP();
  }else if(state==1){
    drawPlayer();
  }else if(state==2){
    drawED();
  }
  getData();
}
byte [] data=new byte[3];
void getData(){
 if(myPort.available()>0){
  myPort.readBytes(data);
  old1=Button1;
  old2=Button2;
  old3=Button3;
  Button1=data[0];
  Button2=data[1];
  Button3=data[2];
  println(data);
  int press= -1;
  if(data[0]==1 && old1==0) press=1;
  else if(data[1]==1 && old2==0)press=2;
  else if(data[2]==1 && old3==0)press=3;
  
  if( press==1 && zombieX[0]==0) killOneZombie();
  else if( press==2 && zombieX[0]==135) killOneZombie();
  else if( press==3 && zombieX[0]==270) killOneZombie();
  else if(press!= -1 ) bad();
  
 }
}
void killOneZombie(){
  for(int i=0;i<8-1;i++){
    zombieX[i]=zombieX[i+1];
  }
  reborn(7);
  score1+=200;
  minim = new Minim(this);
  player = minim.loadFile("bang.wav");
  player.play();
}

void bad(){
 background(255,0,0); 
 score2+=100;
}

void keyPressed(){
  if(key=='1' && zombieX[0]==0) killOneZombie();
  else if(key=='2' && zombieX[0]==135) killOneZombie();
  else if(key=='3' && zombieX[0]==270) killOneZombie();
  else if(key=='z' && state==0) {state=1;remainTime=30*60;}
  else bad();
}

void drawOP(){
  image(imgBG2,0,0,width,height);
  fill(#FFFFFF);
  textSize(30); text("Press z to Play",95,335);
  textSize(26); text("Happy Halloween!",90,395);
}

void drawPlayer(){
  image(imgBG,0,0,width,height);
  image(img,0,480,400,120);
  for(int i=7;i>=0;i--){
    image(imgZombie, zombieX[i],zombieY[i]);
  }  
  fill(#FC0317); textSize(40); text((remainTime+59)/60,5,40);
  remainTime--;
  if(remainTime<=0) state=2;
}

void drawED(){
  image(imgBG,0,0,width,height);
  fill(#FC0317); text("    Game End\nPlus Score:"+score1,55,200);
  fill(#FC0317); text(" Minus Score:-"+score2,10,320);
  fill(#FC0317); text("Score:"+(score1-score2),140,445);
}


03.成品

2018年12月6日 星期四

week13

打開範例程式


複製這段程式到Aduino


將4改2
共兩處
    

用完板子按下即可反應

2018年11月22日 星期四

week11

小星星

int piezoPin = 8;
int length = 15;
char notes[] = "ccggaag ffeeddc ggffeed ggffeed ccggaag ffeeddc ";      // a space represents a rest
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;

void playTone(int tone, int duration)
{
  for (long i = 0; i < duration * 1000L; i += tone * 2)
  {
    digitalWrite(piezoPin, HIGH);
    delayMicroseconds(tone);
    digitalWrite(piezoPin, LOW);
    delayMicroseconds(tone);
  }
}

void playNote(char note, int duration)
{
  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
  for (int i = 0; i < 8; i++)
  {
    if (names[i] == note)
    {
      playTone(tones[i], duration);
    }
  }
}

void setup()
{
  pinMode(piezoPin, OUTPUT);
}

void loop()
{
  for (int i = 0; i < length; i++)
  {
    if (notes[i] == ' ')
    {
      delay(beats[i] * tempo);
    } else
      playNote(notes[i], beats[i] * tempo);
    delay(tempo / 2);
  }
}
      else
        playNote(ttlsnotes[i], ttlsbeats[i] * tempo);
      delay(tempo / 2);
    }
  }

聖誕節


int piezoPin = 8;
int button = 2;
int lengths = 26;
char jbnotes[] = "eeeeeeegcde fffffeeeeddedg";
int jbbeats[] = { 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2};
int length = 15;
char ttlsnotes[] = "ccggaag ffeeddc ggffeed ggffeed ccggaag ffeeddc ";
int ttlsbeats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;

void playTone(int tone, int duration)
{
  for (long i = 0; i < duration * 1000L; i += tone * 2)
  {
    digitalWrite(piezoPin, HIGH);
    delayMicroseconds(tone);
    digitalWrite(piezoPin, LOW);
    delayMicroseconds(tone);
  }
}

void playNote(char note, int duration)
{
  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
  for (int i = 0; i < 8; i++)
  {
    if (names[i] == note)
    {
      playTone(tones[i], duration);
    }
  }
}

void setup()
{
  pinMode(piezoPin, OUTPUT);
  pinMode(button, INPUT_PULLUP);
}

void loop()
{
  int sensorVal = digitalRead(button);
  if (sensorVal == HIGH)
  {
    for (int i = 0; i < length; i++)
    {
      if (ttlsnotes[i] == ' ')
      {
        delay(ttlsbeats[i] * tempo);
      }

Week8 期中作品




YouTube連結:https://www.youtube.com/watch?v=hm_MRmuP6W4

我們製作的遊戲名稱為shootzombie,按下z鍵開始遊戲,遊戲時間
為30秒,在遊戲時間內,殭屍們會依序往螢幕下方逼近運用鍵盤的
123數字鍵來消除殭屍,如果按錯畫面會閃爍紅色,是個考驗短時
間反應及手指的靈敏度小遊戲。
困難點:加入計時器時因為多畫了背景以至於遊戲畫面被蓋住,那
個部分卡了好久,求助老師後遊戲就可以順利執行了~~還有如何結
束上一個畫面而不是直接覆蓋遊戲畫面

2018年10月11日 星期四

week5_

1.接雞蛋  ( 未改 )



2.接雞蛋  ( 較正常[碰到就消失] )


3.接雞蛋  (加上分數)


4.接雞蛋   (圖片分數)

 

5.水果忍者

2018年10月4日 星期四

week4_

1.設計出字



2.發射出單發子彈(有去無回)



3.發射出單發子彈(會回來,但依然單發)


4.發射多顆子彈 (但目前上限100)


5.子彈往前飛


6.球往上飛

2018年9月27日 星期四

week3_

1.畫圓


2.在圓裡放入三角形


3.畫出多角形



p.s.下面兩張是老師的圖





4.在多角型放入很多線條


5.畫出許多形狀


6.馬力歐



2018年9月20日 星期四

week2_

1.做 點 的互動(點的大小會隨之改變


2.改變點的顏色


3.隨機色彩


4.點的隨機改變位置


5.碰到邊界會回彈



6.讀入圖片


7.可以任意拖動圖片


8.可以帶入背景(記得主要塗藥用PNG檔

2018年9月13日 星期四

week1_咕嚕靈波~~~~

程式網址:https://processing.org/


1.線的程式碼


2.加上 設定視窗大小 與 方形


3.可以將程式輸出道安著手機上


4.按下螢幕改變顏色


5.可以畫畫了


6.可以找到更多程式碼


7.搭配鍵盤做更多變化