顯示具有 05160815_吳彥輝 標籤的文章。 顯示所有文章
顯示具有 05160815_吳彥輝 標籤的文章。 顯示所有文章

2019年1月20日 星期日

接雞蛋

float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[] eggDie=new boolean[100];
void setup() {
  size(800,600);
  for (int i=0;i<100;i++) {
  eggX[i]=random(100,700);
  eggY[i]=-random(2000);
  eggDie[i]=false;
  }
}
void draw() {
  background(255);
  rect(mouseX-50,mouseY-25,100,50);
  for (int i=0;i<100;i++){
  if(eggDie[i])continue;
  ellipse(eggX[i],eggY[i],80,100);
  eggY[i]+=5;
  if(eggY[i]>700) eggY[i]=-2000+600;
  if( dist(mouseX-50,mouseY-25,eggX[i],eggY[i])<50){
    eggDie[i]=true;
    }
  }
}

}

2019年1月3日 星期四

week17期末作品吳彥輝&宋偉榤

期末作品展示:



https://youtu.be/KopGkZS-uFA
我們做的是貪吃蛇
賣點是可以透過搖桿上下左右控制
最困難的地方是要在時間內完成

2018年12月27日 星期四

week16

期末作品
processing:

import processing.serial.*;
Serial myPort;
int state=0;
int remainTime=0;
float rockX=150, rockY=150, rockVX=0, rockVY=0;
float []fireX=new float[100];
float []fireY=new float[100];
boolean [] fireAlive=new boolean[100];
float []catFireX=new float[100];
float []catFireY=new float[100];
int catFireN=0;
int aaa=0;
byte []data=new byte[3];

