发现很多原生游戏都有按一次手机的返回桌面按键后,弹出“再按一次取消按键屏蔽”的功能,感觉这应该是在cocos creator端实现的,请问如何实现这一功能?谢谢!
第一次按记下当前时间, 下次按如果 和上次按时间差在 x 秒内, 触发逻辑,否则提示, 并更新记录的时间
感谢回复,您说的这个我明白,我在开发原生非游戏APP的时候,也是这样处理。
但我说的这个情况应该不是这种逻辑,因为在玩一些纯英文的国外游戏也是弹出“再按一次取消按键屏蔽”这种中文,所以感觉应该是调用了系统功能
不确定ccc里有没有相关实现——监听系统按键,讲道理,你会原生的话,这个功能不难
感谢回复,我觉得这个功能肯定不是在原生端实现的。是不是cocos的API功能我还不能确认,没准是手机里游戏加速器带的功能。。。
在Cocos2dxGLSurfaceView类的onKeyDown里面把return true改成return false; 把下面代码放到游戏的activity里面,这样不知道游戏中还能不能监听到,没试。。。
private long exitTime=0;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
if(System.currentTimeMillis() - exitTime < 2000){
finish();
System.exit(0);
}else{
Toast.makeText(this, "再按一次退出游戏", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
这是再按一次退出。。。
感谢回复,这个我知道,但我说的不是这个,是“再按一次取消按键屏蔽”。有点怀疑是手机里游戏加速器的功能。。。
你如果怀疑是系统功能,那把你的系统语言改成英文,如果弹出的还是中文,基本就排除了这种可能性。
这个功能是系统对游戏类app的优化,不是自己实现的功能。
这个就是很简单的按键监听+标记变量而已
1.先监听返回键的消息,做个编辑变量的判断(此时肯定是false),玩家按一下返回键先把 编辑变量变成true,给个提示,
2.玩家再按一次,因为此时标记变量为true则响应操作了,接触按键的屏蔽;
3.一般而言应该会有个计时器,在几秒钟之内重新把标记变量变成false的。