#优化 #18xx #动作 #图形 #键盘事件

n18ui

用于构建18xx地图和寻找最佳路线的GUI

1个不稳定版本

0.1.0 2021年10月8日

#11 in #优化


用于 navig18xx

MIT/Apache

1MB
18K SLoC

提供用户界面来管理18xx游戏地图并计算每个公司的最佳收入。

查看rusty_train二进制文件,了解如何使用此存储库的示例。

概述

[用户界面]结构封装地图绘制和事件处理。它分为几个组件

  • [资源]:当前的[地图]和可用的[游戏]。
  • [画布]:地图绘制的表面。
  • [状态]:当前用户界面状态(或“模式”),它定义了用户可用的操作以及地图的绘制方式。
  • [键映射]:通过触发状态操作响应用户的键盘和鼠标输入。
  • [控制器]:管理用户界面元素并收集用户输入(例如,选择要加载或保存的游戏文件)。

事件和事件处理程序

[用户界面]处理三种类型的事件

请注意,事件详细信息,如键标识符,由[按钮按下]和[按键按下]结构定义,这些结构使用来自GDK 3库的类型。

事件处理程序的响应

上述每个[用户界面]事件处理程序都返回一个[UiResponse]值,该值指示[用户界面]在处理事件后应采取的操作(如果有的话)。这些操作由UserInterface::respond执行。

依赖关系

~21MB
~471K SLoC