当前位置: 首页 > news >正文

舒城县建设局网站智慧团建网页版手机登录

舒城县建设局网站,智慧团建网页版手机登录,一键部署wordpress,淘客cms建站系统首发于Enaium的个人博客 SMAPI提供了一些事件,比如游戏的内容、显示、输入等事件。这些事件可以让我们在游戏中添加自己的逻辑。这一节我们就来看看如何使用这些事件。 注册一个事件 在SMAPI中,我们可以通过IModHelper的Events属性来注册事件。比如我们…

首发于Enaium的个人博客


SMAPI提供了一些事件,比如游戏的内容、显示、输入等事件。这些事件可以让我们在游戏中添加自己的逻辑。这一节我们就来看看如何使用这些事件。

注册一个事件

SMAPI中,我们可以通过IModHelperEvents属性来注册事件。比如我们要注册游戏启动事件,可以这样写:

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($"{e.Button} Press", LogLevel.Debug);
}

这样我们就注册了一个按键按下事件。当按键按下时,OnPress方法就会被调用,它有两个参数,第一个是事件的发送者,它是一个可空的对象,第二个是事件的参数,它是一个ButtonPressedEventArgs对象。这个对象有一个属性Button,它是一个SButton枚举,表示按下的按键。

public override void Entry(IModHelper helper)
{helper.Events.Input.ButtonReleased += OnReleased;
}
private void OnReleased(object? sender, ButtonReleasedEventArgs e)
{Monitor.Log($"{e.Button} Released", LogLevel.Debug);
}

这样我们就注册了一个按键释放事件。当按键释放时,OnReleased方法就会被调用,它有两个参数,第一个是事件的发送者,它是一个可空的对象,第二个是事件的参数,它是一个ButtonReleasedEventArgs对象。这个对象有一个属性Button,它是一个SButton枚举,表示释放的按键。

上面这些按键事件只能获取一个按键,如果要获取多个按键,可以使用ButtonsChanged事件。

public override void Entry(IModHelper helper)
{helper.Events.Input.ButtonsChanged += OnChanged;
}private void OnChanged(object? sender, ButtonsChangedEventArgs e)
{if (e.Pressed.Any()){Monitor.Log($"{string.Join(",", e.Pressed)} Press", LogLevel.Debug);}if (e.Released.Any()){Monitor.Log($"{string.Join(",", e.Released)} Released", LogLevel.Debug);}
}

当事件被触发时,Pressed属性表示按下的按键,Released属性表示释放的按键,之后我们判断按键是否为空,如果不为空,就输出按键。

我们还可以使用KeyBindList来判断这些按键是否被按下。

private void OnChanged(object? sender, ButtonsChangedEventArgs e)
{var keyBindList = KeybindList.Parse("LeftControl + A");if (keyBindList.JustPressed()){Monitor.Log("Keybind Just Pressed", LogLevel.Debug);}
}

这样就可以判断LeftControlA是否被按下。

显示事件

SMAPI还提供了一些显示事件,比如MenuChanged事件,在游戏中所有和菜单有关的事件都会触发这个事件。

public override void Entry(IModHelper helper)
{helper.Events.Display.MenuChanged += OnMenuChanged;
}private void OnMenuChanged(object? sender, MenuChangedEventArgs e)
{Monitor.Log($"{e.OldMenu} -> {e.NewMenu}", LogLevel.Debug);
}

比如我们打开背包,就会是一个空的菜单到StardewValley.Menus.GameMenu,这样就会输出 -> StardewValley.Menus.GameMenu,关闭背包就会输出StardewValley.Menus.GameMenu ->

显示事件中其他的一些事件都和游戏的图形绘制有关,这里就不多介绍了。

内容事件

public override void Entry(IModHelper helper)
{helper.Events.Content.AssetRequested += OnAssetRequested;
}
private void OnAssetRequested(object? sender, AssetRequestedEventArgs e)
{Monitor.Log(e.Name.Name, LogLevel.Debug);
}

当游戏加载一个资源时,就会触发这个事件。

好了,上面介绍了部分事件,其他事件可以参考SMAPI的文档。

http://www.yayakq.cn/news/532950/

相关文章:

  • 怎么介绍自己做的网站效果图网站如何做流动字幕
  • 此网站域名三天更换百度网站做pc自适应
  • 网站建设方案后期服务做仪表宣传哪个网站好
  • wordpress 网站同步ciid室内设计网
  • 精品课程网站建设总结报告南京建设网站哪家好
  • 如何快速建网站微信小程序开发工具pc6
  • 大连网站开发费多少钱内蒙古seo
  • 做销售在哪些网站发贴wordpress汉化新闻主题
  • 义乌做网站公司义乌网站制作厦门制作公司网站哪家好
  • 重庆手机网站推广定做金泉网 网站建设
  • 网站制作公司哪家正规网上开店电商平台有哪些
  • 网站的小图标怎么做的杭州网站的制作
  • 网站建设设计技巧wordpress 256m内存
  • 网站建设需要哪些工作室佛山微信网站建设哪家好
  • 信息如何优化上百度首页公司郑州整站网站优化
  • 开网站 怎么做网上支付百度云服务器建设网站
  • 上海高端网站建设公山东省住房和城乡建设厅官网证书查询
  • qq空间实名认证网站网站与服务器的关系
  • 北京道路建设在什么网站查询扬州网站商城建设价格表
  • 做各国民宿租赁的网站天津做网站优化的公司
  • 朝阳市建设厅查询网站seo排名优化首页
  • 怎么用个人电脑做网站职业生涯规划网站开发背景
  • 今天宁波最新消息网络优化工程师是干什么的
  • 仿制网站建设网站服务器证书过期怎么解决
  • 做网站包括图片设计吗西域数码网站建设
  • 西部数码做网站html5 mysql 网站开发
  • 怎么改网站上的logowordpress显示选项解决方法
  • 个人摄影网站模版闸北网站优化公司
  • 招聘网站开发流程网页布局设计技术包括
  • 网站开发代码归属上海自主建站模板