Welcome 微信登录

首页 / 软件开发 / JAVA / J2ME游戏开发笔记整编版

J2ME游戏开发笔记整编版2011-01-13-------------一般类问题--------------

1 J2ME中查表法使用三角函数

CLDC和MIDP都没有提供三角函数,而且CLDC1.0中也没有浮点数,所以我们的选择是查表。使用8位定点数的sin和cos表。下面是wtk自带demo中的代码,只提供了有限的几个角度,实际使用时根据需要细化角度值。

// sines of angles 0, 10, 20, 30, 40, 50, 60, 70, 80, 90,all *256

private static final int[] SINES =

{ 0, 44, 88, 128, 165, 196, 222, 241, 252, 256 };

// angle is in degrees/10, i.e. 0..36 for full circle

private static int sineTimes256(int angle)

{

angle %= 36; // 360 degrees

if (angle <= 9) // 0..90 degrees

{

return SINES[angle];

}

else if (angle <= 18) // 90..180 degrees

{

return SINES[18-angle];

}

else if (angle <= 27) // 180..270 degrees

{

return -SINES[angle-18];

}

else // 270..360 degrees

{

return -SINES[36-angle];

}

}

// angle is in degrees/10, i.e. 0..36 for full circle

private static int cosineTimes256(int angle)

{

return sineTimes256(angle + 9); // i.e. add 90 degrees

}

(2006.5 注:有一些算法可以生成三角函数值,这样只要在游戏载入时生成一下函数表即可,节省一些数据)

2 J2ME中使用随机数

产生0~n之间的随机数:

(ran.nextInt()>>>1)%n



(ran.nextInt()&0x7FFFFFFF)%n

产生-n~0之间的随机数:

(ran.nextInt() | 0x80000000 )%n