小屋創作

日誌2020-06-22 20:30

processing程式分享

作者:星寒淚

乒乓球

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

3

0

LINE 分享

相關創作

Project AJ Developer log.2

日本各城市(東京大阪京都等) 素食蔬食餐廳統整 (日本蔬食素食餐廳)

【方式】

留言

開啟 APP

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

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