我想为我正在开发的游戏添加一个振动反馈,一起音乐播放,如“赢家”和振动模式。
问题在于,当我添加振动句子时,我的应用程序崩溃了。
例如:
private void Down()
{
soundM.playSound(Sound.SOUND_NEWINTENT);
for (int i=0 ; i<8 ; i++) {
for (int j=0 ; j<12 ; j++) {
if (Play[i][j] != null) {
Play[i][j].moveDown();
if (Play[i][j].getSpritePosition().y>=380) {
Sprite.updateState(Sprite.STATE_GAME_LOST);
endOfGame = true;
soundM.playSound(Sound.SOUND_LOST);
vib = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
vib.vibrate(500);
}
}
}
}
它不在活动中,因此我无法实现类似Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE)
的内容,因为它是一个活动声明。我尝试声明public Vibrator vib;
然后实现上面显示的代码,但是当游戏丢失时,应用程序崩溃了。
我也尝试通过“通知”来做,但结果相同,应用程序崩溃。
任何想法如何实现振动?
谢谢!
P.S。:我有android.permission.VIBRATE,所以不是问题。事实上,我在菜单上找到了病毒。
答案 0 :(得分:1)
我在调用游戏对象的活动中声明了一个公共振动器对象。在我的例子中,onCreate活动启动一个扩展surfaceView的MainGamePanel。所以在onCreate活动中,我声明了振动器对象并用
初始化它public static Vibrator v;
v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
//Then when I want to game to vibrate, inside of MainGamePanel I call
long[] pattern = { 0, 200, 500 };
DroidzActivity.v.vibrate(pattern, 0);
希望这有帮助!