2019年10月17日 星期四

互動技術week06

01_zombie

int[] zombiePos=new int[10];
void setup() {
  size(300, 400);
  for (int i=0; i<10; i++) {
    zombiePos[i] = int(random(3));
    print(zombiePos[i] +" ");
  }
}
void draw() {
  background(60, 60, 10);
  fill(128);
  for (int i=9; i>=0; i--) {
    rect(zombiePos[i]*100, 200-i*30, 100, 100);
  }
  fill(255);
  rect(0, 300, 100, 100);
  rect(100, 300, 100, 100);
  rect(200, 300, 100, 100);
}
void keyPressed() {
  if ((key=='1' && zombiePos[0]==0) || (key=='2' && zombiePos[0]==1)||(key=='3' && zombiePos[0]==2)){
    println("CORRECT");
    for (int i=0; i<9; i++) zombiePos[i] = zombiePos[i+1];
    zombiePos[9]=int(random(3));
  } else {
    fill(255, 0, 0);
    rect(0, 0, width, height);
  }
}

02__balloon

import processing.sound.*;

PImage imgBalloon;
float []balloonX=new float[200];
float []balloonY=new float[200];
float []balloonSize=new float[200];
int nowN=0;
void setup(){
  size(500,400);
  imgBalloon = loadImage("balloon.jpg");
}
void draw(){
  background(255);
  for(int i=0; i<nowN; i++){
    image(imgBalloon, balloonX[i], balloonY[i], balloonSize[i],balloonSize[i]/2*3);
    if(balloonY[i]>0) balloonY[i]--;
  }
  if(mousePressed) setBalloon(balloonSize[nowN-1]*1.05,nowN-1);
}
void setBalloon(float size,int i){
  balloonSize[i]=size;
  balloonX[nowN]=mouseX-balloonSize[nowN]/2;
  balloonY[nowN]=mouseY-balloonSize[nowN]/2*3;
}  
void mousePressed(){
  if(mouseButton==LEFT){
    setBalloon(10,nowN);
    nowN++;
  }else if(mouseButton==RIGHT){
    for(int i=0; i<nowN; i++){
      if(balloonX[i]<mouseX
         &&mouseX<balloonX[i]+balloonSize[i]
         &&balloonY[i]<mouseY
         &&mouseY<balloonY[i]+balloonSize[i]/2*3){
      setBalloon(0,i);
      }
    }
  }  
}

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...