顯示具有 HW06 標籤的文章。 顯示所有文章
顯示具有 HW06 標籤的文章。 顯示所有文章

2014年1月19日 星期日

2013年10月21日 星期一

廖中遠HW006

int []sequence=new int[1000];
PImage img;
void setup () {
  size(300, 500);
  img=loadImage("http://hydra-media.cursecdn.com/terraria-zhtw.gamepedia.com/c/c3/Zombie.png");
  for (int i=0;i<1000;i=i+1) {
    sequence[i]= int(random(3));
  }
}
int now=0;
void draw() {
  background(0);
  for (int i=now;i<now+5;i++) {
    image(img, sequence[i]*100, 400-(i-now)*100);
  }
}
void keyPressed(){
 if(key==sequence[now]+'1') now++;

}

2013年10月14日 星期一

Week06

第一節
和組員一起做期中作品,討論期中作品如何做
遊戲名稱:點球球遊戲
遊戲說明:當隨機一顆球出現時,請點選他,他會開始往下掉,如果掉到底部就輸了,點選他之後會分裂變小,最終遊戲沒有球在螢幕上,就輸了,點選到球就有分數,點到越小顆的球分數越高。
遊戲目的:訓練眼睛和手的反應速度。
組員:簡尉倫99163134

第2節
開始寫程式碼

float [] ballX = new float [50];
float [] ballY = new float [50];
float [] ballVX = new float [50];
float [] ballVY = new float [50];
float [] ballR = new float [50];
int h = 800;
int w = 800;
int test = 0;
void setup() {
  size(h, w);
  ballX[0] =  400 ;
  ballY[0] =  150;
  ballVX[0] = 0 ;
  ballVY[0] = 0.5;
  ballR[0] = 300;
}
void draw() {
  background(255);
  noStroke();
  fill(0, 255, 255);
  for (int i = 0;i<50;i++) {     
    ellipse(ballX[i], ballY[i], ballR[i], ballR[i]);
    if (ballX[i] != 0) ballVY[i] +=0.2;
    ballX[i] += ballVX[i];
    ballY[i] += ballVY[i];
  }
}
void newball(int i) {
}

void mousePressed() {
  for (int i = 0;i<50;i++) { 
    if (dist (ballX[i], ballY[i], mouseX, mouseY)<=(ballR[i]/2)) {
      ballX[i] = mouseX - ballR[i]/10;
      ballY[i] = ballY[i];
      ballVX[i] = -cos(random(PI/2));
      ballVY[i] = -ballVY[i];
      ballR[i] = ballR[i]*2/3;
      for (int j = 0 ; j < 50 ; j ++ ) {
        if (ballX[j] == 0.0 && ballY[j] == 0.0  ) {
          test ++ ;
        }
        if (test != 0) {
          ballX[j] = mouseX + ballR[i];
          ballY[j] = ballY[i];
          ballVX[j] = cos(random(PI/2)) ;
          ballVY[j] = ballVY[i];
          ballR[j] = ballR[i];
          test=0;
          break;
        }
      }
    }
  }
}

一開始出現的球

                                                             點選球後開始分裂
第3節
增加球碰到牆壁會反彈
float [] ballX = new float [50];
float [] ballY = new float [50];
float [] ballVX = new float [50];
float [] ballVY = new float [50];
float [] ballR = new float [50];
int h = 800;
int w = 800;
int test = 0;
void setup() {
  size(h, w);
  ballX[0] =  400 ;
  ballY[0] =  150;
  ballVX[0] = 0 ;
  ballVY[0] = 0.5;
  ballR[0] = 300;
}
void draw() {
  background(255);
  noStroke();
  fill(0, 255, 255);
  for (int i = 0;i<50;i++) {    
    ellipse(ballX[i], ballY[i], ballR[i], ballR[i]);
    if (ballX[i] != 0) ballVY[i] +=0.2;
    ballX[i] += ballVX[i];
    ballY[i] += ballVY[i];
  }
  attack();
  balls();
}
void newball(int i) {
}

