顯示具有 00160263盧建廷 標籤的文章。 顯示所有文章
顯示具有 00160263盧建廷 標籤的文章。 顯示所有文章

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年9月15日 星期日

第二週

1. Processing 啟動

2. 試 for迴圈


課教得很好
教得很好
得很好
很好



2013年9月8日 星期日

Week01

    0. 課程準備
    0.1. 加入 課程FB社團
    0.2. Google文件 填寫修課資料 (學號姓名,email,電話)
    0.3. 加入 Blog, 設定

*編交作業方式: 
tag: 000葉正聖老師, Week01, 00160011葉大明
(逗號隔開, 學號姓名間不要有空格)
1. 使用Processing寫出第一個程式