怎么才能支持按键按下去后不放,连续播放图片?

theheroonline 2011-03-21 05:22:09
我做了一个实现简单的动画功能,但是只支持按下后放开,按这不放的时候要停顿5秒左右才能连续播放动画;怎么实现按下后不要停顿能连续播放?
/*回调函数*/
static void draw_boy(timer * pMe)
{
IDISPLAY_ClearScreen(pMe->a.m_pIDisplay);
switch(pMe->wParam) {

case AVK_UP:
IIMAGE_SetParm(pMe->LPBoy_up_down,IPARM_OFFSET,0,(pMe->pi.cy/14)*(13 - (pMe->boy_infor.boy_up) ));
IIMAGE_SetDrawSize(pMe->LPBoy_up_down,22,pMe->pi.cy/14);
IIMAGE_Draw(pMe->LPBoy_up_down,pMe->boy_infor.x,pMe->boy_infor.y);
//IBASE_Release((IBase *)pMe->LPBoy);
break;
case AVK_DOWN:
IIMAGE_SetParm(pMe->LPBoy_up_down,IPARM_OFFSET,0,(pMe->pi.cy/14)*(6 - (pMe->boy_infor.boy_down) ));
IIMAGE_SetDrawSize(pMe->LPBoy_up_down,22,pMe->pi.cy/14);
IIMAGE_Draw(pMe->LPBoy_up_down,pMe->boy_infor.x,pMe->boy_infor.y);
//IBASE_Release((IBase *)pMe->LPBoy);
break;
default:
return ;}
IDISPLAY_Update(pMe->a.m_pIDisplay);}
static boolean timer_HandleEvent(timer* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
switch (eCode)
{
case EVT_KEY:
switch(wParam)
{
case AVK_UP:
pMe->boy_infor.y -=3;
pMe->boy_infor.boy_up++;
pMe->boy_infor.boy_up = pMe->boy_infor.boy_up%3;

if (SUCCESS != ISHELL_SetTimer(pMe->a.m_pIShell,100,(PFNNOTIFY)draw_boy,pMe))
{
return FALSE;
}
break;
case AVK_DOWN:
pMe->boy_infor.y +=3;
pMe->boy_infor.boy_down++;
pMe->boy_infor.boy_down = pMe->boy_infor.boy_down%3;

if (SUCCESS != ISHELL_SetTimer(pMe->a.m_pIShell,100,(PFNNOTIFY)draw_boy,pMe))
{
return FALSE;
}
break;

default:
return FALSE;
}
return(TRUE);
default:
break;
}
return FALSE;


只上传了上、下键的代码,左、右键代码基本一样,帮看下怎么实现按下不放的连续播放?
...全文
1641 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
strayedbird 2011-03-22
  • 打赏
  • 举报
回复
draw_boy()中再起定时器来播放动画,检测按键抬起的事件去消除draw_boy()中启动的定时器。

2,851

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