顯示具有 00160954盧冠霖 標籤的文章。 顯示所有文章
顯示具有 00160954盧冠霖 標籤的文章。 顯示所有文章

2014年1月12日 星期日

期末作業

Processing 程式碼如下 :

import processing.serial.*;
Serial serial;
int val;
float [] X=new float [10], Y= new float[10];
PImage plane;
PImage sky;
PImage moster,row,row2,row3,row4;
int count=0;
int score=0;
int n=(int)random(5);
void setup()
{
  background(255,255,255);
  size(600,400);
  serial=new Serial(this,"COM3",9600);
  plane=loadImage("plane.gif");
  moster=loadImage("moster.jpg");
  sky=loadImage("sky.jpg");
  row = loadImage("1.png");
 for(int i=0;i<10;i++){
   newb(i);
   drawbanana(i);
  }
}
void keyPressed(){
  /*if(keyCode==UP)  now+=10;
      if(keyCode==DOWN) now-=10;
      if(keyCode==LEFT) no+=10;
      if(keyCode==RIGHT) no-=10;
   
      if(keyCode==32)
      {
        if((X[0]+no)>250 && (X[0]+no)<350 && (Y[0]+now)<250 && (Y[0]+now)>150) {
               print("哈哈哈");
               score+=10;
               print(score);
                 X[0]=random(200)+200;
                 Y[0]=random(400);
          }
     }*/
   
}
int now=0;
int no=0;

void draw()
{
  if(serial.available()>0){
   int val=serial.read();
   if(val=='1')  now+=10;
      if(val=='2') now-=10;
      if(val=='3') no+=10;
      if(val=='4') no-=10;
   
      if(val=='5')
      {
        if((X[0]+no)>250 && (X[0]+no)<350 && (Y[0]+now)<250 && (Y[0]+now)>150) {
               print("哈哈哈");
               score+=10;
               print(score);
                 X[0]=random(200)+200;
                 Y[0]=random(400);
          }
     }
   print(val);
  }
  background(255);
  int m=millis();
  int p=(60000-m)/1000;
  if(m<60000){
        background(255);
         for(int i=0;i<n+1;i++){
          drawbanana(i);
          if(count%1000==0){
            newb(i);
            n=(int)random(1);
          }
        //image(moster,300+no,200+now,50,80);
        image(plane,300,200,600,400);
        fill(255,0,0);
        text("Score:"+score,10,30,100,100);
        textSize(20);
        imageMode(CENTER);
     
     // if(dist(300,200,X[0],Y[0]) - dist(300,200,X[100],Y[100])) image(row,200,200,50,50);
}
 count++;
 text("TIME:"+p,500,30,100,100);
 println(n);
}
 else{
    background(255);
    fill(255,0,0);
    text("Score:"+score, 200,150,400,100);
    textSize(40);
    text("TIME  UP", 200, 200 ,200,500);
 }
}
void drawbanana(int i){
  image(sky,X[i]+no, Y[i]+now, 3600, 3400);
  image(moster,X[i]+no, Y[i]+now, 50, 80);
}
void newb(int i){
  X[i]=random(200)+200;
  Y[i]=random(400);
}





2013年12月23日 星期一

Week 16 作業

float [] X=new float [10], Y= new float[10];
PImage plane;
PImage sky;
PImage moster,row,row2,row3,row4;
int  count=0;
int n=(int)random(5);
void setup()
{
  background(255,255,255);
  size(600,400);
  plane=loadImage("plane.gif");
  moster=loadImage("moster.jpg");
  sky=loadImage("sky.jpg");
  row = loadImage("1.png");
 for(int i=0;i<10;i++){
   newb(i);
   drawbanana(i);
  }
}
int now=0;
int no=0;
void draw()
{
    background(255);
    imageMode(CENTER);
    //image(moster,300+no,200+now,50,80);
    for(int i=0;i<n+1;i++){
      drawbanana(i);
      if(count%1000==0){
        newb(i);
        n=(int)random(1);
      }
      image(plane,300,200,600,400);
      if ((dist(300,200,X[0],Y[0]) - ) image(row,200,200,50,50);
}
 count++;
 println(n);
}
void drawbanana(int i){
  image(sky,X[i]+no, Y[i]+now, 3600, 3400);
  image(moster,X[i]+no, Y[i]+now, 50, 80);
}
void newb(int i){
  X[i]=random(200)+200;
  Y[i]=random(400);
}
void keyPressed(){
      if(keyCode==UP) now+=10;
      if(keyCode==DOWN) now-=10;
      if(keyCode==LEFT) no+=10;
      if(keyCode==RIGHT) no-=10;
     
      if(keyCode==32)
      {
        if((X[0]+no)>250 && (X[0]+no)<350 && (Y[0]+now)<250 && (Y[0]+now)>150) {
               print("哈哈哈");
                 X[0]=random(200)+200;
                 Y[0]=random(400);
          }
     }
}

2013年12月16日 星期一

第15週作業

float X[],Y[];
PImage plane;
PImage moster;
void setup()
{
  background(255,255,255);
  size(600,400);
  plane=loadImage("plane.gif");
  moster=loadImage("moster.jpg");

}
int now=0;
int no=0;
void draw()
{
    background(255);
    image(moster,300+no,200+now,50,80);
    image(plane,0,0,600,400);
}
void keyPressed(){
      if(keyCode==UP) now+=10;
      if(keyCode==DOWN) now-=10;
      if(keyCode==LEFT) no+=10;
      if(keyCode==RIGHT) no-=10;
       for(int i=0;i<5;i++){
      if(moster<300 && moster>200 && moster>300 && moster<200) {      
       if(keyCode==32) now-=20;
      image(moster,X[i], Y[i], 60, 60);
           
     
    }
   }
}

2013年12月1日 星期日

Week13 作業

1. MOOD CUE :
#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); }


2. LIGHT THEREMIN :
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); }


3. KEYBOARD INSTRUMENT :
int buttons[6]; int buttons[0] = 2;
int notes[] = {262,294,330,349}; void setup(){ 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); } }

2013年11月24日 星期日

Week12 作業

12-1 感溫度

const int sensorPin = A0; const float baselineTemp = 25.0; void setup() { Serial.begin(9600); for (int pinNumber = 2; pinNumber < 5; pinNumber++) { pinMode(pinNumber, OUTPUT); digitalWrite(pinNumber, LOW); } } void loop() { 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); }

12-2 感光


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(greenSensorPin); delay(5); blueSensorValue = analogRead(blueSensorPin); Serial.print("raw sensor Values \t red: "); Serial.print(redSensorValue); Serial.print("\t green: "); Serial.print(greenSensorValue); Serial.print("\t Blue: "); Serial.println(blueSensorValue); redValue=redSensorValue/4; greenValue=greenSensorValue/4; blueValue=blueSensorValue/4; Serial.print("Mapped sensor Values \t red: "); Serial.print(redValue); Serial.print("\t green: "); Serial.print(greenValue); Serial.print("\t Blue: "); Serial.println(blueValue); analogWrite(redLEDPin, redValue); analogWrite(greenLEDPin, greenValue); analogWrite(blueLEDPin, blueValue); }

Week11 作業

2013年10月20日 星期日

Week 07

1.今天的目標 : 要把射擊中的消失掉
2.期中程度 : 要做出一款射擊遊戲 總共有3種怪物 射死一隻會加分 分數到一定的程度  會出現另一種的怪物 總共3種 最後達到5000分可破關
3.可以利用到老師上課所教的程式,熟悉程式,寫程式的想法
float [] X=new float [10], Y= new float[10];

PImage Crosshair;
PImage banana;
void setup(){
  size(600,400);
  Crosshair=loadImage("http://bbs.mychat.to/attach/Fid_687/687_810281.jpg");
  banana=loadImage("http://files.gamebanana.com/img/ico/sprays/mr_banana_257.png");
  for(int i=0;i<10;i++){
    newb(i);    
  }
}
void draw(){
  background(255);
  imageMode(CENTER);
  image(Crosshair,mouseX,mouseY,100,100);
  for(int i=0;i<10;i++){
    drawbanana(i);
    if() newb(i);
  }
}
void drawbanana(int i){
  image(banana,X[i], Y[i], 50, 50);    
}

void newb(int i){
  X[i]=random(600);
  Y[i]=random(400);
}

2013年10月14日 星期一

Week06 盧冠霖

float [] X=new float [10], Y= new float[10];
float [] VX=new float [10], VY= new float[10];
PImage Crosshair;
PImage banana;
void setup(){
  size(600,400);
  Crosshair=loadImage("http://bbs.mychat.to/attach/Fid_687/687_810281.jpg");
  banana=loadImage("http://files.gamebanana.com/img/ico/sprays/mr_banana_257.png");
  for(int i=0;i<10;i++)  {
    newb(i);
  }
}
void draw(){
  background(255);
  imageMode(CENTER);
  image(Crosshair,mouseX,mouseY,100,100);
  for(int i=0;i<10;i++){
    image(banana,X[i], Y[i], 50, 50);
    X[i] += VX[i];
    Y[i] += VY[i];
   
  }
}
void newb(int i){
  float angle=random(2*PI);
  VX[i]=cos(angle);
  VY[i]=sin(angle);
  X[i]=300;
  Y[i]=300;
}

