1.嘗試自己做
遊戲名稱<<線性回歸>>
1-1.畫線:
延續上週程式 drawLine() 負責畫線
1-2.一顆掉下的球:
球的設定
float ballx=40,bally=40; //初始位置
float ballvx=1,ballvy=-1; // 加速度
float slopeX=0,slopeY=0,slope=0; // X截距 Y截距 斜率
boolean moving=true; //判斷是否在滾動
ellipse(球X位置,球Y位置,大小); //畫球
如果球在動{
加速度
重力
}
for迴圈(在i-1個捕捉到的 線的座標 中){
pt//第i個座標
pt2//第i+1個座標
如果球在動{
用座標差算斜率;
如果碰到線,球停下
if(球X座標與線的點的X座標差距在+-10之間 且 線的點Y座標與球的Y座標差距介於20-22之間){
ballvx=0;
ballvy=0; //加速度為0
moving=flase; //球停下
}
}
}
----------結果----------
以球的中心點座標 與 線的每個點座標 進行碰撞偵測:
1.可以接到球
2.球會穿過其他線 問題1
1-3.加分的星星:
目標: 球碰到會加分 觸碰後星星消失
讓圖形消失:
方法1 arrayList ...有點障礙
設定每個星星格式
star.endDraw(); //結束畫image( star , X座標 , Y座標 ); //產生星星
1.接到球後繼續滾動(位能 動能??)
2.改善問題1
3.星星被碰到後消失
2.問老師(星星問題)
2-1.老師說:
PGrapics star; //宣告
star=creatGraphics( x , y ); //創物件
意即: 創一個x*y大小的畫布,可以在畫布上修改、增添圖案
錯誤點:
47行drawStar()
57行star.clear()都放在draw()裡 >> >一直畫一直刪
解決方法:
把drawStar()放到設定裡
但是!! 若有多個星星,這樣每刪一次就要再畫一次星星
(每個星星配一組刪+畫)
2-2.試著自己改:
每個關卡只有3顆星星>>>數量不多 創star1,star2,star3;三個畫布
設定每個star的X座標、Y座標
starX1,starX2,starX3.....
分別對每一組星星座標進行碰撞偵測
若碰到了 那顆星星就消失>>>不會影響其他星星
計分後把座標移至(-1-1),避免重複偵測計分
雖然窮舉很麻煩,但能成功使星星消失、不會互相影響
3.嘗試自己做part2
3-1.動位能轉換,求速率:
位能U=mgh 質量*G*高度
動能Ek=1/2mV^2 質量*速率
同時去掉m,gh=1/2V^2
V=(2gh)開根號
位移=V*時間
高度:停下來的那點 減掉 開始動的那點
float ball_before_x,ball_before_y; //放 移動之前的球座標
增加兩點中間的點 進行碰撞偵測
當球停下來時 計算高度差、動能、速度
----------結果----------
1.成功 向左/向右滾
2.滾動間從縫隙溜走 問題2
下次目標:
1.優化運動軌跡(利用位能??動能???????)
2.改善問題2
3.放球框
4.墨水量
4.試著做part3
4-1.讓球不從縫隙掉落
在坡度平緩 且 上個點x座標 小於 球x座標時
取兩點之間的距離,若小於球直徑 球y座標=pty3-20.1
在viod draw()裡面的最外層加上:
//畫完線之後計算 points.size() 點的數量
ink_size=150-points.size()/2;
rect( 175, 15, ink_size, 12, 3):
以數量區分墨水條的顏色>>>畫越多,顏色愈淡
沒有留言:
張貼留言