看板 GameDesign 關於我們 聯絡資訊
平台:DirectX 我想設計一個推酒杯的小遊戲,目前寫到按下空白鍵會有往右使杯子移動的速度, 同時還有一個摩擦力,程式每次RUN的時候都會固定扣一個數值,最後歸零。 原本是希望酒杯能夠很順的位移,然後速度慢慢降低最後停止。 可是程式真正在執行的時候第一下還是會位移,但是頓一下之後又位移一次, 就停止了。 有問題的程式碼: // // WndProc // LRESULT CALLBACK d3d::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { if(speed >= 0) { speed -= f; //speed會扣摩擦力 cupx += speed; //讓杯子產生移動的速度。 } switch( msg ) { case WM_DESTROY: ::PostQuitMessage(0); break; case WM_KEYDOWN: if( wParam == VK_ESCAPE ) ::DestroyWindow(hwnd); switch( wParam ) { case VK_SPACE: speed=2; break; } } return ::DefWindowProc(hwnd, msg, wParam, lParam); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 192.192.154.48
polom:跟畫面更新的速度有關吧! 06/24 22:13
turtle314:那我該在哪邊調整? 還是我設一個類似緩衝器的東西? 06/24 22:16
polom:看一下你的fps更新的速度,配合著修你的阻尼數值 06/25 00:43
ure560:speed可能會減到小於0... 06/25 10:22