顯示具有 00161090黃紹維 標籤的文章。 顯示所有文章
顯示具有 00161090黃紹維 標籤的文章。 顯示所有文章

2014年1月12日 星期日

期末作品-Temple Hit



程式碼:
Processing
PImage bg,blu,white,yellow,blu2,white2;
int N=6;
int count = 1500;
float []thingX=new float[6], thingY=new float[6],thingType = new float[6];
int grade=0;
import processing.serial.*;
Serial myPort;
int val;

import ddf.minim.*;
Minim minim;
AudioPlayer song;
int a=1;
void setup(){
  bg = loadImage("bg.jpg");
  blu = loadImage("blu.jpg");
  white = loadImage("white.jpg");
  yellow = loadImage("yellow.jpg");
  blu2 = loadImage("blu2.jpg");
  white2 = loadImage("white2.jpg");
  size(400,600);
  for(int i=0;i<N;i++){
    newThing(i);
  }
  String [] all = Serial.list();
  String portName = all[all.length-1];
  myPort = new Serial(this, portName, 9600);
  minim = new Minim(this);
  song = minim.loadFile("abc.mp3");

}
int countDown=10*30;
void draw(){
  image(bg,0,0, 400,600);
  image(blu,13,475,60,15);
  image(white,73,475,66,15);
  image(yellow,139,475,88,15);
  image(blu2,293,475,64,15);
  image(white2,227,475,66,15);

  if ( myPort.available() > 0) {
    val = myPort.read();  
  }

  if(countDown>0){

    background(255,0,255);
    countDown--;
    text("Count Down"+countDown/50,170,300);
    return;
  }
    if (a==1)   song.play();
    a=2;
  for(int i=0;i<N;i++){
    if(thingType[i]==1)
    {
     drawblu(i);
        if(val == '5')
        {
        if(430<thingY[i] && thingY[i]<500)
        {
          thingY[i] = 650; grade++; println(grade);
          fill(#0046FF,90);
          rect(10,475,66,-500);
        }
       }  
    }
    else if(thingType[i]==2)
    {
      drawwhite(i);
   
        if(val == '4')
        {
        if(430<thingY[i] && thingY[i]<500)
        {
        thingY[i] = 650; grade++; println(grade);
        fill(255,90);
        rect(73,475,66,-500);
        }
       }
    }
    else if(thingType[i]==3)
    {
      drawyellow(i);
   
        if(val == '3')
        {
        if(430<thingY[i] && thingY[i]<500)
        {
        thingY[i] = 650; grade++; println(grade);
        fill(#FFF700,90);
        rect(139,475,66,-500);
      }
     }
    }
    else if(thingType[i]==5)
    {
      drawblu2(i);
        if(val == '1')
        {
        if (430<thingY[i] && thingY[i]<500)
        {
          thingY[i] = 650; grade++; println(grade);
          fill(#0046FF,90);
          rect(293,475,66,-500);
        }
       }
    }
    else if(thingType[i]==5)
    {
      drawwhite2(i);

        if(val == '2')
        {
        if (430<thingY[i] && thingY[i]<500)
        {
          thingY[i] = 650; grade++; println(grade);
          fill(255,90);
          rect(227,475,66,-500);
        }
       }
    }
    thingY[i]+=4;//掉的速度
    if(thingY[i]>600) newThing(i);
   }
  if(count>0){
    count--;
    text("Time: "+count/50,170,300);
    }
    if(count==0){
      background(#000302);
      textSize(48);
      text("Score: "+grade,90,300);
      fill(0, 102, 153);
      return;
    }
}
void newThing(int i){
  thingY[i] = -random(200);
  thingX[i] = random(400);
  thingType[i] = int(random(5))+1;
}
void drawblu(int i){
  thingX[i]=int(random(13,13));
  image(blu,thingX[i],thingY[i],60,15);
}
void drawwhite(int i){
  thingX[i]=int(random(73,73));
  image(white,thingX[i],thingY[i],66,15);
}
void drawyellow(int i){
  thingX[i]=int(random(139,139));
  image(yellow,thingX[i],thingY[i],88,15);
}
void drawblu2(int i){
  thingX[i]=int(random(293,293));
  image(blu2,thingX[i],thingY[i],66,15);
}
void drawwhite2(int i){
  thingX[i]=int(random(227,227));
  image(white2,thingX[i],thingY[i],66,15);
}
void stop() {
  song.close();
  minim.stop();
  super.stop();
}

Arduino:

int switchStatea = 0;
int switchStateb = 0;
int switchStatec = 0;
int switchStated = 0;
int switchStatee = 0;
const int ledPin = 13;

void setup(){
   pinMode(ledPin, OUTPUT);
  pinMode(2,INPUT);
  pinMode(3,INPUT);
  pinMode(4,INPUT);
  pinMode(5,INPUT);
   Serial.begin(9600);
}

void loop(){
  switchStatea = digitalRead(A0);
   switchStateb = digitalRead(A1);
      switchStatec = digitalRead(A2);
      switchStated = digitalRead(A3);
      switchStatee = digitalRead(A4);

   if(switchStatea == HIGH) {Serial.write('1');}
   if(switchStateb == HIGH) {Serial.write('2');}
   if(switchStatec == HIGH) {Serial.write('3');}
   if(switchStated == HIGH) {Serial.write('4');}
   if(switchStatee == HIGH) {Serial.write('5');}
   delay(33);

}

2013年12月23日 星期一

Week 16

期末作品
PROCESSING

PImage bg,blu,white,yellow,blu2,white2;
int N=6;
int count = 1500;
float []thingX=new float[6], thingY=new float[6],thingType = new float[6];
int grade=0;
void setup(){
  bg = loadImage("bg.jpg");
  blu = loadImage("blu.jpg");
  white = loadImage("white.jpg");
  yellow = loadImage("yellow.jpg");
  blu2 = loadImage("blu2.jpg");
  white2 = loadImage("white2.jpg");
  size(400,600);
  for(int i=0;i<N;i++){
    newThing(i);
  }
}
int countDown=10*30;
void draw(){
  image(bg,0,0, 400,600);
  image(blu,13,475,60,15);
  image(white,73,475,66,15);
  image(yellow,139,475,88,15);
  image(blu2,293,475,64,15);
  image(white2,227,475,66,15);
  if(countDown>0){
    background(255,0,255);
    countDown--;
    text("Count Down"+countDown/50,170,300);
    return;
  }
  for(int i=0;i<N;i++){
    if(thingType[i]==1)
    {
     drawblu(i);
      if (keyPressed)
      {
        if(key=='d'|| key=='D')
        if(450<thingY[i] && thingY[i]<500)
        {
          thingY[i] = 650; grade++; println(grade);
          fill(#0046FF,90);
          rect(10,475,66,-500);
        }
      }
     
    }
    else if(thingType[i]==2)
    {
      drawwhite(i);
      if (keyPressed)
      {
        if(key=='f'|| key=='F')
        if(450<thingY[i] && thingY[i]<500)
        {
        thingY[i] = 650; grade++; println(grade);
        fill(255,90);
        rect(73,475,66,-500);
        }
      }
    }
    else if(thingType[i]==3)
    {
      drawyellow(i);
      if (keyPressed)
      {
        if(key=='b'|| key=='B')
        if(450<thingY[i] && thingY[i]<500)
        {
        thingY[i] = 650; grade++; println(grade);
        fill(#FFF700,90);
        rect(139,475,66,-500);
      }
      }
    }
    else if(thingType[i]==4)
    {
      drawblu2(i);
      if (keyPressed)
      {
        if(key=='k'|| key=='K')
        if(450<thingY[i] && thingY[i]<500)
        {
        thingY[i] = 650; grade++; println(grade);
        fill(#0046FF,90);
        rect(293,475,66,-500);
      }
      }
    }
    else if(thingType[i]==5)
    {
      drawwhite2(i);
      if (keyPressed)
      {
        if(key=='j'|| key=='J')
        if (450<thingY[i] && thingY[i]<500)
        {
          thingY[i] = 650; grade++; println(grade);
          fill(255,90);
          rect(227,475,66,-500);
        }
      }
    }
    thingY[i]+=4;//掉的速度
    if(thingY[i]>600) newThing(i);
   }
  if(count>0){
    count--;
    text("Time: "+count/50,170,300);
    }
    if(count==0){
      background(#FF0015);
      text("Score: "+grade,122,300);
    }
}
void newThing(int i){
  thingY[i] = -random(200);
  thingX[i] = random(400);
  thingType[i] = int(random(5))+1;
}
void drawblu(int i){
  thingX[i]=int(random(13,13));
  image(blu,thingX[i],thingY[i],60,15);
}
void drawwhite(int i){
  thingX[i]=int(random(73,73));
  image(white,thingX[i],thingY[i],66,15);
}
void drawyellow(int i){
  thingX[i]=int(random(139,139));
  image(yellow,thingX[i],thingY[i],88,15);
}
void drawblu2(int i){
  thingX[i]=int(random(293,293));
  image(blu2,thingX[i],thingY[i],66,15);
}
void drawwhite2(int i){
  thingX[i]=int(random(227,227));
  image(white2,thingX[i],thingY[i],66,15);
}

2013年12月16日 星期一

Week 15



PImage bg,life1,life2,life3,life4,life5,blu,white,yellow,blu1,white1,yellow1;

void setup(){
  bg = loadImage("bg.jpg");
  life1 = loadImage("life.jpg");
  life2 = loadImage("life.jpg");
  life3 = loadImage("life.jpg");
  life4 = loadImage("life.jpg");
  life5 = loadImage("life.jpg");
  blu = loadImage("blu.jpg");
  white = loadImage("white.jpg");
  yellow = loadImage("yellow.jpg");
  blu1 = loadImage("blu1.jpg");
  white1 = loadImage("white1.jpg");
  yellow1 = loadImage("yellow1.jpg");
  size(400,600);
}
void draw(){
  image(bg,0,0, 400,600);
  image(life1,368,5,28,66);
  image(life2,368,76,28,66);
  image(life3,368,147,28,66);
  image(life4,368,218,28,66);
  image(life5,368,289,28,66);
  image(blu,13,475,60,15);
  image(white,73,475,66,15);
  image(yellow,139,475,88,15);
  image(blu,227,475,66,15);
  image(white,293,475,64,15);
}

2013年12月1日 星期日

Week 13 課堂練習

提醒同學們,明天12/2(一) 是我們互動技術概論第13週的上課。
(1) 請不要忘了帶 Arduino Starter Kit 的實驗設備到學校哦!
(2) 明大要上課的內容是 Project 05 06 07 哦! 同學們今晚可以預習一下。
(3) 我們上課的目的,是為了讓同學們在期末完成自己構思的創意作品,同學們可以邊上課邊思考哦!
(4) 明天同學們記得帶 9V 的方塊電池(25元-60元一顆), 還有找找家裡有沒有一些要用電池的廉價的玩具, 我們可以在學校享受動手改裝的樂趣!


Project 06
int sensorValue;
int sensorLow = 1023;
int sensorHigh = 0;
const int ledPin = 13;
void setup() {
  // put your setup code here, to run once:
pinMode(ledPin,OUTPUT);
digitalWrite(ledPin,HIGH);
while(millis()<5000){
  sensorValue = analogRead(A0);
  if(sensorValue > sensorHigh){
    sensorHigh = sensorValue ;
  }
  if(sensorValue < sensorLow){
  sensorLow = sensorValue;
  }
}
digitalWrite(ledPin,LOW);
}
void loop() {
  // put your main code here, to run repeatedly: 
  sensorValue = analogRead(A0);
  int pitch = map(sensorValue,sensorLow,sensorHigh, 50,4000);
  tone(8,pitch,20);
  delay(10);

}



Project 07
int buttons[6];


int notes[] = {262,294,330,349};
void setup(){
  buttons[0] = 2;
  Serial.begin(9600);
}
void loop(){
  int keyVal = analogRead(A0);
  Serial.println(keyVal);
  if(keyVal == 1023){
    tone(8, notes[0]);
  }
  else if(keyVal >= 990 && keyVal<= 1010){
    tone(8, notes[1]);
  }
  else if(keyVal >= 505 && keyVal <= 515){
    tone(8,notes[2]);
  }
  else if(keyVal >= 5 && keyVal<= 10){
    tone(8,notes[3]);
  }
  else{
    noTone(8);
  }
}



Project 05
#include <Servo.h>
Servo myServo;

int const potPin = A0;
int potVal;
int angle;
void setup(){
  myServo.attach(9);
  
  Serial.begin(9600);
}
void loop(){
  potVal = analogRead(potPin);
  Serial.print("potVal: ");
  Serial.print(potVal);
  angle = map(potVal, 0, 1023, 0, 179);
  Serial.print(", angle: ");
  Serial.println(angle);myServo.write(angle);
  delay(15);
}




2013年11月24日 星期日

Week 12 課堂作業



第三課
const int sensorPin = A0;
const float baselineTemp = 25.0;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  for(int pinNumber = 2; pinNumber<5; pinNumber++){
    pinMode(pinNumber,OUTPUT);
    digitalWrite(pinNumber, LOW);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  int sensorVal = analogRead(sensorPin);
  Serial.print("Sensor Value: ");
  Serial.print(sensorVal);
  float voltage =(sensorVal / 1024.0) * 5.0;
  Serial.print(", Volts");
  Serial.print(voltage);
  Serial.print(", degrees C:");
  float temperature = (voltage - .5) *100;
  Serial.println(temperature);
  if(temperature < baselineTemp){
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  }else if(temperature >= baselineTemp+2 && temperature < baselineTemp+4){
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  }else if(temperature >= baselineTemp+4 && temperature < baselineTemp+6){
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
  }else if(temperature >= baselineTemp+6){
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
  }
  delay(1);
}



第四課




const int greenLEDPin = 9;
const int redLEDPin = 11;
const int blueLEDPin = 10;

const int redSensorPin = A0;
const int greenSensorPin = A1;
const int blueSensorPin = A2;

int redValue = 0;
int greenValue = 0;
int blueValue = 0;
int redSensorValue = 0;
int greenSensorvalue = 0;
int blueSensorvalue = 0;

void setup(){
  Serial.begin(9600);
  
  pinMode(greenLEDPin,OUTPUT);
  pinMode(redLEDPin, OUTPUT);
  pinMode(blueLEDPin, OUTPUT);
}
void loop(){
  redSensorValue = analogRead(redSensorPin);
  delay(5);
  greenSensorvalue = analogRead(greenSensorvalue);
  delay(5);
  blueSensorvalue = analogRead(blueSensorvalue);
  Serial.print("Raw Sensor Values \t Red: ");
  Serial.print(redSensorValue);
  Serial.print("\t Green: ");
  Serial.print(greenSensorvalue);
  Serial.print("\t Blue: ");
  Serial.print(blueSensorvalue);
  
  redValue = redSensorValue/4;
  greenValue = greenSensorvalue/4;
  blueValue = blueSensorvalue/4;
  
  Serial.print("Mapped SensorValues \t Red: ");
  Serial.print(redValue);
  Serial.print("\t Green: ");
  Serial.print(greenValue);
  Serial.print("\t Blue: ");
  Serial.print(blueValue);
  analogWrite(redLEDPin, redValue);
 analogWrite(greenLEDPin,greenValue);
 analogWrite(blueLEDPin,blueValue);
}

2013年11月17日 星期日

Week 11 上課作業



程式碼:
void setup() { // put your setup code here, to run once: pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(200); digitalWrite(13, LOW); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(12, LOW); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(13, HIGH); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(13, LOW); delay(200); digitalWrite(12,LOW); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(13, HIGH); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(12,LOW); delay(200); digitalWrite(13, LOW); delay(200); }

Week 10 期中作品展示


開車閃狗狗
利用左右鍵閃躲障礙物
如果撞到障礙物的話,遊戲就會結束。

2013年10月21日 星期一

Week07 黃紹維

1. 請列出你今天三個小時,要完成的事
讓車子左右移動、讓背景連續移動、加入障礙物
2. 你在期中作品要做到什麼程度
當車子撞到障礙物時,遊戲會結束。
3. Why? 你為什麼要做它
實用老師上課所教的方法。



2013年10月6日 星期日

Week05 黃紹維


今天目標: (1) 會轉動的漂亮的花花, (2) 思考決定期中作品

想做的遊戲
我想做類似植物大戰殭屍這種類型的遊戲


2013年9月29日 星期日

Week04黃紹維


感覺很多東西都可以用processing做出來,希望以後有機會可以自己做出來


2013年9月22日 星期日

Week03 黃紹維


1. 今天目標: 畫出一個五子棋
1.1. 使用 Tool- Color Selector, 挑出你要的顏色, 可用 R,G,B 來描述,也可用 #0B33FF 之類的數字來用
1.2. 要畫外框,可以用 rect()來畫, 要修改填充的顏色可以用fill(), 要讓畫的內部不要填充, 可以查看 Help-Reference 後,在 fill()樓上樓下相關的地方找到你要的功能 (ex. noFill() )
1.3. 使用 stroke() 來調畫線stroke的顏色, 在 Help-Reference 裡面可以找 stroke 相關的功能,像是比較粗的 stroke 可以用 strokeWeight() 來設定權重粗細
1.4. 想要畫裡面的細黑線,可以用 line() 來畫,配上不同的 strokeWeight() 粗細
2.


貼你覺得有意思的影片, 使用youtube 的分享, Blogger 分享, 兩邊都改成 HTML, 貼上 HTML 


2013年9月15日 星期日

Week02 黃紹維

1. Processing 啟動
2. 試 for迴圈


3. 試用 Processing-Help-Reference
3.1. 找 rect() 函式
3.2. 看看 rect() 樓上樓下的相關函式, 並嘗試畫出和老師不同的圖  [課堂作業1]


4. 那想要改變顏色呢?
4.1. fill() 是填充的顏色, stroke()是筆的顏色
4.2. 透明的顏色(alpha),其實也是顏色(color) [課堂作業2]把你獨一無二的圖,加點不同的色彩吧


5. 加一點點滑鼠的互動吧! 可以使用 mouseX 及 mouseY 的值,來進行色彩繽紛的運算


6. 亂數 random(數字上界) 來設定初始的亂數值 [課堂作業3] 利用mouseX,mouseY,random()做設計

 [課堂作業4] 請大家寫一下到現在的心得 (ex. 速度, 內容, 想學的東西, 期待、希望、夢想..)

速度剛好
希望在期末時能做出一個自己設計的遊戲