我有一個問題,我說,一個對象在中間,然後我想從對象射出一個拋射物。可以這麼說,我做了很多的觸發/幾何來獲得適合這個「隱形三角形」邊長的角度,但是我對射彈的速度有問題。如何處理「部分像素」
如果我確實跑過去了,速度移動得太快了,因爲我的畫布只有800 X 600.如果我試圖用非常大的數字來劃分這個數字,那麼它往往會毀了由於像素不能移動分數/小數,所以我基本上必須將此數字保持在0以上,否則它將完全忽略該速度。
例如,如果我有一個上升超過運行:
rise = 800
run = 50
如果我除以10,我的velocity.X = 5,但我的velocity.Y = 80(將被關閉內的畫布一秒)。如果我用一個更大的數字來表示,比如說100,那麼velocity.Y現在是8(仍然很快,但是更易於管理),但是velocity.X = 0.5,由於drawRectangle像素點需要是整數,因此velocity.X將舍入爲0。因此,這使得這個拋射體以8的速度向上移動,並且因爲其移動到0而不能正確移動。
我研究了以相同速率增加速度直到兩者都大於0的想法,但這會導致(1,16),很可能它會很快再次離開屏幕,並且/或者看起來好像它從未被解僱過。
有沒有一種很好的方法來處理這種情況?
您不必將對象的位置存儲爲像素。您應該區分(a)您正在工作的世界和(b)該世界的渲染...... –
CommuSoft說什麼和/或做浮點物理計算。 –