[英]C++&SFML moving sprites smoothly
作為一名學生,我一直想成為一名游戲開發人員。 到目前為止,我已經成功學習了C ++和SFML 2.1的基礎知識
對於我的第一個項目,在決定制作2D RPG風格的游戲時,我遇到了一個問題,即游戲循環刷新得如此之快,以至於如果每幀將它們移動1個像素,則子畫面的移動速度將比我預期的更快。
我實現了一個幀確定的移動系統(不知道它叫什么),無論fps是多少,角色都以相同的速度移動。
但是,我無法解決精靈無法平穩移動的問題(這就是我要問的問題)。 在我的構建中發生的事情是,播放器每幀將移動約1像素,並且可能會被其他輸入中斷。 我怎樣才能做到這一點?
TL; DR:我想像老式的RPG游戲一樣移動精靈,平穩地移動預定像素(或圖塊)。
統計上每秒可以處理循環的次數將是隨機的。 計算機上還有很多事情要做,並且不能保證程序給出的時間是恆定的。 您需要按時進行運動。
在SFML中,我喜歡
window.setFramerateLimit(60);
這將以每秒60幀的速度給我一個很好的嘗試。 它與現實足夠接近,以至於無法分辨。
從那里我想假設每個幀都會收到一個
float timeStep = 1.0f/60.0f.
我使用這個timeStep來控制動作。 因此,如果我想讓我的汽車每秒行駛10個像素,那么在大型游戲循環的每次迭代中,我們都使用時間步長。
currentPosition += carSpeed * timeStep
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.