Konami Code是例如《魂斗罗》等游戏让玩家依次输入按键序列达到加人奖励的那个。
80后应该都知道。
例如《魂斗罗I》在标题画面依次输入“上上下下左右左右BA”就能有30个人。
《魂斗罗II》在标题画面依次输入“右左下上AB”就能有30个人。
同样的还有格斗游戏的戳招:
例如【下,右斜下,前】(右斜下其实就是同时按下和右)就发出了波动蛋。。。
不过本例只检测同时按下一个键的情况,多个键也很简单,请自行扩展。
本节就是要达到这个效果。
我写了一个类叫KonamiCode,实现很简单,详细请看代码。
方法:
设置按键序列:
例如序列"UUDDLRLROX"就是“上上下下左右左右OX”,默认是这个。
[code="libnge2"]
void SetCode(const char* kcodes);
[/code]
分析每个按键,这个函数一般放于btn_down或者btn_up里
[code="libnge2"]
int AnalaysCode(int keycode);
[/code]
得到状态,状态有下面几个
CODE_END_FIT 序列完成并正确
CODE_END_NOT_FIT 序列完成但是错误
CODE_NOT_END 序列未完成
[code="libnge2"]
int GetStatus();
[/code]
设置完成按键,默认'S',代表按开始键输入序列结束。
[code="libnge2"]
void SetEndCode(char endchar);
[/code]
清除序列,重新接受输入分析
[code="libnge2"]
void Clear();
[/code]
剩下就很简单了,请看代码。PSP上本例需要将fonts目录拷贝到PSP
|------EBOOT.PBP
|------fonts
截图:
正确输入"上上下下左右左右OX"并按start键
没有输入成功:
|