void mousePressed() {
  for (int i = 0;i<50;i++) {
    if (dist (ballX[i], ballY[i], mouseX, mouseY)<=(ballR[i]/2)) {
      if ((mouseX - ballR[i]/10) - ballR[i]*2/3 <= 0) {
        ballY[i] = ballY[i];
        ballVY[i] = -ballVY[i] + random(1);
        ballR[i] = ballR[i]*2/3;
      }
      else {
        ballX[i] = mouseX - ballR[i]/10;
        ballY[i] = ballY[i];
        ballVX[i] = -3*cos(random(PI/2));
        ballVY[i] = -ballVY[i] + random(1);
        ballR[i] = ballR[i]*2/3;
      }
      for (int j = 0 ; j < 50 ; j ++ ) {
        if (ballX[j] == 0.0 && ballY[j] == 0.0  ) {
          test ++ ;
        }
        if (test != 0) {
          if ((mouseX + ballR[i]) + ballR[i] >= 800) {
            ballX[j] = ballX[i];
            ballY[j] = ballY[i]+ballR[i];
            ballVY[j] = ballVY[i]+random(1);
            ballVX[j] = 3*cos(random(PI/2)) ;
            ballR[j] = ballR[i];
          }
          else {
            ballX[j] = mouseX + ballR[i];
            ballY[j] = ballY[i];
            ballVX[j] = 3*cos(random(PI/2)) ;
            ballVY[j] = ballVY[i]+random(1);
            ballR[j] = ballR[i];
          }
          test=0;
          break;
        }
      }
    }
  }
}

void attack() {
  for (int i=0 ; i <50 ; i++ ) {
    if ( ballX[i] - ballR[i]/2 <= 0 || ballX[i] + ballR[i]/2 >= 800) {
      ballVX[i] = -ballVX[i];
    }
  }
}
void balls() {
  for (int i = 0 ; i <50 ;i ++) {
    for (int j = 0 ; j <50 ; j ++) {
      if (dist(ballX[j], ballY[j], ballX[i], ballX[i]) <= (ballR[i]/2 + ballR[j]/2)  ) {
        if (ballX[j] >= ballX[i]) ballVX[i] = -abs(ballVX[i]);
        else ballVX[j] = abs(ballVX[j]);
        if (ballY[j] >= ballY[i]) ballVY[i] = -abs(ballVY[i]);
        else ballVY[j] = abs(ballVY[j]);
      }
    }
  }
}
球碰到牆壁會反彈

Week6 理想目標

測試自己想要的主題

第六週

期中想做的作品:一筆劃小遊戲



關卡設計:5到10關
判定:將星星編號,並開兩個陣列,第一個陣列儲存玩家點擊星星的順序,第二個陣列,儲存正確答案。當第一個陣列儲存格存滿,便開始比對兩個陣列是否相同。若相同,便出現

Week6

##課堂內容
http://2013interaction.blogspot.tw/2013/10/week06.html

##期中作業的企劃
我們要做的是像手機遊戲的一筆畫這種遊戲
https://play.google.com/store/apps/details?id=com.ecapycsw.onetouchdrawing&hl=zh_TW

關卡設計:
規則設計:
        指定起點,告訴玩家總步數以及完成後的樣子
        操作上:
        1.滑鼠點擊第一個點,再點擊第二個點後,兩點之間會出現一條直線連起來
        2.有一個回復鈕,按下去後會回上一步(最新畫的那條線會消失)
        程式碼的判定上:
        1.判斷答案的方式
            開兩個陣列,第一個存玩家點擊的值,第二個存正確答案。
            當第一個陣列存滿後即比對第一個陣列是否和第二個陣列相同
            若相同就清畫面然後秀下一關,反之清畫面、同一關重來一次。


黃敦群的第六周作業


Week06 江昱德


第六周課堂作業

戳屁屁



目前進度
PImage img1,img2,img3;

void setup() {
  size(600,800);
  img1 = loadImage("main.jpg");
  img2 = loadImage("ass.jpg");
  img3 = loadImage("finger.jpg");
}

void draw() {
  background(255);
  image(img1, mouseX-75,580);
  image(img3,mouseX-15,580);
 
   image(img2,random(450),0);
 
}

上面的屁屁會左右亂晃

第六週上課


老鼠碰到貓會跑回去~~

