用的是JB 2005 集成的 Nokia Developers Suite 3.0 for J2ME(TM),这个S60模拟器中只能显示英文不说,在测试游戏时还经常出现自动重复按键
比如,我按下LEFT键,松开后,有时精灵便会一直往左边移动,即使此时我按下RIGHT键,依然改变不了其向左移动的趋势,然后不知道什么时候就自己停下来了
程序是在run()函数中轮询用户按键
处理按键函数如下:
//getKeyStates();////加上这一句程序还是依然出错~~
int keyState = getKeyStates();
if ( (keyState & UP_PRESSED) != 0) {
//UP
sprites[0].move(0, -NORMAL_SPEED);
}
else if ( (keyState & DOWN_PRESSED) != 0) {
//Down
sprites[0].move(0, NORMAL_SPEED);
}
if ( (keyState & LEFT_PRESSED) != 0) {
//Left
sprites[0].direction = -1;
sprites[0].setTransform(Sprite.TRANS_NONE);
sprites[0].move( -NORMAL_SPEED, 0);
}
else if ( (keyState & RIGHT_PRESSED) != 0) {
//Right
sprites[0].direction = 1;
sprites[0].move(NORMAL_SPEED, 0);
sprites[0].setTransform(Sprite.TRANS_MIRROR);
}
我觉得不可能是程序的原因,也不会是键盘有坏键,肯定是模拟器的原因
模拟器不可信.调调界面还凑合.你实机上测.
S60的模拟器确实用中文问题,但是按键问题我到没发现 你这个run的间隔是不是太长了,或者你改用onkeypressed试试
www.coderpub.com
模拟器消耗内存太多。建议在实机上测
模拟器消耗内存太多。建议在实机上测
---------------
消耗内存多?莫名其妙
强烈建议直接用键值控制,不然很容易出些莫名其妙的问题,我在keyPressed()和keyReleased()都是直接定义键值的,以前用getGameAction()的时候也总是出现莫名其妙的问题的。