2013年10月6日 星期日

Week05 盧冠霖

用ellipse畫出花瓣,並配合translate與rotate

使用for迴圈畫出花瓣,並替花上色
使花位移,並畫出

點擊滑鼠並產生一朵花
int []X=new int [100];
int []Y=new int [100];
int N=0;
void setup(){
  size(640, 480);
  colorMode(HSB, 480);
}
float r=0;
void draw(){
  background(0);
  r+=0.02;
  for(int i=0;i<N;i++)follow(X[i],Y[i]);   
}
void follow(float x, float y){
  pushMatrix();
  translate(x,y);
  rotate(r);
  fill(mouseX,mouseY,480);
  for (int i=0;i<6;i++)  {
    rotate(PI/6*1);
    ellipse(0, 0, 25, 100);
  }
  fill(#FA5D75);
  ellipse(0, 0, 40, 40);
  popMatrix();
}
void mousePressed(){
  X[N]=mouseX;
  Y[N]=mouseY;
  N++;
  if(N>=100)N=0;
}
期中作品:
電流急急棒

2013年9月29日 星期日

Week04 盧冠霖

小畫家

點擊色彩框改變線的色彩

加上漸層調色盤



void setup(){
  cursor(CROSS);
  size(600,400);
  background(255);
  noStroke();
  colorMode(HSB, 100);
  for (int i = 0; i < 100; i++) {
    for (int j = 0; j < 100; j++) {
      stroke(i, j, 100);
      point(i, j);
    }
  }
  
  fill(#FF0000);
  rect(0,100,50,50);
  fill(#FFA500);
  rect(0,150,50,50);
  fill(#FFFF00);
  rect(0,200,50,50);
  fill(#00FF00);
  rect(0,250,50,50);
  fill(#0000FF);
  rect(0,300,50,50);
  fill(#808080);
  rect(0,350,50,50);
  
  fill(255);
  strokeWeight(1);
  rect(500,0,100,100);
  strokeWeight(20);
  stroke(#000000);
  point(550,50);
  
  fill(255);
  strokeWeight(1);
  rect(500,100,100,100);
  strokeWeight(15);
  stroke(#000000);
  point(550,150);
  
   fill(255);
  strokeWeight(1);
  rect(500,200,100,100);
  strokeWeight(10);
  stroke(#000000);
  point(550,250);
  
  fill(255);
  strokeWeight(1);
  rect(500,300,100,100);
  strokeWeight(5);
  stroke(#000000);
  point(550,350);
}
void draw(){
  
}
void mouseDragged(){
  if(mouseX>100)
  line(mouseX,mouseY,pmouseX,pmouseY);
}
void keyReleased()
{
  if(key=='s'){save("frame.jpg");}
}
void mouseClicked(){
  if(mouseX<100 && mouseY<100) stroke(mouseX,mouseY,100);
  else if(mouseX<100 && mouseY<150) stroke(#FF0000);
  else if(mouseX<100 && mouseY<200) stroke(#FFA500);
  else if(mouseX<100 && mouseY<250) stroke(#FFFF00);
  else if(mouseX<100 && mouseY<300) stroke(#00FF00);
  else if(mouseX<100 && mouseY<350) stroke(#0000FF);
  else if(mouseX<100 && mouseY<400) stroke(#808080);
  
  else if(mouseX>500 && mouseY<100) strokeWeight(20);
  else if(mouseX>500 && mouseY<200) strokeWeight(15);
  else if(mouseX>500 && mouseY<300) strokeWeight(10);
  else if(mouseX>500 && mouseY<300) strokeWeight(5);
}

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() 來設定權重粗細







2013年9月15日 星期日

Week02盧冠霖

1.使用For迴圈

void setup()
{
  size(600,400);
}
void draw()
{
  for(int x=0;x<600;x+=100)
  {
    for(int y=0;y<400;y+=100)
    {
      rect(x,y,100,100);
    }
  }
}

2.使用ellipse、triangle、Fill
3.使用滑鼠移動改變透明度
4.亂數 random(數字上界) 來設定初始的亂數值


心得:
老師講解的很詳細,不過講話速度有點快。


2013年9月8日 星期日