顯示具有 99160893黃李勤 標籤的文章。 顯示所有文章
顯示具有 99160893黃李勤 標籤的文章。 顯示所有文章

2013年1月14日 星期一

Week 19, Final Project

processing
import processing.serial.*;
Serial myPort;
int now=1;
int val;
int ballY=607;
int ballX=367;
float monsterX,monster2X,monster3X,monster4X,monster5X;
float monsterY,monster2Y,monster3Y,monster4Y,monster5Y;
float startX=0;
float start2X=0;
float start3X=0;
float start4X=0;
float start5X=0;
import ddf.minim.*;
AudioPlayer backmusic,stopcar,frogsound;
Minim minim;
PImage img0,img1,img2,img3,img4,img5,
img6,img7,img8,img9;

void setup()
{
size(800,700);
img0=loadImage("background.png
");
img1=loadImage("frog.gif");
img2=loadImage("show3.png");
img3=loadImage("car1.gif");
img4=loadImage("car2.gif");
img5=loadImage("car3.gif");
img6=loadImage("car4.gif");
img7=loadImage("car5.gif");
img8=loadImage("show4.png");
img9=loadImage("show0.png");
monsterX=0;
monster2X=0;
monster3X=0;
monster4X=0;
monster5X=0;
String portName=Serial.list()[0];
myPort=new Serial(this,"COM3",9600);
minim=new Minim(this);
backmusic=minim.loadFile("back
music.mp3", 2048); //music
backmusic.play();
}
void show1(){
image(img9,0,0);
}
void show2(){
image(img0,0,0);
image(img1,ballX,ballY,70,90);
}
void show3(){
image(img2,0,0);
}
void show4(){
image(img8,0,0);
}
void draw(){
while(myPort.available() >0) val=myPort.read();


if(now==1){
show1();
if(mousePressed&&mouseX>=0&&mo
useX<=700&&mouseY>=0&&mouseY<=800) now=2;
if (val=='a') now=2;
if (val=='c') now=2;
if (val=='e') now=2;
if (val=='g') now=2;

}
if(now==2){
show2();

monsterX-=4;
monsterY=520;
image(img3,monsterX,520);
if (monsterX<-100) {
monsterX +=800;
}
monster2X-=8;
monster2Y=440;
image(img4,monster2X,440);
if (monster2X<-100) {
monster2X +=800;
}
monster3X+=5;
monster3Y=360;
image(img5,monster3X,360);
if (monster3X>+800) {
monster3X -=900;
}
monster4X-=8;
monster4Y=270;
image(img6,monster4X,monster4Y
);
if (monster4X<-100) {
monster4X +=800;
}
monster5X+=6;
monster5Y=190;
image(img7,monster5X,monster5Y
);
if (monster5X>+800) {
monster5X -=800;
}
if(ballX<monsterX+45&&ballX>mo
nsterX-45&&ballY>monsterY-45&&ballY<monsterY+45)
{
now=4;
stopcar=minim.loadFile("stop.w
av", 2048);
stopcar.play();
monsterX+=800;
ballY=607;
ballX=367;
}
if(ballX<monster2X+45&&ballX>m
onster2X-45&&ballY>monster2Y-45&&ballY<monster2Y+45)
{
now=4;
stopcar=minim.loadFile("stop.w
av", 2048);
stopcar.play();
monster2X+=800;
ballY=607;
ballX=367;
}
if(ballX<monster3X+45&&ballX>m
onster3X-45&&ballY>monster3Y-45&&ballY<monster3Y+45)
{
now=4;
stopcar=minim.loadFile("stop.w
av", 2048);
stopcar.play();
monster3X+=800;
ballY=607;
ballX=367;
}
if(ballX<monster4X+45&&ballX>m
onster4X-45&&ballY>monster4Y-45&&ballY<monster4Y+45)
{
now=4;
stopcar=minim.loadFile("stop.w
av", 2048);
stopcar.play();
monster4X+=800;
ballY=607;
ballX=367;
}
if(ballX<monster5X+45&&ballX>m
onster5X-45&&ballY>monster5Y-45&&ballY<monster5Y+45)
{
now=4;
stopcar=minim.loadFile("stop.w
av", 2048);
stopcar.play();
monster5X+=800;
ballY=607;
ballX=367;
}
if (val=='a')ballY-=6; //top
if (val=='c')ballY+=6; //down
if (val=='e')ballX+=8; //right
if (val=='g')ballX-=8; //left
if(ballY>608)ballY=607;
if(ballY<-5)ballY=-4;
if(ballX>728)ballX=727;
if(ballX<2)ballX=3;
if(ballY<20&&ballX<410&&ballX>
325)now=3;
if(ballY<20&&ballX<410&&ballX>
325)ballY=607;
if(ballY<20&&ballX<410&&ballX>
325)ballY=367;
println("monster5Y:"+ballY+" monster5X:"+monster5X);
}
if(now==3){
show3();
if(mousePressed&&mouseX>=680&&
mouseX<=770&&mouseY>=590&&mouseY<=690)
now=2;
}
if(now==4){
show4();
if(mousePressed&&mouseX>=680&&
mouseX<=770&&mouseY>=590&&mouseY<=690)
now=2;
}
}
arduino

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;
int pushButton2 = 3;
int pushButton3 = 4;
int pushButton4 = 5;
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT);
pinMode(pushButton2, INPUT);
pinMode(pushButton3, INPUT);
pinMode(pushButton4, INPUT);
}
int a1=0;
int a2=0;
int a3=0;
int a4=0;
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton);
int buttonState2 = digitalRead(pushButton2);
int buttonState3 = digitalRead(pushButton3);
int buttonState4 = digitalRead(pushButton4);
// print out the state of the button:
if (buttonState == HIGH && a1==0 ) { // If switch is ON,
Serial.print('a');
a1=1; // send 1 to Processing
}
if (buttonState == LOW && a1==1) { // If the switch is not ON,
Serial.println('b');
a1=0; // send 0 to Processing
}
if (buttonState2 == HIGH && a2==0 ) { // If switch is ON,
Serial.print('c');
a2=1; // send 1 to Processing
}
if (buttonState2 == LOW && a2==1) { // If the switch is not ON,
Serial.println('d');
a2=0; // send 0 to Processing
}
if (buttonState3 == HIGH && a3==0 ) { // If switch is ON,
Serial.print('e');
a3=1; // send 1 to Processing
}
if (buttonState3 == LOW && a3==1) { // If the switch is not ON,
Serial.println('f');
a3=0; // send 0 to Processing
}
if (buttonState4 == HIGH && a4==0 ) { // If switch is ON,
Serial.print('g');
a4=1; // send 1 to Processing
}
if (buttonState4 == LOW && a4==1) { // If the switch is not ON,
Serial.println('h');
a4=0; // send 0 to Processing
}
// Serial.println(buttonState);
delay(10); // delay in between reads for stability
}

http://www.youtube.com/watch?v=g0ORjiFmzmU

2012年11月27日 星期二

HW10, week12

 


01.將霹靂燈錄影上傳到youtube,再貼回部落格

02.發揮你的創意做出最特別的霹靂燈
燈的顏色不一樣

03.貼上程式碼
/*
  Analog Input
 Demonstrates analog input by reading an analog sensor on analog pin 0 and
 turning on and off a light emitting diode(LED)  connected to digital pin 13.
 The amount of time the LED will be on and off depends on
 the value obtained by analogRead().

 The circuit:
 * Potentiometer attached to analog input 0
 * center pin of the potentiometer to the analog pin
 * one side pin (either one) to ground
 * the other side pin to +5V
 * LED anode (long leg) attached to digital output 13
 * LED cathode (short leg) attached to ground

 * Note: because most Arduinos have a built-in LED attached
 to pin 13 on the board, the LED is optional.


 Created by David Cuartielles
 modified 30 Aug 2011
 By Tom Igoe

 This example code is in the public domain.

 http://arduino.cc/en/Tutorial/AnalogInput

 */
int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor
int i=0;
void setup() {
  Serial.begin(9600);
  // declare the ledPin as an OUTPUT:
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
 
}
void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);   
  // turn the ledPin on
  Serial.println(sensorValue);
  for(i=0;i<9;i++)
  if(i==0);{
  digitalWrite(13, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(13, LOW);
  }
    if(i==1);{
  digitalWrite(12, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(12, LOW);
  }
   if(i==2);{
  digitalWrite(11, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(11, LOW);
  }
    if(i==3);{
  digitalWrite(10, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(10, LOW);
  }
    if(i==4);{
  digitalWrite(9, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(9, LOW);
  }
   if(i==5);{
  digitalWrite(10, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(10, LOW);
  }
  if(i==6);{
  digitalWrite(11, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(11, LOW);
  }
  if(i==7);{
  digitalWrite(12, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(12, LOW);
  }
   if(i==8);{
  digitalWrite(13, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(13, LOW);
  }
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);                 
}

*本週作業一組交一份即可(要標註組員姓名)

2012年11月13日 星期二

Midtern

1.程式碼

int now=1;
int a=874,b=874;
PImage img0,img1,img2,img3,img4,img5,img6,img7,img8;
import ddf.minim.*;
AudioPlayer backmusic,food2,touch2 ;
Minim minim;
void setup(){  
size(768,1024); 
img0=loadImage("background0.jpg"); 
img1=loadImage("cat1.jpg");  
img2=loadImage("food.jpg"); 
img3=loadImage("touch.jpg"); 
img4=loadImage("home.gif"); 
img5=loadImage("cat2.jpg");
img6=loadImage("cat3.jpg");
img7=loadImage("right.gif");
img8=loadImage("left.gif");
minim=new Minim(this);
food2=minim.loadFile("food2.mp3", 2048);
touch2=minim.loadFile("touch2.mp3", 2048);
backmusic=minim.loadFile("backmusic.mp3", 2048);
backmusic.play();
}
void show1(){
  image(img0,0,0);
}
void show2(){
image(img1,0,0);  
image(img2,0,a); 
image(img3,618,b);  
image(img4,660,0); 
image(img7,700,560); 
}
void show3(){
image(img5,0,0);  
image(img2,0,a); 
image(img3,618,b);  
image(img4,660,0); 
image(img7,700,500);
image(img8,10,500); 
}
void show4(){
image(img6,0,0);  
image(img2,0,a); 
image(img3,618,b);  
image(img4,660,0); 
image(img8,10,560); 
}
void draw(){
if(now==1){
    show1(); 
    if(mousePressed&&mouseX>=248&&mouseX<=483&&mouseY>=544&&mouseY<=635){
    now=2; 
}
}
if(now==2)
    show2();
  if(mousePressed&&mouseX>=0&&mouseX<=150&&mouseY>=874&&mouseY<=1024)  {
    food2.play();
    a=1024;
  }
  if(mousePressed&&mouseX>=618&&mouseX<=768&&mouseY>=874&&mouseY<=1024) {
    touch2.play();
    b=1024;
  }
  if(mousePressed&&mouseX>=618&&mouseX<=768&&mouseY>=0&&mouseY<=150) {
    now=1;
    a=874;
    b=874;
  }
  if(mousePressed&&mouseX>=618&&mouseX<=768&&mouseY>=500&&mouseY<=600) now=3;
  if(now==3)
     show3();
  if(mousePressed&&mouseX>=0&&mouseX<=150&&mouseY>=874&&mouseY<=1024){
    food2.play();
    a=1024;
  }
  if(mousePressed&&mouseX>=618&&mouseX<=768&&mouseY>=874&&mouseY<=1024){
    touch2.play();
    b=1024;
  }
  if(mousePressed&&mouseX>=618&&mouseX<=768&&mouseY>=0&&mouseY<=150){
    now=1;
    a=874;
    b=874;
  }
  if(mousePressed&&mouseX>=0&&mouseX<=150&&mouseY>=500&&mouseY<=600) now=2;
  if(mousePressed&&mouseX>=618&&mouseX<=768&&mouseY>=500&&mouseY<=550) now=4;
  if(now==4)
     show4();
  if(mousePressed&&mouseX>=0&&mouseX<=150&&mouseY>=874&&mouseY<=1024){
    food2.play();
    a=1024;
  }
  if(mousePressed&&mouseX>=618&&mouseX<=768&&mouseY>=874&&mouseY<=1024){
    touch2.play();
    b=1024;
  }
  if(mousePressed&&mouseX>=618&&mouseX<=768&&mouseY>=0&&mouseY<=150){
    now=1;
    a=874;
    b=874;
  }
  if(mousePressed&&mouseX>=0&&mouseX<=150&&mouseY>=550&&mouseY<=600) now=3;
  }






2012年11月12日 星期一

Week08, HW08

(1) 之前完成的進度

這禮拜改了主題 改做talking tom貓咪的遊戲

(2) 第 8 周預期完成進度
 

圖檔製作好
(3) 可能會遇到的問題及可能的解決方法

聲音 事件判斷

(4) 期中作品進度目前程式碼



PImage img1,img2,img3,img4;
import ddf.minim.*;
AudioPlayer player ;
Minim minim;
void setup(){  
size(768,1024);  
img1=loadImage("background.jpg");  
image(img1, 0, 0);  
img2=loadImage("food.jpg");  
image(img2, 0, 874); 
img3=loadImage("toy.jpg");  
image(img3, 618, 874);  
img4=loadImage("touch.jpg");  
image(img4, 618, 725); 
minim=new Minim(this);

}
void draw(){  
  if(mouseX>=0&&mouseX<=150&&mouseY>=874&&mouseY<=1024) player=minim.loadFile("file.mp3", 2048);
   player.play();
  
}

2012年10月30日 星期二

week7 HW7


import processing.video.*;
Capture video;
void setup(){
size(640,480,P2D);
video = new Capture(this, width, height);
video.start();
loadPixels();
}
void draw(){
if(video.available()){
video.read();
video.loadPixels();
for(int i=0;i<640*480;i++){
pixels[i]=video.pixels[i];
}
updatePixels();
}
}
最短視訊碼

2012年10月16日 星期二

week06,HW06

1.

TODO: HW06第二部分: 今天的進度: 做期中作品
(a) 素材
(b) 想流程,很細地寫下步驟
(c) 試 code 看想法是否可

2012年10月9日 星期二

WEEK5

作業一:
void setup()
{
size(600,600);
}
float jj=0.01;
void draw(){
background(255,255,255);
fill(255,255,255);
translate(300,300);
rotate(jj);jj+=0.01;
for(int i=0;i<18;i++){
  rotate(PI/9);
  ellipse(90,20,100,30);
  ellipse(90,20,100,6);
 
}
fill(200,200,0);
ellipse(0,0,100,100);
}


作業二:
void setup()
{
size(600,600);
}
float jj=0.01;
void draw(){
  background(255,255,255);

translate(300,300);
rotate(jj);jj+=0.01;
for(int i=0;i<18;i++){
  fill(mouseX*1/3+i*10,mouseY*1/2,mouseX);
  rotate(PI/9);
  ellipse(100,0,100,30);
}
fill(mouseX*1/3,0,mouseY*1/3);
ellipse(0,0,100,100);
}

W4

作業:


void setup()
{
size(600,400);
background(255,255,255);
fill(255,0,0);
rect(0,0,50,50);
fill(0,0,0);
rect(0,50,50,50);
fill(190,80,30);
rect(0,100,50,50);
fill(200,177,120);
rect(0,150,50,50);
fill(240,217,160);
rect(0,200,50,50);
fill(255,255,255);
rect(550,0,50,50);
fill(255,255,255);
ellipse(575, 25, 2,2);
fill(255,255,255);
rect(550,50,50,50);
ellipse(575, 75, 6, 6);
rect(550,100,50,50);
ellipse(575, 125, 10,10);
rect(0,250,50,50);
rect(550,150,50,50);
ellipse(575, 175, 20,20);
rect(0,250,50,50);
stroke(255,0,0);
strokeWeight(1);
}
void draw()
{
if(mouseX>550 && mouseX<600 && mouseY>0 && mouseY<50 && mousePressed)
{
strokeWeight(3);
}
else if(mouseX>550 && mouseX<600 && mouseY>50 && mouseY<100 && mousePressed)
{
strokeWeight(6);
}
else if(mouseX>550 && mouseX<600 && mouseY>100 && mouseY<150 && mousePressed)
{
strokeWeight(10);
}
else if(mouseX>550 && mouseX<600 && mouseY>150 && mouseY<200 && mousePressed)
{
strokeWeight(20);
}
else if(mouseX < 50 && mouseY<50 && mousePressed)
{
stroke(255,0,0);
}
else if(mouseX < 50 && mouseY<100 && mousePressed)
{
stroke(0,0,0);
}
else if(mouseX < 50 && mouseY<150 && mousePressed)
{
stroke(190,80,30);
}
else if(mouseX < 50 && mouseY<200 && mousePressed)
{
stroke(200,177,120);
}
else if(mouseX < 50 && mouseY<250 && mousePressed)
{
stroke(240,217,160);
}
else if(mouseX < 50 && mouseY<300 && mousePressed)
{
stroke(255,255,255);
}
else if(mousePressed)
{
line(mouseX,mouseY,pmouseX,pmouseY);
}
}


processing真的可以做好多事情 令人十分吃驚。小畫家耶,都能做了,還有啥事不能做的??

2012年10月1日 星期一

W3


作業一:

做了一個會一直過來撞屁股的林書豪阿 哈哈哈哈哈哈



void setup(){
  size(1000,800);

}
float x=100,y=100;
void draw(){
  fill(255,255,255);
  rect(0,0,1000,800);
  PImage HA;
  HA=loadImage("ass2.gif");
  image(HA,mouseX-150,mouseY-150);
  PImage YA;
  YA=loadImage("ass1.gif");
  image(YA,x-282,y-172);
  x=x*0.9+mouseX*0.1;
  y=y*0.9+mouseY*0.1;
}





作業二

跑得很快的殘影林書豪 顆顆!!


float sx = random(30);
float [] x = new float[20];
float [] y = new float[20];
void setup(){
  size(600,600);
}

void ii(){
  PImage ii;
  ii = loadImage("111.gif");
ii.resize(0, 200);
  image(ii, mouseX-70,mouseY-100);}
void jj(){
  noStroke();
  x[9]=mouseX;
  y[9]=mouseY;
  for(int i=0;i<10;i++){
   
    PImage ii;
  ii = loadImage("111.gif");
  ii.filter(GRAY);
ii.resize(0, 200);
  image(ii, x[i]-70,y[i]-100);
    x[i]=x[i+1];
    y[i]=y[i+1];
  }
}
void draw(){
 
  background(255);

  jj();
  ii();
}


2012年9月18日 星期二

week2

作業1
size(600,600);
for(int i=0;i<50;i++)
{
fill(random(255),random(255),random(255));
rect(random(255),random(255),random(255),random(255));
}



作業2
size(400,300);
for(int i=0;i<40;i++)
{
  for(int x=0;x<30;x++){
    noStroke();
fill(i*220/20,x*200/20,i*200/16);
rect(i*10,x*10,10,10);
}
}



作業3

size(600,500);
for(int i=0;i<6;i++){
  for(int k=0;k<5;k++){
    fill(255,255,255);
    ellipse(i*100+50,k*100+50,  100,100);
    fill(i*255/8,k*255/2,255/2);
    ellipse(i*100+50,k*100+50,  50,50);
    fill(0,0,0);
    ellipse(i*100+50,k*100+50,  10,40);
  }
}


2012年9月11日 星期二

week 01

還滿不錯的



KITTY
size(950,800);
PImage kitty;
kitty = loadImage("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMvs0talQgvitdA6Nx_ItnF23Lz27PhM9DtiR2E_my7m59tGrBroGfe0B6_y3vgn7L3NVYsZi-iu0Dj8mEFz_XoNpoSPD8-z7AXh5Vruqi3eusGnNXPByC2K5NHeV7d2VJU_dHmLmct4wm/s1600/hello-kitty-color.gif");
image(kitty, 10,10);



1.我學會了Processing,真的是高階軟體,學起來就是不用費太多力!!不過我只學會用點描繪圖形而已,希望能學會更多的招式,這樣就可以變得超強的!!!!
2.比較不懂曲線的繪製方法,只能用processing的繪圖去讓它平滑。
3.想學一堆東西,這個實在太有趣了,真不愧是美女工程師最愛的!!!!