2022年11月16日 星期三

week11_新手上碌

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 ...有點障礙

    方法2  clear()

    怎麼用>>>

PGrapics star;        //宣告
star=creatGraphics( 寬 , 高 );        //創物件

star.beginDraw( );    //開始畫
        設定每個星星格式
star.endDraw();        //結束畫

image( star , X座標 , Y座標 );    //產生星星

如果球碰到星星 就加分、星星消失

----------結果----------
失敗QQ

下次目標:
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:
增加兩點中間的點 進行碰撞偵測
當球停下來時 計算高度差、動能、速度
3-2.爬坡:
用斜率控制 向左 向右
還沒有用到位能動能速度

----------結果----------
1.成功 向左/向右滾
2.滾動間從縫隙溜走 問題2

下次目標:
1.優化運動軌跡(利用位能??動能???????)
2.改善問題2
3.放球框
4.墨水量

4.試著做part3
4-1.讓球不從縫隙掉落
在坡度平緩 且 上個點x座標 小於 球x座標
取兩點之間的距離,若小於球直徑 球y座標=pty3-20.1


4-2.墨水量
在viod draw()裡面的最外層加上:
//畫完線之後計算 points.size() 點的數量
ink_size=150-points.size()/2;
rect(    175,    15,    ink_size,    12,    3):
以數量區分墨水條的顏色>>>畫越多,顏色愈淡

如果墨水條沒了>>> points.size()/2>150時,
不能繼續畫


----------結果----------


下次目標:
1.優化運動軌跡(利用位能??動能???????)
2.Restart功能
3.放球框(目的地)
心得:
這周進度滿多的 周末都在想要怎麼寫QQ 做夢都夢到在寫作業

沒有留言:

張貼留言