关于游戏中信号处理与按键冲突的​问题

关于游戏中信号处理与按键冲突的​问题

问题描述:

老师,中断信号有没有可能在按键控制的时候产生?

如:正在执行move_left()的时候,中断去执行sig_handler(),导致图形位置改变了再回到move_left()的时候出现碰撞检测错误。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答
是的,指的是调节定时时间!这个定时任务在move_left()无法关闭的!但是可以刷新定时时间,signal捕捉的是SIGALARM信号,在move_left中重新 调用alarm函数可以刷新定时时间,从而可以先执行按键,在执行下落!但是这个实际的效果需要反复调试下,才能做到最优!
大白老师 2023-10-28 21:00:51
这个是这个是有可能的,因为sing_handler ()是一直向下走,他可能会打断move_left的触发!这个只能优化延时时间来调整下
  • 提问者 jammy001 #1

    大白老师,谢谢解答!优化延时是指调节定时时间吗?能不能在move_left()内部忽略信号或者关闭定时器,调用结束再恢复?

    2023-10-29 12:42:41
  • 大白老师 回复 提问者 jammy001 #2

    是的,指的是调节定时时间!这个定时任务在move_left()无法关闭的!但是可以刷新定时时间,signal捕捉的是SIGALARM信号,在move_left中重新 调用alarm函数可以刷新定时时间,从而可以先执行按键,在执行下落!但是这个实际的效果需要反复调试下,才能做到最优!

    2023-10-29 18:31:37
  • 大白老师 回复 提问者 jammy001 #3

    是的,指的是调节定时时间!这个定时任务在move_left()无法关闭的!但是可以刷新定时时间,signal捕捉的是SIGALARM信号,在move_left中重新 调用alarm函数可以刷新定时时间,从而可以先执行按键,在执行下落!但是这个实际的效果需要反复调试下,才能做到最优!

    2023-10-29 18:31:44
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师