PImage imgBG;
PImage imgBB;
PImage imgWW;
void setup(){
  String portName=Serial.list()[0];
  myPort = new Serial(this, "COM3",9600);
  imgBG=loadImage("650.jpg");
  imgBB=loadImage("123.png");
  imgWW=loadImage("11.jpg");

  size(600,400);
  for(int i=0;i<10;i++)
  {
    fireX[i]=random(500);
    fireY[i]=random(300);
    fireAlive[i]=true;
  }
}
void draw(){
  if(state==0){
    drawOP();
  }else if(state==1){
    drawPlayer();
  }else if(state==2){
    drawED();
  }else if(state==3){
    drawWIN();
  }
}
void drawED(){
  background(0);
  fill(#FF1008);
  textSize(30);text("Oops! Game Over Loser~~~",100,200);
 
}
void drawWIN(){
  image(imgWW,0,0,width,height);
  fill(#FF1008);
  textSize(30);text("You win!",100,200);
  text("Great~~~",200,300);
}
void drawPlayer(){
  //getData();
  //if(rockY<500) rockY+=10;
  if(myPort.available()>0){
    myPort.readBytes(data);
    println(data);
    if(data[0]==0)rockY=200;
    else rockVX=(data[0]-64)/50.0;
    if(data[1]==0)rockX=200;
    else rockVY=(data[1]-64)/50.0;
  }
  
  image(imgBG,0,0,width,height);
  fill(#0242DE);
  textSize(30);text("Playing...",10,30);
  text("Time: "+remainTime,10,70);
  remainTime--;
  if(remainTime<=0) state=2;
  else if(aaa>9 ) state=3;
  
  for(int i=0;i<100;i++){
    fill(#F2B414);
    if(fireAlive[i]){
      ellipse(fireX[i],fireY[i],10,10);
      if(dist(rockX,rockY,fireX[i],fireY[i])<10)
      {
        fireAlive[i]=false;
        aaa++;
        catFireX[catFireN]=rockX;
        catFireY[catFireN]=rockY;
        catFireN++;
      }
    }
  }
  fill(#3E9B64); ellipse(rockX,rockY,30,30);
  catFireX[0]=rockX;
  catFireY[0]=rockY;
  rockX += rockVX;
  rockY += rockVY;
  noStroke();
  for(int i=catFireN-1;i>0;i--){
    fill(#F2B414);
    ellipse(catFireX[i],catFireY[i],10,10);
    if(frameCount%3==0){
      catFireX[i]=catFireX[i-1];
      catFireY[i]=catFireY[i-1];
    } 
  }
}


void keyPressed(){
  if(keyCode==UP) rockVY=-1;
  if(keyCode==DOWN) rockVY=+1;
  if(keyCode==RIGHT) rockVX=+1;
  if(keyCode==LEFT) rockVX=-1;
  }
void keyReleased(){
  if(keyCode==UP) rockVY=0;
  if(keyCode==DOWN) rockVY=0;
  if(keyCode==RIGHT) rockVX=0;
  if(keyCode==LEFT) rockVX=0;
  }
void drawOP(){
  image(imgBG,0,0,width,height);
  fill(#6FB1FF);
  textSize(30);text("You need to eat all the cookies ",10,100);
  image(imgBB,300,150,200,300);
  if(  dist(mouseX,mouseY,450,200)<50)
  {
    if(mousePressed&&mouseButton==LEFT){
      state=1;
      remainTime=20*60;
    }
  }
}


arduno:

void setup() {
  pinMode(2, INPUT_PULLUP);
  Serial.begin(9600);
}
byte data[3];
void loop() {
  int x = analogRead(A0);
  int y = analogRead(A1);
  data[0]=x/8;
  data[1]=y/8;
  if(data[0]==0)data[0]=1;
  if(data[1]==0)data[1]=1;
  if(digitalRead(2)==LOW) data[2]=1;
  else data[2]=0;
  Serial.write(data,3);
  delay(50);
}

2018年12月13日 星期四

week14


int sensorPin = A0;    
int ledPin = 13;      
int sensorValue = 0;

void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);
  // turn the ledPin on
  digitalWrite(ledPin, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);
  // turn the ledPin off:
  digitalWrite(ledPin, LOW);
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);

2018年12月6日 星期四

week13

使用Joystick來移動X方向&跳起來

void setup(){
  pinMode(2,INPUT);
  digitalWrite(2,HIGH);
  Serial.begin(115200);
}
void loop(){
  int x = x/8;
  if(x==0)x=1;
  Serial.write(x);
  if(digitalRead(2)==LOW)Serial.write(0);
  delay(50);
  }

Serial myPort;
void setup(){
  size(800, 600);
  myPort = new Serial(this, "COM7", 115200);

}
float rockX=400, rockY=500, rockVX;
void draw(){
  if ( myPort.available() > 0) {
  int val = myPort.read();
  if(val==0) rockY=300;
  else rockVX = (val-66)/20.0;
  println(val);
  }
  background(255);
  ellipse(rockX ,rockY, 50,50);
  if(rockY<500) rockY+=10;
  rockX += rockVX;
}

2018年11月15日 星期四

week10


下載驅動程式
官網下載
https://www.arduino.cc/en/Main/Software
接上makeuno麵包板
執行安裝檔安裝完成後,確認電腦是否有讀到板子打開裝置管理員檢查連接埠打開Arduino程式檢查

2018年11月1日 星期四

week08其中作品吳彥輝宋偉榤


https://youtu.be/bBBuzQzNLT4

我們這組是在做貪吃蛇,但這遊戲跟大家想像中的
貪吃蛇不一樣,我們的蛇會一直吃餅乾然後那些吃
到的餅乾都會跟這蛇頭跑,然後在限時內完成

我們是用鍵盤的上下左右來操控蛇的頭

我們這個遊戲有一個很厲害的地方,就是不管怎樣
一定會輸,因為時間根本不夠吃完全部

原本樣做經典版貪吃蛇,但試很多次都做不出來,
所以只好透過老師的教導來改良這個遊戲,把它變
簡單

2018年10月25日 星期四

week07

血條
int life=10;
boolean gameOver=false;
void setup(){
  size(500,500);
}
void draw(){
  background(0,0,205);
  fill(255); rect(50,50, life*10,20);
  fill(255,0,0); rect(50,50, life*10,20);
  if(gameOver){
    textSize(40);
    text("Game Over",150,150);
  }
}
void mousePressed(){
  life--;
  if(life<=0) gameOver=true;
}

2018年10月18日 星期四

week06

開音檔
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
  minim = new Minim(this);
  player=minim.loadFile("groove.mp3");
  player.play();
}
void draw(){
}
水果忍者
float [] fruitX=new float[20];
float [] fruitY=new float[20];
float [] fruitVX=new float[20];
float [] fruitVY=new float[20];
void setup (){
  size(800,600);
  for(int i=0;i<20;i++){
    fruitX[i]=random(800);    fruitVX[i]=3;
    fruitY[i]=700;  fruitVY[i]=-35;
  }
}
void draw(){
  background(0);
  for(int i=0;i<20;i++)
  {
    ellipse(fruitX[i],fruitY[i], 100,100);
    fruitX[i]+=fruitVX[i];
    fruitY[i]+=fruitVY[i];
    fruitVY[i]+=0.98;
  }
}


2018年10月11日 星期四

week05

接雞蛋遊戲
float[] eggX=new float[100];
float[] eggY=new float[100];
void setup(){
  size(800,600);
  for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
  }
}
void draw(){
  background(255);
  for(int i=0;i<100;i++){
    ellipse(eggX[i], eggY[i],80,100);
    eggY[i]+=5;
  }
}


float[] eggX=new float[100];float[] eggY=new float[100];                          
boolean[] eggDie=new boolean[100];
void setup(){  size(800,600);  
for(int i=0;i<100;i++){
    eggX[i]=random(100,700);
    eggY[i]=-random(2000);
               eggDie[i]=false;  }
}
void draw(){
  background(255);
  rect(mouseX-50, mouseY-25,100,50);
  for(int i=0;i<100;i++){//for all eggs
    if(eggDie[i])continue;//continue to for loop
    ellipse(eggX[i], eggY[i],80,100);
    eggY[i]+=5; 
   if(eggY[i]>700) eggY[i]=-2000+600;
    if(dist(mouseX-50,mouseY-25,eggX[i],eggY[i])<50){
                        eggDie[i]=true;  }
}
}

2018年10月4日 星期四

week04

輸入文字
改變文字大小與顏色
void setup(){
  size(800,600);

}
void draw(){
  fill(255,0,0); rect(100,100,100,100);
  textSize(80);
  fill(0,0,0); text ("Start!",100,100);
}


製作子彈
讓子彈飛
void setup(){
  size(800,600);

}
void draw(){
  background(255);

  fill(255,0,0); rect(100,100,100,100);
  if(bulletFlying){
    ellipse(bulletX,bulletY, 50,50);
    bulletX+=3;
  }
}
float bulletX=100, bulletY=100;
boolean bulletFlying=false;
void keyPressed(){
  bulletFlying=true;
}

發射多個子彈
使用FOR迴圈
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;
  }
}
}

