首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME 手機遊戲物理模型:拋物線基礎(一)——定點數近似與時間縮放

     編輯:J2ME

無浮點運算環境下的拋物線近似

早期手機不支援浮點,無法用 sin/cos 分解速度。採用「先放大後縮小」定點數策略:

  1. 建立雜湊表儲存 0~90 度正弦值(放大 100000 倍)。
  2. 初速度 V0 分解:Vx = V0*cos、Vy = V0*sin(均為放大值)。
  3. 位移公式:x = Vx*t/100000、y = (Vy*t - 5*t²)/100000。

時間縮放與主迴圈緩衝

主迴圈極快(毫秒級),需緩衝時間增長:

while (true) {
    thisThread.sleep(10);
    if (bFire) {
        tTemp++;
        if (tTemp > 10) { t += 1; tTemp = 0; }
    }
}

tTemp 閾值控制時間流逝速度。時間再放大 20000 倍,公式調整為:

x = Vx * t / 100000;
y = (Vy * t - 5 * t * t * 20000) / 100000;

加入初始位置常量(螢幕底部):

y = (100000*(getHeight()-20) - (Vy*t - 5*t*t*20000)) / 100000;
運行效果

圖1:Nokia 7650 模擬器運行效果

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved