前面介绍中说到启动状态有
22种,那么这些状态是什么呢?现在就来分析这些状态,它的定义如下:
#001enum EStartupState{
#002
STATE_FIRST, // Initial startup
启动开始状态。
#003
STATE_MEDIA_INIT, // Initialzie media library
初始化访问媒介组件,比如创建音乐播放。
#004
STATE_LOGIN_SHOW, // Show login screen
显示登录对话框窗口。
#005
STATE_LOGIN_WAIT, // Wait for user input at login screen
等待用户输入用户名称和密码。
#006
STATE_LOGIN_CLEANUP, // Get rid of login screen and start login
用户登录验证用户服务器。
#007
STATE_UPDATE_CHECK, // Wait for user at a dialog box (updates, term-of-service, etc)
等待更新。
#008
STATE_LOGIN_AUTH_INIT, // Start login to SL servers
开始进行用户验证。
#009
STATE_LOGIN_AUTHENTICATE, // Do authentication voodoo
发送用户验证。
#010
STATE_LOGIN_NO_DATA_YET, // Waiting for authentication replies to start
等待验证服务器返回是否登录成功的数据。
#011
STATE_LOGIN_DOWNLOADING, // Waiting for authentication replies to download
继续下载登录的数据。
#012
STATE_LOGIN_PROCESS_RESPONSE, // Check authentication reply
处理登录验证服务器返回的数据。
#013
STATE_WORLD_INIT, // Start building the world
登录服务器成功后,就开始创建游戏世界。
#014
STATE_SEED_GRANTED_WAIT, // Wait for seed cap grant
发送到
SIM seed服务器的兼容性测试。
#015
STATE_SEED_CAP_GRANTED, // Have seed cap grant
处理
SEED服务器返回数据。
#016
STATE_WORLD_WAIT, // Waiting for simulator
等待
SIM服务器返回数据。
#017
STATE_AGENT_SEND, // Connect to a region
代理类连接到一个区域服务器。
#018
STATE_AGENT_WAIT, // Wait for region
等待连接区域服务器。
#019
STATE_INVENTORY_SEND, // Do inventory transfer
获取自己的所有物品清单。
#020
STATE_MISC, // Do more things (set bandwidth, start audio, save location, etc)
设置带宽,开始下载音乐,保存登录的位置等等。
#021
STATE_PRECACHE, // Wait a bit for textures to download
开始纹理图片下载。
#022
STATE_WEARABLES_WAIT, // Wait for clothing to download
开始下载衣服纹理图片。
#023
STATE_CLEANUP, // Final cleanup
清空所有登录过程状态,已经登录成功了。
#024
STATE_STARTED // Up and running in-world
开始进入渲染游戏画面。
#025};
#026
通过上面
22种状态的处理,才进入游戏的渲染状态,才可以控制里面的人物行走。因此这段代码也是非常长的,刚刚这个函数就有2000多行代码。
蔡军生 2008/5/29 QQ:9073204 深圳