簡體   English   中英

C ++&SFML平滑移動精靈

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM