首发于Enaium的个人博客
SMAPI
提供了一些事件,比如游戏的内容、显示、输入等事件。这些事件可以让我们在游戏中添加自己的逻辑。这一节我们就来看看如何使用这些事件。
注册一个事件
在SMAPI
中,我们可以通过IModHelper
的Events
属性来注册事件。比如我们要注册游戏启动事件,可以这样写:
public override void Entry(IModHelper helper)
{
helper.Events.GameLoop.GameLaunched += OnLaunched;
}
private void OnLaunched(object? sender, GameLaunchedEventArgs e)
{
}
这样我们就注册了一个游戏启动事件。当游戏启动时,OnLaunched
方法就会被调用,它有两个参数,第一个是事件的发送者,它是一个可空的对象,第二个是事件的参数,它是一个GameLaunchedEventArgs
对象。这个对象里面没有任何属性,只是一个空的类。
输入事件
先来看一下按键按下或释放的事件。
public override void Entry(IModHelper helper)
{
helper.Events.Input.ButtonPressed += OnPress;
}
private void OnPress(object? sender, ButtonPressedEventArgs e)
{
Monitor.Log($"