2019年10月17日 星期四

week06_寶欸學習筆記

1.實作打殭屍的小遊戲


int [] zombiePos=new int[10];
void setup(){
  size(300,400);
  for(int i=0;i<10;i++){
    zombiePos[i]=int(random(3));
  }
}
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(zombiePos[0]==key-'1'){
    println("Correct");
    for(int i=0;i<9;i++) zombiePos[i]=zombiePos[i+1];
    zombiePos[0]=int(random(3));
  }
  else {
    fill(255,0,0);
    rect(0,0,width,height);
  }
}

2.播放音樂
下載.mp3檔
拉到程式碼裡
/**
 * This is a simple sound file player. Use the mouse position to control playback
 * speed, amplitude and stereo panning.
 */

import processing.sound.*;

SoundFile player;

void setup() {
  player=new SoundFile(this,"dora.mp3");
  player.play();
}
void draw(){

}
3.

3.按下滑鼠生成氣球
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("baloon.png");
}
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]--;

  }
}
void mousePressed(){
  balloonSize[nowN]=100;
  balloonX[nowN]=mouseX-balloonSize[nowN]/2;
  balloonY[nowN]=mouseY-balloonSize[nowN]/2*3;
  nowN++;
}


4.會放大的氣球
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("baloon.png");
}
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.07,nowN-1);
}
void setBalloon(float size,int i){
  balloonSize[i]=size;
  balloonX[i]=mouseX-balloonSize[i]/2;
  balloonY[i]=mouseY-balloonSize[i]/2*3;
}
void mousePressed(){
  setBalloon(10,nowN);
  nowN++;
}

5.按左鍵生成氣球,按右鍵消除氣球
PImage imgBalloon;
float []balloonX=new float[200];
float []balloonY=new float[200];
float []balloonSize=new float[200];
int nowN=0;
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup()
{
  size(500,400);
  imgBalloon=loadImage("ball.jpg");
  minim=new Minim(this);
  player=minim.loadFile("UZI.wav");

  
}
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.01,nowN-1);

}
void setBalloon(float size,int i)
{
  balloonSize[i]=size;
  balloonX[i]=mouseX-balloonSize[i]/2;
  balloonY[i]=mouseX-balloonSize[i]/2*3;
  player.rewind();
  player.play();
  

  

}

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

  
 
} 
6.期中作品:籃子接水果遊戲
初步想法:設計3~5樣不同的水果跟一種炸彈,接到水果得到對應分數,接到炸彈扣分,計時60秒,最後結算分數。

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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