2019年10月17日 星期四

呼嚕嚕的p語言日記-week06

1.早八:模擬打殭屍遊戲
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); 
  
  }

}















2.正課(播放聲音)
import processing.sound.*;
SoundFile soundfile;
void setup() {
  size(640, 360);
  background(255);
  soundfile = new SoundFile(this, "xin.mp3");
  soundfile.loop();
}   
void draw()
{

}













3.另一種方法

import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup()
{
  size(500,500);
  minim=new Minim(this);
  player=minim.loadFile("UZI.wav");



}

void draw()
{


}
void mousePressed()
{
  player.rewind();
  player.play();


}















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("ball.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]--;
  
  
  }

}

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














5.讓氣球可以變大
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("ball.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.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;

}

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





















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

  
 
} 
.

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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