2020年5月31日 星期日
2020年5月30日 星期六
Bird飛飛飛Week13
PImage imgBird;
void setup (){
size(500,400);
imgBird=loadImage("bird.png");
imageMode(CENTER);
}
float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0;
boolean bMoving=false;
void draw(){
background(255);
image(imgBird,birdX,birdY,100,100);
if(bMoving) line(mouseX,mouseY,oldX,oldY);
birdX += vx; birdY += vy;
if(birdX>500-50||birdX<50) vx=-vx;
if(birdY>400-50||birdY<50) vy=-vy;
}
void mouseReleased(){
bMoving=false;
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;
}
void mousePressed(){
if(dist(mouseX,mouseY,birdX,birdY)<50){
bMoving=true;
oldX=birdX; oldY=birdY;
}
}
void mouseDragged(){
if(bMoving){
birdX=mouseX; birdY=mouseY;
}
}
2020年5月29日 星期五
14
加入聲音外掛
→Sketch-Import Library-Add Library
→Sketch-Import Library-Add Library
→在Libraries輸入sound去搜尋下載Minim-Install
→載完用Examples看(Ctrl+Shift+O)會有Contributed Libraries資料夾(Minim→Basics→PlayAFile)
**如果有失敗要重新下載一次
開上周的程式碼
PImage imgBird;
void setup()
void setup()
{
size(500,400);
imgBird=loadImage("bird.png");
imageMode(CENTER);
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;
boolean bMoving=false;
void draw()
size(500,400);
imgBird=loadImage("bird.png");
imageMode(CENTER);
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;
boolean bMoving=false;
void draw()
{
background(255);
image(imgBird, birdX,birdY,100,100);
if(bMoving) line(birdX,birdY, oldX,oldY);
birdX+=vx; birdY+=vy;
if(birdX>450 || birdX<50) vx = -vx*0.95;
if(birdY>350 || birdY<50) vy = -vy*0.95;
}
void mouseReleased()
background(255);
image(imgBird, birdX,birdY,100,100);
if(bMoving) line(birdX,birdY, oldX,oldY);
birdX+=vx; birdY+=vy;
if(birdX>450 || birdX<50) vx = -vx*0.95;
if(birdY>350 || birdY<50) vy = -vy*0.95;
}
void mouseReleased()
{
if(bMoving){
bMoving=false;
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;
}
}
void mousePressed()
if(bMoving){
bMoving=false;
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;
}
}
void mousePressed()
{
if( dist(mouseX,mouseY, birdX,birdY)<50)
if( dist(mouseX,mouseY, birdX,birdY)<50)
{
oldX=birdX; oldY=birdY;
bMoving=true;
}
}
void mouseDragged()
oldX=birdX; oldY=birdY;
bMoving=true;
}
}
void mouseDragged()
{
if(bMoving)
if(bMoving)
{
birdX=mouseX; birdY=mouseY;
}
}
→在void(宣告)
minim = new Minim(this);
player = minim.loadFile("song.mp3");
player.play(); →播放
birdX=mouseX; birdY=mouseY;
}
}
→加入聲音(宣告)
import ddf.minim.*; →使用外掛
Minim minim; →物件 minim
AudioPlayer player; →物件 player
minim = new Minim(this);
player = minim.loadFile("song.mp3");
player.play(); →播放
week 14
憤怒鳥
PImage imgBird;
void setup()
{
size(500,400);
imgBird=loadImage("bird.png");
imageMode(CENTER);
}
float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0;
boolean bMoving=false;
void draw()
{
background(255);
image(imgBird,birdX,birdY,100,100);
if(bMoving)line(mouseX,mouseY,oldX,oldY);
birdX+= vx; birdY+=vy;
if(birdX>500-50 || birdX<50)vx=-vx;
if(birdY>500-50 || birdY<50)vy=-vy;
}
void mouseReleased()
{
bMoving=false;
vx=(oldX-mouseX)/10;
vy=(oldY-mouseY)/10;
}
void mousePressed()
{
if(dist(mouseX,mouseY,birdX,birdY)<50)
{
bMoving=true;
oldX=birdX;
oldY=birdY;
}
}
void mouseDragged()
{
if(bMoving)
{
birdX=mouseX; birdY=mouseY;
}
}
遊戲加入音樂
第一步:
程式碼:
import ddf.minim.*; ///使用外掛
Minim minim; ///物件minim ///大寫宣告小寫
AudioPlayer player; ///物件player
void setup( ){
minim = new Minim(this);
player = minim.loadFile("song.mp3"); ///要放入歌
player.play( ); ///真的播放出來
}
void draw( ){
} ///沒有draw ,沒有後續的動作,會沒有聲音
第二步上禮拜程式碼放入音樂:
import ddf.minim.*;
Minim minim;
AudioPlayer player;
PImage imgBird ;
void setup( ){
size(500,400);
imgBird=loadImage("bird.png");
imageMode(CENTER);
minim = new Minim(this);
player = minim.loadFile("song.mp3");
player.play( );
}
float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0; ///vx,vy表移動的速度
boolean bMoving=false;
void draw( ){
background(255); ///背景要清,不要殘影
image(imgBird,birdX,birdY,100,100);
if(bMoving) line(mouseX,mouseY,oldX,oldY);
birdX+=vx;birdY+=vy;
if(birdX>500-50 || birdX<50) vx=-vx;
if(birdY>400-50 || birdY<50) vy=-vy; ///反彈
}
void mouseReleased( ){ ///如果放開的時候
bMoving =false; ///不在拉動,要彈出去
vx=(oldX-mouseX)/10;vy=(oldY-mouseY)/10; ///就的座標減新座標移動距離除以10
}
void mousePressed( ){
if(dist(mouseX,mouseY,birdX,birdY)<50){
bMoving =true; ///開始移動鳥
oldX=birdX;oldY=birdY;
}
}
void mouseDragged( ){
if(bMoving){
birdX=mouseX;birdY=mouseY;
}
}
第三步:
import ddf.minim.*; ///做音樂
Minim minim; ///做音樂
AudioPlayer player; ///做音樂
PImage imgBird , imgPig ; ///紫色為TODO2
float [ ]pigX=new float[20];
float [ ]pigY=new float[20]; ///宣告有20隻豬
int pigN=0; ///豬有0隻
void setup( ){
size(500,400);
imgBird=loadImage("bird.png");
imgPig=loadImage("pig.gif");
imageMode(CENTER);
minim = new Minim(this);
player = minim.loadFile("song.mp3");
player.play( );
}
float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0;
boolean bMoving=false;
void draw( ){
background(255);
for(int i=0;i<pigN;i++){
image( imgPig,pigX[i],pigY[i],100,100);
}
image( imgPig,pigX[i],pigY[i],100,100);
}
image(imgBird,birdX,birdY,100,100);
if(bMoving) line(mouseX,mouseY,oldX,oldY);
birdX+=vx;birdY+=vy;
if(birdX>500-50 || birdX<50) vx=-vx;
if(birdY>400-50 || birdY<50) vy=-vy;
}
void mouseReleased( ){
bMoving =false;
vx=(oldX-mouseX)/10;vy=(oldY-mouseY)/10;
}
void mousePressed( ){
if(mouseButton==RIGHT){ ///按右鍵時會有豬
pigX[pigN]=mouseX;pigY[pigN]=mouseY;
pigX[pigN]=mouseX;pigY[pigN]=mouseY;
pigN++;
}
}
if(dist(mouseX,mouseY,birdX,birdY)<50){
bMoving =true;
oldX=birdX;oldY=birdY;
}
}
void mouseDragged( ){
if(bMoving){
birdX=mouseX;birdY=mouseY;
}
}
week14
今天老師先告訴大家p語言開啟外掛的方式,我們這次加入的外掛是聲音的外掛
接續上次的憤怒鳥進度,這次我們要加入的是遊戲的背景音樂,因為剛剛有加入了播放聲音的外掛,所以我們在按照他的程式碼,指擷取重要的部分加進來
程式碼
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
minim=new Minim(this);
player=minim.loadFile("song.mp3");
player.play();
}
void draw(){
}
然後把這禮拜寫的程式碼貼進上禮拜的程式碼裡面,這樣上禮拜做的作業就有背景音樂了
程式碼:
import ddf.minim.*;
Minim minim;
AudioPlayer player;
PImage imgBird;
void setup(){
size(500,400);
imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer
imageMode(CENTER);//以正中心,當座標
minim=new Minim(this);
player=minim.loadFile("song.mp3");
player.play();
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;//之前的鳥在哪裡
boolean bMoving=false;//if(判斷) ex. if(bMoving)...
void draw(){
background(255);//清背景
image(imgBird, birdX,birdY,100,100);//不能一直跟著mouse動,改用birdX,birdY
if(bMoving) line(birdX,birdY, oldX,oldY);//有按到,才能動它
birdX+=vx; birdY+=vy;//鳥要照速度去飛!!!
if(birdX>450 || birdX<50) vx = -vx*0.95;//撞到邊界,會改變方向,相反的方向
if(birdY>350 || birdY<50) vy = -vy*0.95;//撞到邊界,會改變方向,相反的方向
}
void mouseReleased(){
if(bMoving){
bMoving=false;//放開時,就不能動了
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;// 0.1倍
}
}
void mousePressed(){//按下去,才會開始動
if( dist(mouseX,mouseY, birdX,birdY)<50){
oldX=birdX; oldY=birdY;
bMoving=true;///按下去時,如果有按到,才能動它
}
}
void mouseDragged(){//按下去,才會開始動
if(bMoving) {//有按到,才能動它
birdX=mouseX; birdY=mouseY;
}
}
接續上次的憤怒鳥進度,這次我們要加入的是遊戲的背景音樂,因為剛剛有加入了播放聲音的外掛,所以我們在按照他的程式碼,指擷取重要的部分加進來
程式碼
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
minim=new Minim(this);
player=minim.loadFile("song.mp3");
player.play();
}
void draw(){
}
然後把這禮拜寫的程式碼貼進上禮拜的程式碼裡面,這樣上禮拜做的作業就有背景音樂了
程式碼:
import ddf.minim.*;
Minim minim;
AudioPlayer player;
PImage imgBird;
void setup(){
size(500,400);
imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer
imageMode(CENTER);//以正中心,當座標
minim=new Minim(this);
player=minim.loadFile("song.mp3");
player.play();
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;//之前的鳥在哪裡
boolean bMoving=false;//if(判斷) ex. if(bMoving)...
void draw(){
background(255);//清背景
image(imgBird, birdX,birdY,100,100);//不能一直跟著mouse動,改用birdX,birdY
if(bMoving) line(birdX,birdY, oldX,oldY);//有按到,才能動它
birdX+=vx; birdY+=vy;//鳥要照速度去飛!!!
if(birdX>450 || birdX<50) vx = -vx*0.95;//撞到邊界,會改變方向,相反的方向
if(birdY>350 || birdY<50) vy = -vy*0.95;//撞到邊界,會改變方向,相反的方向
}
void mouseReleased(){
if(bMoving){
bMoving=false;//放開時,就不能動了
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;// 0.1倍
}
}
void mousePressed(){//按下去,才會開始動
if( dist(mouseX,mouseY, birdX,birdY)<50){
oldX=birdX; oldY=birdY;
bMoving=true;///按下去時,如果有按到,才能動它
}
}
void mouseDragged(){//按下去,才會開始動
if(bMoving) {//有按到,才能動它
birdX=mouseX; birdY=mouseY;
}
}
程式設計Week14
(基礎)找千位數
題目:
讀入 1000 - 100000 的數字,找出其千位數的數字
程式碼:
#include <stdio.h>
int main( )
{
int a;
scanf("%d",&a);
printf("%d",(a/1000)%10); //先"/"1000找商數再"%"找餘數
}
(基礎)正整數平方和
題目:
輸入正整數n,可計算:1*1+2*2+...+n*n 之總和的結果。數字範圍:整數1~1000
程式碼:
#include <stdio.h>
int main( )
{
int a;
scanf("%d",&a);
int ans=0;
for(int i=1;i<=a;i++)
{
ans+=i*i;
}
printf("%d",ans);
}
(基礎)兩數間3倍數總和
題目:
請輸入兩個由小到大的正整數(起始數字與終止數字),可計算出【起始數字】到【中止數字】間所有3的倍數之總和。{ex. 3 9 => 3+6+9=18} 數字範圍:整數1~1000
程式碼:
#include <stdio.h>
int main( )
{
int a,b;
scanf("%d%d",&a,&b);
int ans=0;
for(int i=a;i<=b;i++) //範圍從a開始,b結束
{
if(i%3= =0)ans+=i;
}
printf("%d",ans);
}
(基礎)判斷象限
題目:
判斷所輸入座標(x,y)的所在象限,(僅考慮在四個象限的情況,不考慮在軸線及原點的情況)。{ex.(1,1)屬第一象限、(-1,1)屬第二象限、(-1,-1)屬第三象限、(1,-1)屬第四象限} 數字範圍:整數 -1000~1000
程式碼:
#include <stdio.h>
int main( )
{
int a,b;
scanf("%d%d",&a,&b);
if(a>0&&b>0)printf("1\n");
else if(a>0&&b<0)printf("4\n");
else if(a<0&&b>0)printf("2\n");
else printf("3\n");
}
(基礎)求N所有因數和
題目:
輸入n (n>0), 求 n之所有因數和。{ex. 2之因數為1、2,因數和為因數加總1+2=3}
程式碼:
#include <stdio.h>
int main( )
{
int a;
scanf("%d",&a);
int ans=0;
for(int i=1;i<=a;i++) //迴圈找因數
{
if(a%i==0)ans+=i; //可以整除,把i加入答案
}
printf("%d",ans);
}
(基礎)判斷閏年
題目:
輸入西元y年,判斷該y年是否為閏年,輸出相對訊息。{閏年定義:西元年份除以4可整除,且除以100不可整除,為閏年。 西元年份除以100可整除,且除以400不可整除,為平年}
程式碼:
#include <stdio.h>
int main( )
{
int a;
scanf("%d",&a);
int ans=0;
if(a%400= =0)ans=1;
else if(a%100= =0)ans=0;
else if(a%4= =0)ans=1;
else ans=0;
if(ans= =1)printf("%d is a leap year.\n",a);
else printf("%d is not a leap year.\n",a);
}
(基礎)數字倒印
題目:
輸入10個整數,把這10個數字倒著印出來。數字範圍:整數1 – 100
程式碼:
#include <stdio.h>
int a[10];
int main( )
{
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(int i=9;i>=0;i--) //反讀
{
printf("%d ",a[i]);
}
}
(基礎)區間測速
題目:
龜山區萬壽路1段裝設區間測速器,長度1.2公里,輸入1個整數(車輛通過該區間所行駛的秒數),輸出它的時速印出來(只印整數部分,小數部分無條件捨去)。(時速的單位是每小時幾公里( km/hour)。1小時有60分鐘,1分鐘有60秒,輸入的是秒數) 數字範圍:整數1 – 1000
程式碼:
#include <stdio.h>
int main( )
{
int a;
scanf("%d",&a);
int ans=60*60*1.2/a; //如果直接印出會出現亂碼
printf("%d",ans);
}
(基礎)水杯接水
題目:
有一桶水要分裝到杯子中,水桶中的水有N毫升,杯子的容量為M毫升,請問至少需要幾個杯子才能承接水桶裡的水。現在輸入N與M,請輸出答案。數字範圍:N為1 – 9999,M為1 –99
程式碼:
#include <stdio.h>
int main( )
{
int a,b;
scanf("%d%d",&a,&b);
int ans;
if(a%b= =0)ans=a/b; //剛好滿
else ans=a/b+1; //有多出,再拿一個杯子
printf("%d",ans);
}
(基礎)平面座標面積
題目:
輸入平面兩點座標的四個整數值(x1,y1,x2,y2),計算並顯示這兩點所圍之面積。(EX.輸入(x1,y1,x2,y2),計算(x1,y1)、(x1,y2)、(x2,y2)、(x2,y1)所圍面積。) 數字範圍:整數1 –100
程式碼:
#include <stdio.h>
int main( )
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
int ans=(a-c)*(b-d); //X座標距離差*Y座標距離差=面積
if(ans>0)printf("%d",ans);
else printf("%d",-ans);
}
憤怒鳥音樂
程式碼:
import ddf.minim.*; //外掛
Minim minim; //物件minim
AudioPlayer player; //物件playrt
void setup( )
{
minim=new Minim(this);
player=minim.loadFile("song.mp3");
player.play( );
}
void draw( ) //不寫沒聲音
{
}
(接續)亂鳥打不死豬
程式碼:
PImage imgBird,imgPig;
float [ ] pigX=new float[20]; //豬的最大數量:20隻
float [ ] pigY=new float[20];
int pigN=0; //0隻豬
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup( )
{
size(500,400);
imgBird=loadImage("bird.png");
imgPig=loadImage("pig.gif");
imageMode(CENTER);
minim=new Minim(this);
player=minim.loadFile("song.mp3");
player.play( );
}
float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0;
boolean bMoving=false;
void draw( )
{
background(255);
for(int i=0; i<pigN; i++) //畫豬
{
image(imgPig, pigX[i], pigY[i], 100,100);
}
image(imgBird, birdX,birdY,100,100);
if(bMoving) line(mouseX,mouseY,oldX,oldY);
birdX+=vx; birdY+=vy; //速度隨拉直線的長度增加
if(birdX>500-50 || birdX<50) vx=-vx;
if(birdY>400-50 || birdY<50) vy=-vy;
void mouseReleased( )
{
bMoving=false;
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;
}
void mousePressed( )
{
if( mouseButton= =RIGHT) //按右鍵,增加一隻豬
{
pigX[pigN]=mouseX; pigY[pigN]=mouseY;//TODO2
pigN++;//TODO2
}
if(dist(mouseX,mouseY,birdX,birdY)<50)
{
bMoving=true;
oldX=birdX; oldY=birdY;
}
}
void mouseDragged( )
{
if(bMoving)
{
birdX=mouseX;
birdY=mouseY;
}
}
week14
import ddf.minim.*;//使用外掛
Minim minim;//物件 minim
AudioPlayer player;//物件 player
PImage imgBird;
void setup(){
size(500,400);
imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer
imageMode(CENTER);//以正中心,當座標
minim=new Minim(this);
player=minim.loadFile("song.mp3");
player.play();//播放
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;//之前的鳥在哪裡
boolean bMoving=false;//if(判斷) ex. if(bMoving)...
void draw(){
background(255);//清背景
image(imgBird, birdX,birdY,100,100);//不能一直跟著mouse動,改用birdX,birdY
if(bMoving) line(birdX,birdY, oldX,oldY);//有按到,才能動它
birdX+=vx; birdY+=vy;//鳥要照速度去飛!!!
if(birdX>450 || birdX<50) vx = -vx*0.95;//撞到邊界,會改變方向,相反的方向
if(birdY>350 || birdY<50) vy = -vy*0.95;//撞到邊界,會改變方向,相反的方向
}
void mouseReleased(){
if(bMoving){
bMoving=false;//放開時,就不能動了
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;// 0.1倍
}
}
void mousePressed(){//按下去,才會開始動
if( dist(mouseX,mouseY, birdX,birdY)<50){
oldX=birdX; oldY=birdY;
bMoving=true;///按下去時,如果有按到,才能動它
}
}
void mouseDragged(){//按下去,才會開始動
if(bMoving) {//有按到,才能動它
birdX=mouseX; birdY=mouseY;
}
}
week14
撥放音樂
先去Examples 新增Minim
新增了之後Add Library 找到PlayAFile
按任意鍵能成功撥放代表成功
至原本的檔案 輸入程式碼並將音樂放進去
import ddf.minim.*; //使用外掛Minim minim; //物件minimAudioPlayer player; //物件playervoid setup(){minim = new Minim(this);player = minim.loadFile("song.mp3");player.play(); //播放}void draw(){}
這樣就能成功撥放了
import ddf.minim.*;
Minim minim;
AudioPlayer player;
PImage imgBird, imgPig;
float [] pigX=new float[20];
float [] pigY=new float[20];
int pigN=0;
void setup(){
size(500,400);
imgBird=loadImage("bird.png");
imgPig=loadImage("pig.gif");
憤怒鳥
imageMode(CENTER);
minim = new Minim(this);
player = minim.loadFile("song.mp3");
player.play();
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;
boolean bMoving=false;
void draw(){
background(255);
for(int i=0; i<pigN; i++){
image(imgPig, pigX[i], pigY[i], 100,100);
}
image(imgBird, birdX,birdY,100,100);
if(bMoving) line(birdX,birdY, oldX,oldY);
birdX+=vx; birdY+=vy;
if(birdX>450 || birdX<50) vx = -vx*0.95;
if(birdY>350 || birdY<50) vy = -vy*0.95;
}
void mouseReleased(){
if(bMoving){
bMoving=false;
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;// 0.1倍
}
}
void mousePressed(){
if( mouseButton==RIGHT){
pigX[pigN]=mouseX; pigY[pigN]=mouseY;
pigN++;
}
if( dist(mouseX,mouseY, birdX,birdY)<50){
oldX=birdX; oldY=birdY;
bMoving=true;
}
}
void mouseDragged(){
if(bMoving) {
birdX=mouseX; birdY=mouseY;
}
}
Minim minim;
AudioPlayer player;
PImage imgBird, imgPig;
float [] pigX=new float[20];
float [] pigY=new float[20];
int pigN=0;
void setup(){
size(500,400);
imgBird=loadImage("bird.png");
imgPig=loadImage("pig.gif");
憤怒鳥
imageMode(CENTER);
minim = new Minim(this);
player = minim.loadFile("song.mp3");
player.play();
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;
boolean bMoving=false;
void draw(){
background(255);
for(int i=0; i<pigN; i++){
image(imgPig, pigX[i], pigY[i], 100,100);
}
image(imgBird, birdX,birdY,100,100);
if(bMoving) line(birdX,birdY, oldX,oldY);
birdX+=vx; birdY+=vy;
if(birdX>450 || birdX<50) vx = -vx*0.95;
if(birdY>350 || birdY<50) vy = -vy*0.95;
}
void mouseReleased(){
if(bMoving){
bMoving=false;
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;// 0.1倍
}
}
void mousePressed(){
if( mouseButton==RIGHT){
pigX[pigN]=mouseX; pigY[pigN]=mouseY;
pigN++;
}
if( dist(mouseX,mouseY, birdX,birdY)<50){
oldX=birdX; oldY=birdY;
bMoving=true;
}
}
void mouseDragged(){
if(bMoving) {
birdX=mouseX; birdY=mouseY;
}
}
憤怒鳥音樂
首先,先來加個音樂~~
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
minim= new Minim(this);
player =minim.loadFile("song.mp3");
player.play();
}
void draw()
{
}
import ddf.minim.*;
Minim minim;
AudioPlayer player;
PImage imgBird;
void setup(){
size(500,400);
imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer
imageMode(CENTER);//以正中心,當座標
minim= new Minim(this);
player =minim.loadFile("song.mp3");
player.play();
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;//之前的鳥在哪裡
boolean bMoving=false;//if(判斷) ex. if(bMoving)...
void draw(){
background(255);//清背景
image(imgBird, birdX,birdY,100,100);//不能一直跟著mouse動,改用birdX,birdY
if(bMoving) line(birdX,birdY, oldX,oldY);//有按到,才能動它
birdX+=vx; birdY+=vy;//鳥要照速度去飛!!!
if(birdX>450 || birdX<50) vx = -vx*0.95;//撞到邊界,會改變方向,相反的方向
if(birdY>350 || birdY<50) vy = -vy*0.95;//撞到邊界,會改變方向,相反的方向
}
void mouseReleased(){
if(bMoving){
bMoving=false;//放開時,就不能動了
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;// 0.1倍
}
}
void mousePressed(){//按下去,才會開始動
if( dist(mouseX,mouseY, birdX,birdY)<50){
oldX=birdX; oldY=birdY;
bMoving=true;///按下去時,如果有按到,才能動它
}
}
void mouseDragged(){//按下去,才會開始動
if(bMoving) {//有按到,才能動它
birdX=mouseX; birdY=mouseY;
}
}
加豬
import ddf.minim.*;//TODO: Music
Minim minim;//TODO: Music
AudioPlayer player;//TODO: Music
PImage imgBird;
void setup(){
size(500,400);
imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer
imageMode(CENTER);//以正中心,當座標
minim = new Minim(this);//TODO: Music
player = minim.loadFile("song.mp3");//TODO: Music
player.play();//TODO: Music
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;//之前的鳥在哪裡
boolean bMoving=false;//if(判斷) ex. if(bMoving)...
void draw(){
background(255);//清背景
image(imgBird, birdX,birdY,100,100);//不能一直跟著mouse動,改用birdX,birdY
if(bMoving) line(birdX,birdY, oldX,oldY);//有按到,才能動它
birdX+=vx; birdY+=vy;//鳥要照速度去飛!!!
if(birdX>450 || birdX<50) vx = -vx*0.95;//撞到邊界,會改變方向,相反的方向
if(birdY>350 || birdY<50) vy = -vy*0.95;//撞到邊界,會改變方向,相反的方向
}
void mouseReleased(){
if(bMoving){
bMoving=false;//放開時,就不能動了
vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;// 0.1倍
}
}
void mousePressed(){//按下去,才會開始動
if( dist(mouseX,mouseY, birdX,birdY)<50){
oldX=birdX; oldY=birdY;
bMoving=true;///按下去時,如果有按到,才能動它
}
}
void mouseDragged(){//按下去,才會開始動
if(bMoving) {//有按到,才能動它
birdX=mouseX; birdY=mouseY;
}
}
訂閱:
意見 (Atom)









































