Quake 3 源码分析(三)

Quake 3 源码分析(三)

--键盘响应事件之启动主菜单

 

源程序中的调用关系如下:

WinMain()àCom_Frame ()àCom_EventLoop()à(调用Com_GetEvent得到一个event,根据evType调用函数) CL_KeyEvent()àVM_Call( uivm,。。。)à(如果不存在uix86.dll,则调用VM_CallCompiled函数) vm->entryPoint()à(ui_main.c文件中)vmMain()à(根据参数值调用不同的函数进行处理)UI_SetActiveMenuàUI_MainMenu()à(调用UI_CDKeyMenu函数) Main_MenuDraw()à(设置菜单的回调函数Main_MenuEvent(),调用Menu_AddItem函数) UI_PushMenu()àMenu_SetCursor()àMenu_CursorMoved()à调用菜单的callback函数Main_MenuEvent

 

主菜单的回调函数:

Main_MenuEvent()à(ID_SINGLEPLAYER=10为单人游戏) UI_SPLevelMenu()à(调用菜单初始化函数UI_SPLevelMenu_Init,设置菜单并设置callback函数,“CHOOSE LEVEL”的callbackUI_SPLevelMenu_LeftArrowEventplayernamecallback函数为UI_SPLevelMenu_PlayerEvent,并调用Menu_AddItem添加菜单项) UI_SPLevelMenu_SetMenuItems()àUI_SPLevelMenu_SetBots()àUI_GetBotInfoByName()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值