float [] msX=new float[10], msY=new float[10];
float []msVX=new float[10], msVY=new float[10];
int top=0,catX=300,catY=300,S=100;
PImage ms,cat;
void setup() {
  size(600, 600);
  ms=loadImage("http://scitech.people.com.cn/mediafile/200807/07/F200807070850442343926401.jpg");
  cat=loadImage("1.jpeg");
  for (int i=0;i<10;i++) {
    newms(i);
  }
}
int bad=0;
void draw() {

if(bad==1){
  background(255,0,0);
  for(int i=0;i<10;i++){msVX[i]=0;msVY[i]=0;}
  }
  else background(0);
   image(cat,mouseX-50,mouseY-50,100,100);
  for (int i=0;i<10;i++) {
    image(ms, msX[i], msY[i], 50, 50);
    msX[i]+=msVX[i];
      msY[i]+=msVY[i];
      if(msX[i]<0 || msX[i]>600 ||msY[i]<0 || msY[i]>600) newms(i);
      if(dist(msX[i],msY[i],catX-30,catY-30)<S)                                    //老鼠碰到貓會跑回去~~
      {msVX[i]=-msVX[i];
     msVY[i]=-msVY[i];}
      //bad=1;  
  }
  }
  void newms(int i) {
    float angle=random(2*PI);
    msVX[i]=cos(angle);
    msVY[i]=sin(angle);
    int dir=int(random(4));
      if(dir==0){msX[i]=random(600);msY[i]=0;}
   else if(dir==1){msX[i]=random(600);msY[i]=600;}
    else if(dir==2){msY[i]=random(600);msX[i]=0;}
     else if(dir==3){msY[i]=random(600);msX[i]=600;}
  }
void mouseMoved(){
catX=mouseX;
catY=mouseY;

}

殭屍遊戲


int []sequence = new int[1000];
PImage imgZombie;
void setup(){
 size(300,500);
imgZombie=loadImage("go.png");
for(int i=0; i<1000; i++){
 sequence[i] = int(random(3));
}

}
int nov=0;
void draw(){
 background(0);
for(int i=nov;i<nov+5;i++){
 image(imgZombie,sequence[i]*100,400-(i-nov)*100);
}
}
void keyPressed(){
 if(key==sequence[nov]+'0') nov++;
else {}
}



按鍵加音效


import ddf.minim.*;
Minim m;
AudioPlayer player;
AudioPlayer [] tone = new AudioPlayer[2];

void setup(){
 m=new Minim(this);
player = m.loadFile("2.mp3");

tone[0]=m.loadFile("1.mp3");
tone[1]=m.loadFile("2.mp3");
 
}
void draw(){
  }
void keyPressed(){
 if(key=='1') {tone[0].rewind(); tone[0].play();}
if(key=='2') {tone[1].rewind(); tone[1].play();}
}

Week06 黃紹維


Week06 張智棠

本周期中作業進度

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

void draw () 
{
  camera(100.0, 0.0, 200.0, 50.0, 50.0, 0.0, 1.0, 0.0, 0.0);
  translate(50, 50, 0);
  rotateX(-PI/6);
  rotateY(PI/3);
  box(45);
  people() ;
}

void people () {
  ellipse (280, 600, 30, 30) ;
  line ( 280, 615, 280, 660 ) ;
  line ( 280, 625, 260, 640) ;
  line ( 280, 625, 300, 640) ;
  line ( 280, 660, 260, 680) ;
  line ( 280, 660, 300, 680) ;
}

平面障礙遊戲之人物製作與攝影機角度之測試

week06


Week06 陳奕汎

1.期中作業
void setup () 
{
  size (600, 800, P3D) ;
}

void draw () 
{
  camera(100.0, 0.0, 200.0, 50.0, 50.0, 0.0, 1.0, 0.0, 0.0);
  translate(50, 50, 0);
  rotateX(-PI/6);
  rotateY(PI/3);
  box(45);
  people() ;
}

void people () {
  ellipse (280, 600, 30, 30) ;
  line ( 280, 615, 280, 660 ) ;
  line ( 280, 625, 260, 640) ;
  line ( 280, 625, 300, 640) ;
  line ( 280, 660, 260, 680) ;
  line ( 280, 660, 300, 680) ;
}

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

Wwwk06第六週課堂作業

期中進度;
先做出火柴人主角,把人物貼上。


老師課堂示範

第六周




WEEK06

已經擬定要決定做什麼了...還在寫程式碼當中
感謝老師提醒怎麼寫