[教程] 【教程20】有趣小应用Konami Code

[教程] 【教程20】有趣小应用Konami Code

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键


没有输入成功:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册[请认真填写注册原因]
Loli的大哥哥~~

很有意思,up

TOP

很好。。。能不能吧这些教程置顶啊?以便翻阅。。。

TOP

很有意思的应用啊,学习学习..

TOP

真方便

TOP

GMT+8, 2010-9-7 08:47, Processed in 0.035826 second(s), 8 queries, Gzip enabled.

Powered by Discuz! 7.2© 2001-2009 Comsenz Inc.京ICP备08105566号