菜单交互及菜单设计
写了个贪吃蛇的游戏。当时菜单实现是对菜单进行了抽象。实现了菜单模型的建立。
struct TypeMenu;
typedef struct TypeMenu * PMenu;
typedef struct TypeMenu
{
uint8 MenuID;
uint8 * MenuName;//长度不超过7个汉字长度
uint8 MenuPosX;
uint8 MenuPosY;
PMenu ParentMenu;//指向父菜单的指针
PMenu ChildMenu;//指向子菜单的指针
void (*func)(uint8 id);//功能函数
} Menu;
void MenuInit(PMenu MenuPtr);
void MenuRefresh(uint8 code);
void SetMenuPara(void);
void SetMenu(PMenu MenuPtr);
void SetMenuPage(uint8 dir);
void SetMenuIndex(uint8 dir);
void MenuEvent(uint8 KeyCode);
void MenuRecBack();
void MenuRecMain();
void MenuShow(uint8 num);
这是对菜单以及菜单操作函数的声明。当时感觉这样菜单通用性较强。完整的代码在菜单文件中单独列出。
这次看了MSP430人机交互中关于菜单的内容。感觉这方面还有很多没有考虑到。
1. 菜单交互的设计原则
操作的快捷性
防止误操作
符合操作习惯
有效提示
2.书中举了基于状态机的菜单的实现。
对于这2种方法各自的优缺点,由于以前不曾用状态机写过,也就不太清楚了。感觉两种方法都不错。
我要赚赏金
