顯示具有 05160390_宋偉榤 標籤的文章。 顯示所有文章
顯示具有 05160390_宋偉榤 標籤的文章。 顯示所有文章

2018年12月6日 星期四

week13

week13

1.確認COM7裝置


2.文件→範例程序Java ExamplesLibrariesSerialSimpleRead


3.接下來就是要複製程式碼
int swithPin=4;
void setup(){ 
   pinMode(2,INPUT_PULLUP); Serial.begin(9600);  
   }
void loop(){
     if(digitalRead(2)==HIGH){ 
        Serial.write(1);
        } 
     else{     
        Serial.write(0);
        }    
   delay(100);
   }

4.按下按鈕就會變成黑色  沒按下就是灰色程式碼
import processing.serial.*;
Serial myPort;  
int val;      
void setup() 
{  
  size(200, 200);  
  String portName = Serial.list()[0]; 
  myPort = new Serial(this,"COM7", 9600);
}
void draw()
{   
  if ( myPort.available() > 0) 
  {     
      val = myPort.read(); 
  }  
  background(255);
  if (val == 0) 
  {               
     fill(0);                  
  }   
  else 
  { 
     fill(204);
  }  
  rect(50, 50, 100, 100);
}

2018年11月29日 星期四

week12

week12


一大早起來,就一直在接燈泡接到手很痛,但整個過程中到成品,都覺得特別有趣,
光劍這東西也很有成就感,整體來說是個很好的一次體驗,也謝謝學長以及老師的幫忙
,才能完成光劍

2018年11月22日 星期四

week11

week11

1.播放小星星的程式碼

/*
This example shows how to play melody using only a Maker UNO.
Tutorial page:
  http://makeruno.com.my/playing-melody-using-only-maker-uno/
Original written by:
  26/01/18  Asyraf (Intern), Cytron Technologies
*/
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);
  }
}

2018年10月18日 星期四

week06

week06

一. 讀入音檔

1.開起速寫本  -  添加庫文件  -  sound,Minim



2.安裝sound,Minim



3.這樣就可以讀入音檔了



import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import ddf.minim.signals.*;
import ddf.minim.spi.*;
import ddf.minim.ugens.*;

Minim minim;
AudioPlayer player;
void setup(){
 minim=new Minim(this);
 player=minim.loadFile("Kalimba.mp3");
 player.play();
}
void draw(){
  
}

水果忍者


1.只有一個水果

float fX, fY, fVX, fVY;
void setup(){
   size(800,600);
   fX=30;  fVX=3;
   fY=700; fVY=-35;
}
void draw(){
   background(0);
   ellipse(fX,fY,100,100);
   fX+=fVX;
   fY+=fVY;
   fVY+=0.98;
}

2.變成很多水果


3.加了亂數的水果


float [] fX=new float[20];
float [] fY=new float[20];
float [] fVX=new float[20];
float [] fVY=new float[20];
void reborn(int i){
   fX[i]=random(800); fVX[i]=random(6)-3;
   fY[i]=700; fVY[i]=-35;
}
void setup(){
   size(800,600);
   for(int i=0;i<20;i++){
     reborn(i);
   }
}
void draw(){
   background(0);
   for(int i=0;i<20;i++){
     if(dist(mouseX,mouseY,fX[i],fY[i])<=50){
      reborn(i); continue; 
     }
     ellipse(fX[i],fY[i],100,100);
     fX[i]+=fVX[i];
     fY[i]+=fVY[i];
     fVY[i]+=0.98;
     if(fY[i]>700) reborn(i);
   }
}

2018年10月4日 星期四

week04

week04

1.做一個簡單的開始畫面


void setup(){
   size(800,600); 
}
void draw(){
   fill(255,0,0); rect(0,0,300,300);
   textSize(80);
   fill(0,0,0); text("Start",50,150);
}


2.簡單的射擊




void setup(){
   size(800,600); 
}
void draw(){
  background(255); //清除背景
   fill(255,0,0); rect(100,100,100,100);
   for(int i=0;i<bulletN;i++){
     if(bulletFlying[i]){
        ellipse(bulletX[i],bulletY[i], 50,50);
        bulletX[i]+=3;//子彈一直向右移動3的距離
     }
  }
}
float []bulletX= new float[100]; //有100顆球可以發射
float []bulletY= new float[100];
int bulletN=0;
boolean []bulletFlying=new boolean[100];
void keyPressed(){
  bulletFlying[bulletN ]=true;
  bulletX[bulletN ]=100; bulletY[bulletN]=100;
  bulletN++;//可以一直連續發射子彈
}


3.利用滑鼠來發射球



PImage imgBullet, imgBG; 
  void setup(){
     size(800,600); 
     imgBG = loadImage("BG.jpg");
     imgBullet = loadImage("bullet.png");
     imageMode(CENTER);
  }
  void draw(){
    image(imgBG, width/2,height/2, width, height);
    ellipse(mouseX, mouseY, 100,100);
     for(int i=0;i<bulletN;i++){
       if(bulletFlying[i]){
          ellipse(bulletX[i],bulletY[i], 100,100);
          bulletY[i]+=bulletVY[i];
          bulletVY[i]+=0.98;
       }
    }
  }
  float []bulletX= new float[100];
  float []bulletY= new float[100];
  float []bulletVY= new float[100];
  boolean []bulletFlying=new boolean[100];
  int bulletN=0;
  void mousePressed(){
    bulletFlying[bulletN]=true;
    bulletX[bulletN]=mouseX;
    bulletY[bulletN]=mouseY;
    bulletVY[bulletN]=-20;
    bulletN++;

  }

2018年9月27日 星期四

week03

做出好看的圖案

1.先畫出一個圓形跟多個三角形


