当前位置:  开发笔记 > 编程语言 > 正文

推或拉?将按键转换为游戏中车辆的速度

如何解决《推或拉?将按键转换为游戏中车辆的速度》经验,为你挑选了1个好方法。

我是否应该在按下按键时将按键推到车辆上,或者车辆是否应该从发动机上按下按键?

我有一个车辆物体,它有位置,速度和加速成员(以及其他东西)和更新方法,在此期间它根据其速度和基于其加速度的vevlocity更新其位置.

我有一个游戏对象,其中包含游戏循环,它调用车辆上的更新方法.

如果玩家用箭头键控制车辆,按键是否设置加速(按下)和按键释放清除速度,或者车辆是否应该询问游戏引擎是否按下了按下(拉动)?我认为推动意味着键盘控制模块需要了解车辆,而拉动意味着车辆需要知道特定的键盘控制.

我认为一个相关的问题是:如果所有对象都知道所有其他对象,或者是否应该有严格的层次结构,那么对象可以向树上的其他对象询问事物/告诉事物,但不要向下(或反之亦然) )?



1> Caerbanog..:

您应该尝试遵循订阅/观察者模式.您将所有密钥捕获代码放入一个单独的 InputManager中,然后将每个对象都需要响应以向管理器输入寄存器.

管理员保存订阅对象列表,并在按下/按下按键时向其发送事件.只是不要忘记在删除对象或"失去焦点"时取消订阅.

这避免了轮询问题.很少有例外情况需要轮询解决方案.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有