2026年10月31日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
1000
Lv9有为九子能等级图标
勋章勋章勋章勋章勋章
帖子
9.3万
回复
2,089
积分
60.3万
注册
2006-12-06
[修改美化]

给不会event函数的教程>mg

[复制链接]
查看 443 回复 6
楼主 发表于 | 只看该作者
17 人收藏

看到很多网上有那么多关于event的教程,但是还是有很多人不会使用函数。所以偶还是写一个教程,希望你们能够看懂。

――――――

event函数并不难。当你按下某个键、松开某个键、触屏按下、触屏松开、触屏移动,event函数都会被执行一次。并且返回三个参数值,就是msg,p1,p2的值。msg就是按键类型(按下某个键、松开某个键、触屏按下、触屏松开、触屏移动),p1是具体按键(0、1、2、3、4、5、6、7、8、9、*、#、↑、↓、←、→……键)或者触屏的x坐标。p2是触屏的y坐标。根据三个参数值,你就可以判断按键情况了,然后你就可以写上相应功能代码。

――――――

看下面代码慢慢理解吧。它们很相似哦,不过他们运行效果可是不同滴……

(广告时间哈:哈喽酷狗)

――――――

按键事件示例1代码(附件一):

int main(){}//入口函数,必须有,这里没有写任何代码

int event(int msg,int p1,int p2)

{

cls(0,0,0);//清屏为黑色

rect(20,30,40,50,0,255,0);//画矩形

refresh(0,0,SCRW,SCRH);//刷新屏幕

}

那么,运行这个代码会发生什么情况呢?

运行时,由于main函数内无任何代码,所以屏幕不会发生变化。当你按任何一个键时候,event里面的代码就会被执行(执行了几次?一次?想想),也就是在屏幕左上方会出现一个绿色矩形。

――――――

按键事件示例2代码(附件二):

int main(){}

int event(int msg,int p1,int p2)

{

if(msg==KY_UP)//如果松开按键则执行if大括号代码

{

cls(0,0,0);

rect(20,30,40,50,0,255,0);

refresh(0,0,SCRW,SCRH);

}

}

刚运行时屏幕不会发生变化。当你松开(看清楚,是松开哦,当你按下某个键不放开时候有反应不?)任何一个键的时候,在屏幕左上方会出现一个绿色矩形。

――――――

按键事件示例3代码(附件三):

int main(){}

int event(int msg,int p1,int p2)

{

if(msg==KY_UP)//如果松开按键则执行if大括号代码

{

if(p1==_DOWN)//如果按的键是下方向键则执行if大括号代码

{

cls(0,0,0);

rect(20,30,40,50,0,255,0);

refresh(0,0,SCRW,SCRH);//记得刷新哦^_^

}

}

}

刚运行时屏幕不会发生变化。当你松开下方向键(要是按其他键是没有反应哦(^o^))的时候,在屏幕左上方会出现一个绿色矩形。

――――――

答案:

答案一、两次,分别是按下和松开按键时候执行一次event函数。我们每次按键时候,都是先按下然后松开按键,所以一次按键会执行两次event函数,除非你按下键时候立即抠电池出来^_^

答案二、没有反应。因为是你按键松开时候才画矩形的。

(广告时间哈:大家好才是真的好)

――――――

按键事件示例(附件四)

我做的一个选择条模型:

int i;//全局函数,选择条序号

int main()

{

//初始化界面

i=0;

xz(0);

}

int xz(int x)//选择条,x是判断按键情况

{

cls(0,0,0);

if(x==0){i=0;}

if(x==2){i=i-SCRH/10;}

if(x==8){i=i+SCRH/10;}

if(i>SCRH-SCRH/10){i=0;}

if(i<0){i=SCRH-SCRH/10;}

rect(20,i-1,SCRW-40,SCRH/10,0,255,0);

refresh(0,0,SCRW,SCRH);

}

int event(int msg,int p1,int p2)

{

if(msg==KY_DOWN)//按下按键

{

if(p1==_DOWN){xz(8);}//下键

if(p1==_UP){xz(2);}//上键

if(p1==_SRIGHT){exit();}//左软键

}

}

――――――

想实际测试一下上面的代码的效果,那就下载下面的附件吧。

终于写完咯(^o^),好晚呀,凌晨……

by牧歌人

for不会event者

登录回复
11720
Lv9有为九子能等级图标等级图标等级图标
勋章勋章勋章
帖子
4
回复
1,460
积分
3,406
注册
2011-02-07
2 楼

顶起!

40345
Lv11尝以士自居等级图标等级图标等级图标等级图标等级图标
勋章勋章勋章勋章勋章
帖子
7
回复
1,604
积分
9万
注册
2011-05-13
3 楼

顶你个肺啊

24934
Lv8能识八方语等级图标等级图标等级图标等级图标等级图标等级图标等级图标
勋章勋章勋章勋章勋章勋章勋章勋章+4
帖子
13
回复
1,652
积分
1.1万
注册
2011-04-01
4 楼

早会了,你恐怕还不会吧

68240
Lv7可吟七步诗等级图标
勋章勋章
帖子
3
回复
123
积分
1,034
注册
2011-08-10
5 楼

怎么是ej 转的

68240
Lv7可吟七步诗等级图标
勋章勋章
帖子
3
回复
123
积分
1,034
注册
2011-08-10
6 楼

怎么是在ej 转的?

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块