float []bulletX= new float[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++;
}

西部牛仔
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

颱風天畫圓

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));
 }
}


畫更多線
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+=30){
      noFill();
      triangle(250,250,
      250+R*cos(angle),    250+R*sin(angle),
      250+R*cos(angle+PI/3),250+R*sin(angle+PI/3));
  }
 }
}


馬力歐
PImage imgMario;
float marioX=0, marioY=0, marioVX=0, marioVY=0;
void setup(){
  size(400,600);
  imgMario = loadImage("Mario.png");
}
void draw(){
  background(255);
  image(imgMario, marioX, marioY, 100 ,150);
  marioX += marioVX;
  marioY += marioVY;
}
void keyPressed(){
  if(keyCode==UP)    {marioY-=5;}
  if(keyCode==DOWN)  {marioY+=5;}
  if(keyCode==LEFT)  {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}

2018年9月20日 星期四

week02

畫別人的圖形
圓形半徑

加入漸層色彩
void setup(){
  size(400,400);
  colorMode(HSB,100);
}
int R=30, H=0;
void draw(){
  fill(H,100,100);
  ellipse(mouseX,mouseY,R,R);
  R-=3;
  if(R<0) R=30;
  H++;
  if(H>=100) H=0;
}


改random質
void setup(){
  size(400,400);
  colorMode(HSB,100);
}
int R=50, H=0;
int CircleX=200,CircleY=200;
void draw(){
  fill(H,100,100);
  ellipse(CircleX,CircleY,R,R);
  R-=2;
  CircleX+=random(30)-15;
  CircleY+=random(30)-15;
  if(R<0) {
    R=50;
    CircleX=200; CircleY=200;
    }
  H++;
  if(H>=100) H=0;
}

匯入圖檔
用滑鼠移動
PImage img;
void setup(){
  size(800,600);
   img = loadImage("00001.jpg");
}
void draw(){
  image (img,mouseX, mouseY,100,100);
}


匯入背景
PImage img, imgBG;
void setup(){
  size(1280,720);
   img = loadImage("0003.png");
   imgBG = loadImage("0002.jpg");
}
void draw(){
  image(imgBG,0,0,width,height);
  image (img,mouseX, mouseY,100,130);
}




2018年9月13日 星期四

week01

製作演唱會手機程式

用滑鼠畫線
void setup(){
   size(800,600);
}
void draw(){
  line(mouseX,mouseY,pmouseX,pmouseY);
}

void setup(){
   size(800,600);
}
void draw(){
  line(mouseX,mouseY,pmouseX,pmouseY);
}
void keyPressed(){
  if(key=='1') strokeWeight(1);
  if(key=='2') strokeWeight(2);
  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);
}