-
Notifications
You must be signed in to change notification settings - Fork 6
API Reference(zh)
Gamepiaynmo edited this page Aug 7, 2020
·
2 revisions
有时你可能想用日志记录一些信息,以在日后出错时方便排查。
BML提供了一个简单的日志系统。你可以通过调用IMod接口的GetLogger()函数获得它的实例。
这个日志系统仅有3个函数:
virtual void Info(const char* fmt, ...);
virtual void Warn(const char* fmt, ...);
virtual void Error(const char* fmt, ...);
为不同的信息严重级别而准备。
开始加载开始菜单 & 开始菜单加载完毕。
virtual void OnPreStartMenu() {};
virtual void OnPostStartMenu() {};
退出游戏。
virtual void OnExitGame() {};
开始加载关卡 & 关卡加载完毕。
virtual void OnPreLoadLevel() {};
virtual void OnPostLoadLevel() {};
开始游玩关卡。
virtual void OnStartLevel() {};
开始重置关卡 & 关卡重置完毕。
virtual void OnPreResetLevel() {};
virtual void OnPostResetLevel() {};
暂停 & 恢复。
virtual void OnPauseLevel() {};
virtual void OnUnpauseLevel() {};
开始退出关卡 & 关卡退出完毕。
virtual void OnPreExitLevel() {};
virtual void OnPostExitLevel() {};
开始加载下一关 & 下一关加载完毕。
virtual void OnPreNextLevel() {};
virtual void OnPostNextLevel() {};
游戏结束菜单出现。
virtual void OnDead() {};
到达气球飞船 & 游戏通关菜单出现。
virtual void OnPreEndLevel() {};
virtual void OnPostEndLevel() {};
分数计时器启动 & 停止。
virtual void OnCounterActive() {};
virtual void OnCounterInactive() {};
球控制模块启动 & 停止。玩家是否能够控制球。
virtual void OnBallNavActive() {};
virtual void OnBallNavInactive() {};
摄像机控制模块启动 & 停止。玩家是否能够旋转摄像机。
virtual void OnCamNavActive() {};
virtual void OnCamNavInactive() {};
球进入死亡区。
virtual void OnBallOff() {};
球到达盘点火 & 下一小节加载完成。
virtual void OnPreCheckpointReached() {};
virtual void OnPostCheckpointReached() {};
到达气球飞船,在OnPreEndLevel之前触发。
virtual void OnLevelFinish() {};
球在没有额外生命时进入死亡区。在OnBallOff之后。
virtual void OnGameOver() {};
球碰到分数球时触发,不论大小。
virtual void OnExtraPoint() {};
开始播放生命球减少动画 & 动画播放完毕。
virtual void OnPreSubLife() {};
virtual void OnPostSubLife() {};
开始播放生命球增加动画 & 动画播放完毕。
virtual void OnPreLifeUp() {};
virtual void OnPostLifeUp() {};
模组的初始化 & 释放。
virtual void OnLoad() {};
virtual void OnUnload() {};
当有配置条目被修改时。
virtual void OnModifyConfig(CKSTRING category, CKSTRING key, IProperty* prop) {};
当“Object Load”这个BB被用来加载一个新的nmo文件时。
virtual void OnLoadObject(CKSTRING filename, BOOL isMap, CKSTRING masterName,
CK_CLASSID filterClass, BOOL addtoscene, BOOL reuseMeshes, BOOL reuseMaterials,
BOOL dynamic, XObjectArray* objArray, CKObject* masterObj) {};
virtual void OnLoadScript(CKSTRING filename, CKBehavior* script) {};
在每次游戏循环/渲染帧时调用。
virtual void OnProcess() {};
virtual void OnRender(CK_RENDER_FLAGS flags) {};
在作弊模式开启/关闭时调用。
virtual void OnCheatEnabled(bool enable) {};
注册一个新的球种。
virtual void RegisterBallType(CKSTRING ballFile, CKSTRING ballId, CKSTRING ballName, CKSTRING objName,
float friction, float elasticity, float mass, CKSTRING collGroup, float linearDamp, float rotDamp,
float force, float radius);
注册一种新的路面。
virtual void RegisterFloorType(CKSTRING floorName, float friction, float elasticity, float mass,
CKSTRING collGroup, bool enableColl);
注册一个新的道具球种。
virtual void RegisterModulBall(CKSTRING modulName, bool fixed, float friction, float elasticity,
float mass, CKSTRING collGroup, bool frozen, bool enableColl, bool calcMassCenter, float linearDamp,
float rotDamp, float radius);
注册一个新的凸网格物理化机关(大本钟和纸球)。
virtual void RegisterModulConvex(CKSTRING modulName, bool fixed, float friction, float elasticity,
float mass, CKSTRING collGroup, bool frozen, bool enableColl, bool calcMassCenter, float linearDamp,
float rotDamp);
注册一个新的变球器。
virtual void RegisterTrafo(CKSTRING modulName);
注册一种新机关。
virtual void RegisterModul(CKSTRING modulName);