`
izuoyan
  • 浏览: 9263962 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Nebula3的Input系统

阅读更多

相对于其他的子系统来说, 输入系统是比较简单的. 很多游戏根本就没有对这一块进行封装, 而直接采用了Win32的消息机制.

不过经过封装的输入系统使用起来很方便, 呵呵.

N3中有三种输入设备, 键盘, 鼠标, 手柄. 分别是基于Win32消息, DirectInput, XInput实现的. 这里有一个继承图能够很好的说明输入系统的组织结构:

基本的消息处理机制是这样的一个流程:

InputServer里有默认的一个键盘, 一个鼠标, 一个手柄的"handler", 在每帧开始时InputServer会检测当前的输入消息, 得到一个InputEvent, 由相应的InputHandler来处理. 各个InputHandler都保存着当前帧各种输入状态的缓存(如鼠标左键是否按下), 因此, 在程序运行过程中, 我们只要在绘制结束前检测各个InputHandler的状态就相当于知道当前用户是怎样输入的了.

一般只需要关心这么几个函数就够了:

GamePad先略过, 原理相同

测试例子, 在上一次的代码中添加一段:

效果:

分享到:
评论

相关推荐

    Nebula3的maya插件

    总结来说,Nebula3的Maya插件是连接Maya和Nebula3生态系统的重要桥梁,特别是其NVX2网格导出功能,为3D内容创作者提供了高效的数据交换途径。随着未来开发的推进,我们期待看到更多增强功能的出现,如N3格式的支持,...

    Nebula3命令行应用程序向导

    《Nebula3命令行应用程序向导》是针对Nebula3框架的初学者设计的一款实用工具,旨在简化命令行应用程序的开发流程。Nebula3是一个强大的游戏开发引擎,以其高效、灵活和可扩展性著称。对于新接触这个框架的开发者来...

    Nebula模拟器-Nebula模拟器-Nebula模拟器

    3. **安全性**:Nebula模拟器提供了强大的隔离机制,确保各虚拟机之间的安全边界,防止恶意软件或攻击者跨虚拟机传播。 4. **可扩展性**:随着业务需求的增长,Nebula模拟器可以轻松添加新的虚拟机或扩展资源,无需...

    Nebula3 Console Application Wizard

    **Nebula3 Console Application Wizard** 是一个专为Nebula3框架设计的工具,用于帮助开发者快速创建和配置命令行应用程序。这个向导简化了命令行应用的开发过程,使得程序员可以更专注于核心功能的实现,而不用过于...

    nebula3加载xml的核心实现

    在Nebula3框架中,XML格式被广泛用于存储和传输数据,特别是在处理游戏或图形渲染等场景。本文将深入探讨“nebula3加载XML的核心实现”,关注于如何在Nebula3中读取、解析和利用XML文件来构建和操作ModelNode类型的...

    Nebula3 渲染程序向导

    Nebula3是一款强大的游戏开发和实时图形渲染平台,它提供了一系列高级特性,包括物理模拟、光照计算、材质系统和动画处理等。这个向导主要关注如何利用RTPlugin(Real-Time Plugin)来优化和扩展渲染流程。 ...

    Nebula2.25_汉化

    Nebula,作为一款知名的模拟器软件,被广泛用于音频处理、游戏开发以及系统测试等多个领域。本次我们关注的是"Nebula2.25_汉化"版本,它为中文用户提供了更加友好的使用环境。 Nebula2.25汉化版是原始Nebula模拟器...

    nebula图数据库V2.6.0

    3. **启动Nebula**:运行`docker-compose up -d`命令启动Nebula服务,后台运行。 4. **验证部署**:通过`docker-compose ps`检查各服务状态,`nGQL`客户端连接并测试查询功能。 5. **停止和清理**:使用`docker-...

    nebula3 engine

    此外,Nebula3 Engine还内置了物理模拟系统,可以实现逼真的物体碰撞和运动,增强游戏的交互性和沉浸感。 在编程方面,Nebula3 Engine通常采用C++作为主要的开发语言,但同时也支持脚本语言,如Lua或Python,这使得...

    nebula-graph-studio-3.8.0 ARM架构编译完成的包

    《Nebula Graph Studio 3.8.0 在 ARM 架构下的编译与应用》 在当前数字化时代,图数据库作为一种高效的数据管理工具,正逐渐受到广泛关注。Nebula Graph,作为一款高性能、分布式、易扩展的图数据库,其图形化管理...

    eclipse nebula部件

    3. **GridLayoutManager**:一种更灵活的布局管理器,可以方便地进行网格布局,支持百分比宽度和高度。 4. **DatePickerComposite**:一个日期选择组件,可以方便地选择日期,比SWT的日期时间控件更易用。 5. **NLS*...

    java-nebula客户端集成(csdn)————程序.pdf

    Java Nebula 客户端集成详解 Java Nebula 客户端集成是指将 Nebula 图数据库与 Java 应用程序集成,以便在 Java 应用程序中使用 Nebula 图数据库的功能。下面是 Java Nebula 客户端集成的详细过程。 一、建立 ...

    nebula-V3.3.0镜像资源包

    nebula-V3.3.0镜像资源包,包含meta、storged及graphd对应的镜像,以及nebula-console文件

    脱壳的nebula225b

    【标题】"脱壳的nebula225b"是指的NEBULA模拟器的一个特定版本,经过优化和修改,解决了原本存在的某些问题。在这个版本中,开发者针对无法完整扫描到所有游戏子Rom的问题进行了修复,使得用户可以更加顺利地进行...

    Nebula 3 source code

    A game engine and framework. It is built to be portable to various platforms, including the consoles and the iPhone. It has been used in commercial projects.

    Nebula PaperClips打印例子

    1. **安装与配置**:首先,用户需要了解如何下载并安装Nebula PaperClips,包括兼容的操作系统、硬件需求以及安装过程。在配置阶段,用户可能需要设置默认打印机、页面设置等选项。 2. **文档导入**:PaperClips...

    CH-Nebula

    3. **控制器支持**:为了提供更真实的体验,CH-Nebula可能支持连接游戏手柄或者键盘映射,以模拟街机摇杆和按键。 4. **设置与优化**:用户可以根据自己的硬件配置调整模拟器的参数,如帧率、分辨率等,以获得最佳...

    docker分布式nebula集群持久化配置文件.rar

    docker手动搭建3台nebula分布式集群,持久化配置的meta、graph、storage配置文件demo。

    nebula-console

    nebula-console

    org.eclipse.nebula.widgets.grid_1.0.0.jar_gridview_everyt8y_

    3. **排序与过滤** GridViewer允许用户根据列头进行点击排序,也可以自定义排序逻辑。同时,它提供了过滤功能,可以快速隐藏不满足条件的数据行,帮助用户专注于感兴趣的部分。 4. **编辑功能** 用户不仅可以查看...

Global site tag (gtag.js) - Google Analytics