SMXAPI

类型

类型 描述
(Global) 全局范围
DataBar 数据栏
Factory 用于创建对象(SmxObject)
Game 游戏流程控制
Mario 马里奥
MessageBox 消息提示框
SceneManager 场景管理器
SmxObject 场景单位对象
SoundEngine 声音引擎
Timer 计时器

(Global)成员

事件

名称 描述
SceneLoaded 场景载入完成时触发
CoinsChanged 金币数发生变化时触发
ScoreChanged 分数发生变化时触发
MarioLifesChanged mario生命数(剩余游戏次数)发生变化时触发
Timer 定时器每次经历指定时间间隔时触发

特殊变量

名称 类型 描述
__COINCOUNT__ int 当前金币数
__SCORE__ int 当前分数
__LIFECOUNT__ int 当前生命数
__LASTOBJ__ int 用于获取最后创建的对象
返回类型列表

DataBar成员

方法

名称 描述
SetTitle 设置标题内容
FlashTitle 闪烁标题
返回类型列表

Factory成员

方法

名称 描述
Create 创建一个对象
返回类型列表

Game成员

方法

名称 描述
SceneComplete 切换至下一场景
WorldComplete 世界完成
LoadSceneByName 载入当前地图中指定名称场景
LoadSceneByIndex 载入当前地图中指定索引场景
SetMarioLifeCount 用于设置mario生命数
SetCoinCount 用于设置金币数
SetScore 用于设置分数
返回类型列表

Mario成员

属性

名称 类型 描述
Left int 获取/设置马里奥左边缘与场景左边缘的距离
Top int 获取/设置马里奥顶端与场景顶端的距离
Right int 获取/设置马里奥右边缘与场景左边缘的距离
Bottom int 获取/设置马里奥底端与场景顶端的距离
Visible int (0/1) 获取/设置马里奥可见性

方法

名称 描述
MoveTo 移动马里奥的位置
返回类型列表

MessageBox成员

方法

名称 描述
Show 显示一个消息提示框
返回类型列表

SceneManager成员

方法

名称 描述
LoadScene 载入指定文件名的场景
CloseScene 关闭当前场景
返回类型列表

SmxObject成员

属性

名称 类型 描述
Name string 获取对象的名称
ClsId int 获取/设置对象的类编号
Left int 获取/设置对象左边缘与场景左边缘的距离
Top int 获取/设置对象顶端与场景顶端的距离
Right int 获取/设置对象右边缘与场景左边缘的距离
Bottom int 获取/设置对象底端与场景顶端的距离
Width int 获取/设置对象的宽度
Height int 获取/设置对象的高度
Visible int (0/1) 获取/设置对象可见性
XSpeed double 获取/设置对象速度x分量
YSpeed double 获取/设置对象速度y分量
XSpeedAcc double 获取/设置对象加速度x分量
YSpeedAcc double 获取/设置对象加速度y分量
XSpeedMax double 获取/设置对象速度x分量最大值

事件

名称 描述
Hitting 与马里奥发生碰撞瞬间触发
Hitted 与马里奥发生碰撞后触发
Responding 对象响应瞬间触发(如问号方块被撞出金币)
Responded 对象响应后触发
返回类型列表

SoundEngine成员

方法

名称 描述
PlayBGM 播放指定文件名的背景音乐
StopBGM 停止背景音乐播放
PlaySoundEffects 播放指定音效
StopSoundEffects 停止音效播放
返回类型列表

Timer成员

方法

名称 描述
Start 启动定时器
Stop 停止定时器
SetInterval 设置定时器触发间隔时间
返回类型列表

语法

SetTitle(string title)

参数

语法

FlashTitle(int count)

参数

语法

int Create(int typeId, int clsId, string name, int visible,
    string position, string properties)

参数

返回值

创建对象索引

示例

int ENEMY_TYPE_ID = 8;
int GOOMBA_CLASS_ID = 1;
int index = Factory.Create(ENEMY_TYPE_ID, GOOMBA_CLASS_ID, "newEnemy", 1,
    "160,160,16,16", ""); // 创建一个敌人

int FACILITY_TYPE_ID = 6;
int BLOCK_CLASS_ID = 3;
index = Factory.Create(FACILITY_TYPE_ID, BLOCK_CLASS_ID, "newBlock", 1,
    "32,160,16,16", "1,9"); // 创建一个问号方块

语法

Game.LoadSceneByName(string name)

参数

语法

Game.LoadSceneByIndex(int index)

参数

语法

Game.SetMarioLifeCount(int value)

参数

语法

Game.SetCoinCount(int value)

参数

语法

Game.SetScore(int value)

参数

语法

mario.MoveTo(int x1, int y1)

参数

语法

int Show(string message)

参数

返回值

是否成功执行

示例

string msg = "this is a message";
MessageBox.Show(msg);

语法

SceneManager.LoadScene(string fileName)

参数

类型

int

备注

随意修改类编号可能会导致对象表现出异常行为

示例

int GOLD_BLOCK_CLASS_ID = 3;
int BLUE_BLOCK_CLASS_ID = 4;
 
/* 如果object对象是金色问号方块, 则将其转换为蓝色的问号方块 */
int oldClassId = object.ClsId;
if (oldClassId == GOLD_BLOCK_CLASS_ID)
{
    object.ClsId = BLUE_BLOCK_CLASS_ID;
}

语法

SoundEngine.PlayBGM(string fileName)

参数

语法

SoundEngine.PlaySoundEffects(int soundId)

参数

语法

Timer.Start(int millisecondsInterval)

参数

语法

Timer.SetInterval(int millisecondsInterval)

参数