創作內容

3 GP

processing程式分享

作者:星寒淚│2020-06-22 20:30:45│巴幣:1,004│人氣:274
乒乓球

import ddf.minim.*;

Minim minim;

AudioPlayer bgm;
AudioPlayer song;

float ballX,ballY;
float ballSize;
float centerX,centerY;
float paddleW,paddleH;
float rightPaddleX,rightPaddleY;
float leftPaddleX,leftPaddleY;

float speedX,speedY;

boolean isPlaying;
boolean songing;

final int TOTAL_LIFE = 3;
int score;
int life;

void setup(){
  size(640,400);
  background(255);

  minim = new Minim(this);
  
  bgm =minim.loadFile("");
  song =minim.loadFile("");
  bgm.play();
  bgm.loop();
  
  songing = false;
  
  centerX = width/2;
  centerY = height/2;
  ballX = centerX;
  ballY = centerY;
  ballSize  = 15;
  paddleW = 10;
  paddleH = 50;
  rightPaddleX = width-paddleW*2;
  rightPaddleY = centerY-paddleH/2;
  leftPaddleX = paddleW;
  leftPaddleY = centerY-paddleH/2;
  
  score = 0;
  life = TOTAL_LIFE;
  
  //middle line
  stroke(128);
  line(centerX,0,centerX,height);
  
  //ball
  noStroke();
  fill(255,0,0);
  ellipse(centerX,centerY,ballSize,ballSize);
  speedX = random(-5,5);
  speedY = random(-5,5);
  
  //paddles
  fill(0,0,255);
  rect(rightPaddleX,rightPaddleY,paddleW,paddleH);
  rect(leftPaddleX,leftPaddleY,paddleW,paddleH);
  
  isPlaying=false;
  
  
}

void draw(){
  if(isPlaying){
    background(255);
  
    //middle line
    stroke(128);
    line(centerX,0,centerX,height);
  
    //ball
    noStroke();
    fill(255,0,0);
    ellipse(ballX,ballY,ballSize,ballSize);
    ballX +=speedX;
    ballY +=speedY;
    
    //boundary detection
    if(ballX<leftPaddleX+paddleW ){
      speedX *=-1;  
    }
    if(ballY<0 ||ballY>height){
      speedY *=-1;  
    }  
    
    //hit detection
    if(ballX>=rightPaddleX){
      if(ballY>=rightPaddleY && ballY <= rightPaddleY+paddleH){
         speedX  *= -1 ;
         score+=10;
         song.play();
         println("score:"+score);
      }else{
        isPlaying = false;
        life--;
          if(life<=0){
           println("game over");
          }else{
          println("life:"+life);
          }
      }
      
    }
     
    //paddles
    fill(0,0,255);
    //right
    rightPaddleY=mouseY-paddleH/2;
    rect(rightPaddleX,rightPaddleY,paddleW,paddleH);
    //left
    leftPaddleY = ballY - paddleH/2;
    rect(leftPaddleX,leftPaddleY,paddleW,paddleH);
  }
}



void keyPressed(){
  isPlaying =true;
  
  //restart
  ballX = centerX;
  ballY = centerY;
  speedX = random(-5,5);
  speedY = random(-5,5);
}
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4825271
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

3喜歡★anna88711 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:專題分享_日月星辰(7)...

追蹤私訊切換新版閱覽

作品資料夾

d88931122所有巴友
歡迎諸君來參觀老僧的小屋,內含Steam與Google Play遊戲、3D角色模組、Line貼圖看更多我要大聲說7小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】