void setup(){
  size(500,500);
}
void draw(){
  ellipse(250,250,480,480);    畫圓
  for(float angle=0; angle<PI*2;angle+=PI/3){
     triangle(250,250,   畫三角形
             250+240*cos(angle),250+240*sin(angle),   
             250+240*cos(angle+PI/3),250+240*sin(angle+PI/3)); 
  }
}      角度用sin cos 


2.改變三角形的半徑


void setup(){
  size(500,500);
}
void draw(){
  ellipse(250,250,480,480);
  for(float angle=0; angle<PI*2;angle+=PI/3){
    for(int R=0;R<=240;R+=20){
      noFill();
      triangle(250,250,
             250+R*cos(angle),250+R*sin(angle),
             250+R*cos(angle+PI/3),250+R*sin(angle+PI/3)); 
    }
  }讓半徑變小就變成很像蜘蛛網的東西
}


3. 馬力歐跑起來



PImage imgMario;
float marioX=0, marioY=0;   //馬力歐起始點在(0,0)
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  background(255);
  image(imgMario, marioX, marioY, 150, 150);
}
void keyPressed(){      //用鍵盤來操控馬力歐
  if(keyCode==UP)          {marioY-=5;}     
  if(keyCode==DOWN)   {marioY+=5;}
  if(keyCode==LEFT)      {marioX-=5;}
  if(keyCode==RIGHT)   {marioX+=5;}
}


4.讓馬力歐有地心引力or重力or加速度


PImage imgMario;
float marioX=0, marioY=0, marioVX=2, marioVY=0,marioAX=0, marioAY=0.1;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  //background(255);
  image(imgMario, marioX, marioY, 150, 150);
  marioX+=marioVX; marioY+=marioVY;
  marioVX+=marioAX; marioVY+=marioAY;
}
void keyPressed(){
  if(keyCode==UP)     {marioY-=5;}
  if(keyCode==DOWN)   {marioY+=5;}
  if(keyCode==LEFT)   {marioX-=5;}
  if(keyCode==RIGHT)  {marioX+=5;}
}

5.彈跳的馬力歐


void draw(){
  background(255);
  image(imgMario, marioX, marioY, 150, 150);
  marioX+=marioVX; marioY+=marioVY;
  marioVX+=marioAX; marioVY+=marioAY;
  if(marioY>600-150) marioVY*=-0.9;
  if(marioX>400-100) marioVX*=-1;
  if(marioX<0) marioVX*=-1;
  if(marioY<0) marioVY*=-0.9;
}

2018年9月20日 星期四

week02

week02

1.練習做一個毛毛蟲



void setup()
{
     size(800,600);
}
int R=30;
void draw()
{
     ellipse(mouseX,mouseY,R,R);
     ///ellipse寫圓的函式名子
     ///括號前面兩個是位置  後面兩個是圓的大小
     R-=3;
     if(R<0) R=30;
}

2.加顏色的毛毛蟲



void setup()
{
     size(800,600);
     colorMode(HSB,100);
     ///H顏色
     ///S顏色飽和度 
     ///B顏色亮度
}
int R=30, H=0;
void draw()
{
    fill(H,100,100);
    ///只改R的顏色
    ellipse(mouseX,mouseY,R,R);
    R-=3;
    if(R<0) R=30;
    H++;
    if(H>=100) H=0;
}

3.會扭曲的毛毛蟲



void setup()
{
     size(800,600);
     colorMode(HSB,100);
}
int R=0, H=0;
int CircleX=200, CircleY=200;
void draw()
{
    fill(H,100,100);
    ellipse(CircleX,CircleY,R,R);
    R-=3;
    CircleX+=random(30)-15;
    CircleY+=random(30)-15;
    ///讓數字變亂數可以一直亂跳
    if(R<0)
    {
      R=50;
      CircleX=200; CircleY=200;
     ///要回到中心位子
    }
    H++;
    if(H>=100) H=0;
}

4.讀檔


PImage img = loadImage("snoopy.jpg");
image(img,0,0,100,100);


也可以加圖當背景
**圖檔要先拉進去才跑的了


PImage img, imgBG;
void setup(){
    size(1280,720);
    img=loadImage("snoopy.jpg");
    imgBG=loadImage("1.jpg");
}
void draw()
{
  image(imgBG,0,0,width,height);
  ///直接用原圖的大小
  image(img,mouseX,mouseY,100,130);
}

2018年9月13日 星期四

week01

week01

1.先做一個簡單的小畫家

圖像裡可能有文字

size 做出矩形的視窗大小
line 可以畫出一條線
rect 畫出矩形的四邊長度


2.覺得自字體太小可以調整

圖像裡可能有文字


3.做出一個簡單的演唱會炫光





void setup()
{
     size(800,600);
      ///先做出一個800*600的視窗大小
}
void draw()
{
     if(mousePressed) background(255,0,0);   
      ///如果按下去螢幕顏色就會變紅色
     else background(0,255,0);
      ///沒有按的話螢幕顏色就是綠色
}


4.簡易的小畫家配上筆



void setup()
{
     size(800,600);
}

void draw()
{
     if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
    ///mouse滑鼠的移動點 pmouse先前的滑鼠移動點
}



5.配上粗度跟顏色



void setup()
{
     size(800,600);
}

void draw()
{
     if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
}
void keyPressed()
{
  if(key=='1') strokeWeight(1);
  if(key=='3') strokeWeight(3);
  if(key=='9') strokeWeight(9);
  if(key=='r') stroke(255,0,0);
  if(key=='g') stroke(0,255,0);
  if(key=='b') stroke(0,0,255);
  ///strokeWeight筆粗
  ///stroke改變比的顏色 用鍵盤改變
}