Week08☀☀
week08-1
1.設變數vx、vy為加速度,一直更新x、y的值,形成往右下角移動
2.重力加速度,對vy的大小更改,對加速度vy+=重力的值(0.98),因初始vy是(負的)往上,但經過一直更新+=0.98,幾秒後會變成往下(vy變正)。
week08-2
1.按鍵放開時vx加速度歸0,移動就能走停了;加入當按下上鍵時,將y加速度便往上的20力,但因還沒加入重力或判斷限制y值範圍,所以馬力歐就往上飛了。
2.加入布林變數判斷是否在跳躍中,按下鍵盤上鍵時就true,同時flying是true時就會在draw函式裡不斷的對marioY做值的變換,在加marioY大於看似在地面上的值時,就flying設false,並固定marioY。
4.寫boolean宣告的函式,傳入方塊的x、y、w、h,判斷如果marioX介於方塊的左右邊界內且marioY介於方塊的上下邊界內,就代表碰撞到(mario在方塊內),所以回傳true,其他回傳false;在draw呼叫該函式,當回傳true來時,就把加速度vy設0並把marioY設成固定的值。
week08-3
1.把函式裡判斷範圍的x與y左右跟上下邊界都拉長拉寬一點;在draw函式裡判斷碰到方塊的範圍時,再去做判斷加速度vy是否>0,大於0代表還在飛所以進到碰撞範圍時就把marioY設成方塊的y值再往上減少10半,同時flying設false,else的部分修改marioY設成150+20+10(方塊的y座標+方塊的大小+mario的身體一半值)。
2.再加一個布林函式判斷是否離開碰撞範圍,裡面的範圍判斷跟進入範圍的判斷相反,還要加一個布林變數判斷是不是站在方框上,當vy>0代表mario在方框上方(因為此時vy是往下的速度,所以為正值),同時設stand_box為true;加入判斷當是站在方框上時、不是跳躍時、而且離開函式為true時,把stand_box設回false、flying = true、加速度vy=0(即mario往下掉)。
3.優化、改進程式碼,將下面判斷按下上鍵時多加一個把stand_box狀態設false;上面程式碼的關於方塊的部分包裝成函式,以便呼叫時只要修改x、y值就能簡單生成不同位置的方塊。
沒有留言:
張貼留言