minetest源码解析一:mymain流程图以及核心函数介绍

mymain流程图以及核心函数介绍


一 流程图


minetest源码解析一:mymain流程图以及核心函数介绍



二 流程图中涉及到的核心函数介绍


1.创建游戏回调函数

minetest->mainmenumanager.h

g_gamecallback = newMainGameCallback(device);

MainGameCallback :  IGameCallback

class IGameCallback

{

public:

virtualvoid exitToOS() = 0;

virtualvoid disconnect() = 0;

virtualvoid changePassword() = 0;

virtualvoid changeVolume() = 0;

};


这个主要是游戏中弹出的一个界面。



2.创建输入处理器

InputHandler *input = newRealInputHandler(device, &receiver);

这个主要是游戏中截取鼠标key、鼠标、滚轮事件。



3.设置环境界面的各种颜色以及字体

gui::IGUISkin* skin =guienv->getSkin();

skin->setFont(font);

skin->setColor(gui::EGDC_3D_HIGH_LIGHT,video::SColor(255,0,0,0));



4.创建云SceneNode

主要是run game时,在点击start game之后,但是游戏真实界面还没有出来之间使用的。这个之间需要显示一些连接服务器、loading的信息。

g_menuclouds:是一个场景,需要g_menucloudsmgr->drawAll();