alanhc 互動技術-week6

alanhc 互動技術-week6

October 17, 2019

打殭屍小遊戲 [ 連結 ]




生成10個殭屍位置

for (int i=0; i<10; i++) {
    zombiePos[i] = intrandom(3) ); 
    print(zombiePos[i]+" ");
}
畫殭屍
for (int i=9; i>=0; i--) {
    rect(zombiePos[i]*100200-i*30,100,100); 
}
判斷殭屍是否被按否則視窗變紅
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];//move zombie
    zombiePos[9]=intrandom(3) );
else {
    fill(255,0,0);
    rect(0,0,width,height);
}
key:按對了更新螢幕且要新增一個新的
    for (int i=0; i<9; i++) zombiePos[i]=zombiePos[i+1];//move zombie
    zombiePos[9]=intrandom(3) );

小提醒:
zombiePos[i] 的範圍 [0,2]
所以殭屍的X為 zombiePos[i]*100




聲音


youtubeto

import processing.sound.*;
SoundFile player;
player = new SoundFile(this"rain.wav");
player.play();
不能播QQ

Minim

0. 查範例
1. 匯入及宣告

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

Minim minim;
AudioPlayer player;

2. 實體化及讀音樂檔

minim = new Minim(this);
player = minim.loadFile("cymbal.wav");

3. 播放 * rewind() 是倒帶

player.rewind();
player.play();
完整程式碼
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;
AudioInput input;

void setup()
{
  minim = new Minim(this);
  player = minim.loadFile("cymbal.wav");
}
void mousePressed()
{
  player.rewind(); 
  player.play();
}

氣球

使用陣列使其氣球可以一直生成
void mousePressed()
{
  balloonSize[nowN]=10;
  balloonX[nowN] = mouseX-balloonSize[nowN]/2;
  balloonY[nowN] = mouseY-balloonSize[nowN]/2*3;
  nowN++;
  bigger=1;
}
void mouseReleased()
{
  bigger=0;
}
畫畫面
void draw()
{
  background(255);
  for (int i=0; i
    
    image(imgBalloon, balloonX[i], balloonY[i], balloonSize[i], balloonSize[i]);
    if (balloonY[i]>0) {
      balloonY[i]--;
    } 
  }
  if (bigger==1) balloonSize[nowN-1]+=1;
  println(bigger+" "+nowN);
}
氣球可以充氣
if (mousePressed) balloonSize[nowN-1]+=1;

小技巧:解決氣球充氣後偏移
void setBalloon(int size, int i)
{
  balloonSize[nowN]=10;
  balloonX[nowN] = mouseX-balloonSize[nowN]/2;
  balloonY[nowN] = mouseY-balloonSize[nowN]/2*3;
}

void mousePressed()
{
  setBalloon(10, nowN);



組別:

曾宏鈞
想做的遊戲: