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

2020年11月16日 星期一

07161116

 水果忍者


PImage img;
float x=100, y=200, vx=3, vy= -30;//(x,y)
int fruitDie=0;
void setup(){
  size(500,500);
  img = loadImage("fruit.png");
}


void draw(){
  background(0);
  image(img,x,y,100,100);
  x += vx;
  y += vy;
  vy += 0.98;
  if(y>500) fruitDie=1;
  if(x<mouseX&&mouseX<x+100&&y<mouseY&&mouseY<y+100)fruitDie=1;
  stroke(255);line(mouseX,mouseY,pmouseX,pmouseY);
  if(fruitDie==1){
  if(frameCount%2==0){
    x=random(250); y=500; vx=random(2,3);vy=-random(28,32);
  }
  else{
      x=random(250,500);y=500; vx=-random(2,3); vy=-random(28,32);
    }
    fruitDie=0;
  }
}

Week0505050505

Week05



水果開始會跳

要下載外掛程式 才能使用音檔



切水果!

import ddf.minim.*;

Minim minim;

AudioPlayer player1;

AudioPlayer player2;

PImage img;

float x=100, y=500, vx=3, vy= -30;

int fruitDie=0;

void setup()

{

  minim = new Minim(this);

  player1 = minim.loadFile("wind.wav");

  player2 = minim.loadFile("swords.wav");

  player1.loop();

  size(500,500);

  img = loadImage("fruit.png");

}

void draw()

{

  background(0);

  image(img, x, y, 100, 100);

  x += vx;

  y += vy;

  vy += 0.98;

  if(Y>500) fruitDie=1;

  if(x<mouseX && mouseX <x+100 && y<mouseY && mouseY<y+100) fruitDie=1;

  stroke(255); line(mouseX,mouseY,pmouseX,pmouseY);

  if(fruitDie==1)

  {

    if(frameCount%2==0)

    {

      x=random(250); y=500; vx=random(2,3); vy=-random(28,32);

    }

    else

    {

      x=random(250,500); y=500; vx=-random(2,3); vy=-random(28,32);

    }

    fruitDie=0;

  }

}

void mousePressed()

{

  player2.rewind();

  player2.play();

}


 

week05 鄭皓文

                這星期我們要學如何做出類似水果忍者的遊戲,我也終於回到學校上課了,沒想到這麼快就可以製作出可以實際遊玩的遊戲,那麼接下來進入實作階段。

第一步比較簡單,先讓水果可以顯示,並加上我們上星期寫過的物理效果,背景要更改,否則會留下拖影,效果如圖:

這樣就可以看到一個香蕉在螢幕上四處蹦躂

程式碼如下

PImage img;

float x=100, y=500, vx=3,vy=-30;

void setup()

{

  size(500,500);

  img=loadImage("fruit.png");

}

void draw()

{

  clear();

  image(img,x,y,100,100);

  x+=vx;

  y+=vy;

  vy+=0.98;

  if(y>500)

  {

    x=random(400); y=500; vx=random(-5,5); vy=-30;

  }

}

做完這一步就可以加上刀切效果了,切中了之後水果消失,然後再隨機生成一個新的水果,效果如下:










      雖然圖上看不出來就是了,下面我們為它添加上音效,畢竟水果忍者這個遊戲沒有音效爽快感直接減半

在這裡添加sound函式庫就有音效了 

最後添加上音效的程式碼如下:

import processing.sound.*;

SoundFile sound1;

SoundFile sound2;

SoundFile sound3;

SoundFile sound4;

PImage img;

float x=100, y=500, vx=3,vy=-30;

int fruitDie=0;

int point=0;

int mouseMove=0;

void setup()

{

  size(500,500);

  sound1= new SoundFile(this, "blade-ink-2.wav");

  sound2= new SoundFile(this, "Bonus-Explosion-1.wav");

  sound3= new SoundFile(this, "Bonus-Explosion-3.wav");

  sound4= new SoundFile(this, "Bonus-Explosion-5.wav");

  img=loadImage("fruit.png");

}

void draw()

{

  clear();

  image(img,x,y,100,100);

  x+=vx;

  y+=vy;

  point++;

  vy+=0.98;

  if(y>500) fruitDie=1;

if(x<mouseX&&mouseX<x+100&&y<mouseY&&mouseY<y+100 && mouseMove==1)

  {

    sound1.play();

    fruitDie=1;

    if(point<10) sound4.play();

    else if(point<20) sound3.play();

    else if(point<30)sound2.play();

  }

  stroke(255); line(mouseX,mouseY,pmouseX,pmouseY);

  if(mouseX==pmouseX && mouseY==pmouseY) mouseMove=0;

  else mouseMove=1;

  if(fruitDie==1)

  {

    x=random(400); y=500; vx=random(-5,5); vy=-30;

    fruitDie=0;

    point=0;

  }

}

    這樣就寫出了一個可以遊玩的小遊戲,說實話進度比我想像的快了不少,但收穫挺多。




2020年11月14日 星期六

KIO Week05

 補Week05

準備製作水果忍者

水果圖片


將水果加入移動及重力產生拋物線

如果水果座標超出邊界 生成新的水果

準備切水果
宣告水果死亡變數
如果超出邊界水果死亡
如果滑鼠進入水果圖示內 水果死亡

開新檔案測試外掛聲音程式(sound)

另一種聲音外掛程式(minim)比較不會出錯

最後將聲音加入水果忍者
背景音效
如果水果被切 水果死亡 播放音效





2020年11月2日 星期一

week05 水果忍者

 水果忍者

圖片會由上往下掉落



PImage img;
float x=100, y=200, vx=3, vy= -30;//(x,y)
int fruitDie=0;
void setup(){
  size(500,500);
  img = loadImage("fruit.png");
}


void draw(){
  background(0);
  image(img,x,y,100,100);
  x += vx;
  y += vy;
  vy += 0.98;
  if(y>500) fruitDie=1;
  if(x<mouseX&&mouseX<x+100&&y<mouseY&&mouseY<y+100)fruitDie=1;
  stroke(255);line(mouseX,mouseY,pmouseX,pmouseY);
  if(fruitDie==1){
  if(frameCount%2==0){
    x=random(250); y=500; vx=random(2,3);vy=-random(28,32);
  }
  else{
      x=random(250,500);y=500; vx=-random(2,3); vy=-random(28,32);
    }
    fruitDie=0;
  }
}

2020年10月19日 星期一

weeeeek05

 PART 1

size(500,400);

rect(100,100,200,100);

fill(255,0,0);

textSize(40);

text("Hello",100,100);

PART 2

設定上改細明體


PART 3


int [][]A={{1,1,1},
           {0,1,0},
           {0,1,1},
           {1,1,1}};
              
size(300,400);
for(int i=0;i<4;i++)
{
  for(int j=0;j<3;j++)
  {
    if(A[i][j]==0) fill(0);
    else fill(255,255,0);
    
    rect(j*100,i*100,100,100);
  }
}
PART 4
int [][]A={{1,2,2,2},
           {0,1,1,1},
           {0,1,1,1},
           {2,2,2,2}};
PImage bear,tiger;
void mousePressed()
{
  int i = int(mouseY/100);
  int j = int(mouseX/100);
  A[i][j]=0;
}
void setup()
{
  size(400,400);
  bear=loadImage("bear.png");
  tiger=loadImage("tiger.png");
}
void draw()
{
  background(0);
  for(int i=0;i<4;i++)
  {
    for(int j=0;j<4;j++)
     {
       if(A[i][j]==1) image(bear,j*100,i*100,100,100);
       if(A[i][j]==2) image(tiger,j*100,i*100,100,100);
     }
  }
  ellipse(mouseX,mouseY,25,25);
  text("mouseX:"+mouseX + "mouseY:" + mouseY,100,100);
}


2020年10月13日 星期二

𝔍𝔒𝔗𝔇-week5

今日進度:

總目標:做出水果忍者

小目標:

1.設定畫面

2.設定拋物線

3.加入刀子及切水果的功能

4.建立聲音和放入

進階:

加入計分器

                                               ↑設定畫面和插入圖片
                                             ↑實際遊玩影片(沒聲音)

                                             ↑實際遊玩影片(有聲音)

程式:

import ddf.minim.*; //引入聲音的函式

Minim minim;

AudioPlayer player1; //定義音檔1

AudioPlayer player2;//定義音檔2

PImage img;

float x=100, y=500, vx=3, vy=-30;

int fruitDie=0;

void setup()

{

  size(500,500);

  img = loadImage("fruit.png");

  minim = new Minim(this);

  player1 = minim.loadFile("zapsplat_warfare_knife_metal_blade_edge_scrape_wood_008_48474.mp3"); 

  player2 = minim.loadFile("2019-06-17_-_Super_Spiffy_-_David_Fesliyan.mp3");

  player2.loop();

}

void draw()

{

  background(255);

  image(img, x, y, 100, 100);

  x+=vx;

  y+=vy;

  vy+=0.98;

  if(x<mouseX && mouseX<x+100 && y<mouseY && mouseY<y+100) //當滑鼠切到水果時執行下列動作

  {

    fruitDie=1;

    player1.rewind();

    player1.play();

  }

  stroke(0);line(mouseX,mouseY,pmouseX,pmouseY); //設定滑鼠畫出的刀痕

  if(y>500) //如果超過畫面,水果重生

  {

    fruitDie=1;

  }

  if(fruitDie==1) //如果水果死亡,會隨機重生高度跟起始位置

  {

    if(frameCount%2==0)

    {

      x=random(250);y=500;vx=random(2,3);vy=-random(28,32);

    }

    else

    {

      x=random(250,500);y=500;vx=-random(2,3);vy=-random(28,32);

    }

    fruitDie=0;

  }

  

  

}

                                            ↑實際遊玩影片(有聲音和計分器)
進階程式:

import ddf.minim.*; //引用音檔函式

Minim minim;

AudioPlayer player1;

AudioPlayer player2;

PImage img;

float x=100, y=500, vx=3, vy=-30;

int fruitDie=0,point=0;

PFont f; //定義字體及大小

void setup()

{

  size(500,500);

  img = loadImage("fruit.png"); //插入水果圖片

  minim = new Minim(this);

  player1 = minim.loadFile("zapsplat_warfare_knife_metal_blade_edge_scrape_wood_008_48474.mp3"); 

  player2 = minim.loadFile("2019-06-17_-_Super_Spiffy_-_David_Fesliyan.mp3");

  player2.loop();

  f=createFont("Arial", 20, true); //設定字體及大小

}

void draw()

{

  background(255);

  textFont(f,16);

  fill(0);

  text("Point:",0,20); //印出計分器的位置及大小

  text(point,50,20);//印出分數

  image(img, x, y, 100, 100);

  x+=vx;

  y+=vy;

  vy+=0.98;

  if(x<mouseX && mouseX<x+100 && y<mouseY && mouseY<y+100) //如果滑鼠切到水果加一分並讓水果重生

  {

    fruitDie=1;

    player1.rewind();

    player1.play();

    point+=1;

  }

  stroke(0);line(mouseX,mouseY,pmouseX,pmouseY);

  if(y>500)

  {

    fruitDie=1;

  }

  if(fruitDie==1)//當水果重生會隨機生成位置

  {

    if(frameCount%2==0)

    {

      x=random(250);y=500;vx=random(2,3);vy=-random(28,32);

    }

    else

    {

      x=random(250,500);y=500;vx=-random(2,3);vy=-random(28,32);

    }

    fruitDie=0;

  }

  

  

}

https://youtu.be/LF8-ACcTiHA

https://youtu.be/fDWcevJdXF8

https://youtu.be/cH1i_NtZkUQ

2020年10月12日 星期一

week ╯ 05 ╮

 week05💣💀


♥先將一張圖匯入processing->logo.png


♥讓圖片碰到邊框彈跳、不斷輪迴

---


♥將背景換成黑色(看不到圖片路徑)
滑鼠碰到圖片時,圖片消失

♥程式碼-
PImage img;
float x=100,y=500,vx=3,vy=-30;
int fruitDie=0;
void setup(){
  size(500,500);
  img= loadImage("logo.png");
}
void draw(){
  background(0);
  image(img,x,y,100,100);
  x+=vx;
  y+=vy;
  vy+=0.98;
  if(y>500) fruitDie=1;
  if(x<mouseX && mouseX < x+100 && y<mouseY && mouseY<y+100) fruitDie=1;
  stroke(255); line(mouseX,mouseY,pmouseX,pmouseY);
  if(fruitDie==1){
    if(frameCount%2==0){
      x=random(250); y=500; vx=random(2,3); vy=-random(28,32);
    }else{
      x=random(250,500); y=500; vx=random(2,3); vy=-random(28,32);
  }
  fruitDie=0;
  }
}

---

♥加入音效

速寫本->引用庫文件->添加庫文件->install sound

♥程式碼-

import processing.sound.*;

SoundFile sound1;

SoundFile sound2;

void setup(){

  size(300,300);

  sound1 = new SoundFile(this," ");

  sound2 = new SoundFile(this," ");

  //sound.play();///只能播一次

  sound2.loop;///自動重複播放

}  

  void draw(){

    

  }

  vouid mousePressed(){

    sound1.play();///按下滑鼠播放

  }

---

接水果遊戲

♥程式碼-

float [] fruitX = new float[10];

float [] fruitY = new float[10];

float kidX=150,kidY=450;

int score=0;

void setup()

{

  size(500,500);

  for(int i=0;i<10;i++)

  {

    fruitX[i] = random(50,450);

    fruitY[i] = -i*100;

  }

}

void draw()

{

  background(255);

  rect(kidX,kidY,50,80);

  kidX=mouseX;

  for(int i=0;i<10;i++)

  {

    ellipse(fruitX[i],fruitY[i],60,80);

    fruitY[i]++;

    if(fruitY[i]>kidY)

    {

      if(kidX < fruitX[i] && fruitX[i] < kidX+80)

      {

        score+=10;

        fruitY[i]=0; fruitX[i]=random(50,450);

      }

      else

      {

        fruitY[i]=0; fruitX[i]=random(50,450);

      }

    }

  }

} 




WEEK-5

Processing

水果忍者:



PImage img;
float x=100, y=500, vx=3, vy=-30;
int fruitDie=0;
void setup(){
  size(500,500);
  img = loadImage("mango.png");
}
void draw(){
  background(0);
  image(img, x,y, 100,100);
  x += vx;
  y += vy;
  vy += 0.98;
  if(y>500) fruitDie=1;
  if(x<mouseX && mouseX<x+100 && y<mouseY && mouseY<y+100) fruitDie=1;
  stroke(255); line(mouseX,mouseY,pmouseX,pmouseY);
  if(fruitDie==1){
    if(frameCount%2==0){
      x=random(250); y=500; vx=random(2,3); vy=-random(28,32);
    }else{
      x=random(250,500); vx=-random(2,3); vy=-random(28,32);
    }
    fruitDie=0;
  }
}

import ddf.minim.*;
Minim minim;
AudioPlayer player1;
AudioPlayer player2;
void setup(){
  size(200,200);
  minim = new Minim(this);
  player1 = minim.loadFile("rain.wav");
  player2 = minim.loadFile("Wate.wav");
  player1.loop();
}
void draw(){
  
}
void mousePressed(){
  player2.rewind();
  player2.play();
}

import ddf.minim.*;
Minim minim;
AudioPlayer player1;
AudioPlayer player2;
PImage img;
float x=100, y=500, vx=3, vy=-30;
int fruitDie=0;
void setup(){
  size(500,500);
  img = loadImage("mango.png");
  minim = new Minim(this);
  player1 = minim.loadFile("rain.wav");
  player2 = minim.loadFile("swords.wav");
  player1.loop();
}
void draw(){
  background(0);
  image(img, x,y, 100,100);
  x += vx;
  y += vy;
  vy += 0.98;
  if(y>500) fruitDie=1;
  if(x<mouseX && mouseX<x+100 && y<mouseY && mouseY<y+100){
    fruitDie=1;
    player2.rewind();
    player2.play();
  }
  stroke(255); line(mouseX,mouseY,pmouseX,pmouseY);
  if(fruitDie==1){
    if(frameCount%2==0){
      x=random(250); y=500; vx=random(2,3); vy=-random(28,32);
    }else{
      x=random(250,500); vx=-random(2,3); vy=-random(28,32);
    }
    fruitDie=0;
  }
}




week05-水果忍者

 





PImage img;

float x=100,y=500,vx=3,vy=-30;

int fruitDie=0;

void setup(){

  size(500,500);

  img = loadImage("fruit.png");

}

void draw(){

  background(0);

  image(img,x,y,100,100);

  x += vx;

  y +=vy;

  vy +=0.98;

  if(y>500) fruitDie=1;

  if(x<mouseX&&mouseX<x+100&&y<mouseY&&mouseY<y+100){

    fruitDie=1;

    player2.rewind();

    player2.play();

  } 

  stroke(255);line(mouseX,mouseY,pmouseX,pmouseY);

  if(fruitDie==1){

    if(frameCount%2==0){

      x=random(250);y=500;vx=random(2,3);vy=-random(28,32);

    }else{

      x=random(250);y=500;vx=random(2,3);vy=-random(28,32);

    }

    fruitDie=0;

  }

}

丹ㄉ水果忍者

 首先我們先像上禮拜一樣弄貼圖上去

然後再來就是這個程式碼
很酷很酷的就會了水果忍者
再來就可以開切了
但我們想要加聲音進去
下次再教你ㄅ






week05切水果小遊戲

 

PImage img;

float x=100, y=500, vx=3, vy=-30; 設定位置以及加速度

int fruitDie=0;

void setup()

{

  size(500,500);

  img = loadImage("fruit.png");

}

void draw()

{

  background(0);                         設定背景消殘影

  image(img ,x ,y ,100 ,100);      圖片位置及大小

  x+= vx;                                     水平加速度

  y+= vy;                                     垂直加速度

  vy+=0.98;

  if(y>500) fruitDie=1;               當水果掉下去時fruitDie=1

  if(x<mouseX && mouseX<x+100 && y<mouseY && mouseY<y+100)fruitDie=1;      當滑鼠碰到水果時fruitDie=1

  stroke(255);line(mouseX,mouseY,pmouseX,pmouseY);   畫線

  if(fruitDie==1)                          當fruitDie=1時將水果消失

  {

    if(frameCount%2==0)

    {

      x=random(250);y=500;vx=random(2,3);vy=-random(28,32);

    }

    else

    {

      x=random(250,500);y=500; vx=-random(2,3);vy=-random(28,32);

    }

    fruitDie=0;              fruitDie=0數值刷新將水果刷新

  }

}

import processing.sound.*;     呼叫外掛
SoundFile sound1;
SoundFile sound2;
void setup()
{
  size(300,300);
  sound1=new SoundFile(this, "bubbs.wav");
  sound2=new SoundFile(this, "thund.wav");
}
void draw()
{
}
void mousePressed()
{
  sound1.play();
}


import ddf.minim.*;      呼叫外掛
Minim minim;
AudioPlayer player1;
AudioPlayer player2;    
void setup()
{
  minim = new Minim(this);
  player1=minim.loadFile("bubbs.wav");
  player2=minim.loadFile("thund.wav");
  player1.loop();
}
void draw()
{
}
void mousePressed()
{
  player2.rewind();
  player2.play();
}


import ddf.minim.*;
Minim minim;
AudioPlayer player1;
AudioPlayer player2;
PImage img;
float x=100, y=500, vx=3, vy=-30;
int fruitDie=0;
void setup()
{
  size(500,500);
  img = loadImage("fruit.png");
  minim = new Minim(this);
  player1=minim.loadFile("bubbs.wav");
  player2=minim.loadFile("thund.wav");
  player1.loop();
}
void draw()
{
  background(0);
  image(img ,x ,y ,100 ,100);
  x+= vx;
  y+= vy;
  vy+=0.98;
  if(y>500) fruitDie=1;
  if(x<mouseX && mouseX<x+100 && y<mouseY && mouseY<y+100)
  {
    fruitDie=1;
    player2.rewind();
    player2.play();
  }
  stroke(255);line(mouseX,mouseY,pmouseX,pmouseY);
  if(fruitDie==1)
  {
    if(frameCount%2==0)
    {
      x=random(250);y=500;vx=random(2,3);vy=-random(28,32);
    }
    else
    {
      x=random(250,500);y=500; vx=-random(2,3);vy=-random(28,32);
    }
    fruitDie=0;
  }
}