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

开源的网站系统ps怎样做网站设计

开源的网站系统,ps怎样做网站设计,一般使用的分辨率的显示密度是多少dpi ),如何做网站alexa排名首发于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/833248/

相关文章:

  • 仿站酷网站模板怎么看网站是谁做的
  • 阳江哪里做网站个人与公司网站备案
  • 宁波seo网站推广软件网店代运营哪家好
  • 网站开发合同协议郑州旅游网站建设
  • 中为网站建设ui设计学徒
  • 网站seo优化管理系统一键生成100个原创视频
  • 城关区建设局网站手机网站使用微信支付
  • 那些做环保网站的好哪里制作网站好
  • 哈尔滨企业建站服务商蒙icp备网站建设
  • 怎样做58网站深紫色网站
  • 建网站教学长沙企业建站系统
  • vr全景网站开发制作jsp网站建设项目实战课本内容
  • 芜湖网站建设whwzjs网站如何管理
  • 珠海市品牌网站建设平台wap自助建站
  • 适合用于网站开发的工具芜湖做公司网站
  • 网站建设宣传册内容微信里的小程序游戏
  • 网站建好了怎么做网站开发用笔记本电脑
  • 安卓软件下载用什么好潍坊seo关键词排名
  • ipv6 网站开发百度极速版免费下载
  • 怎么做企业曝光引流网站自己建一个网站能过期吗
  • 增城百度做网站多少钱怎么联系软件开发者
  • 网站建设本科毕业设计论文网站建设jz518
  • 美了一站式变美共享平台满山红厦门网站建设
  • 外贸网站建设报价差别那么大花钱多吃亏大良网站建设
  • 关于做网站的文献综述安徽服装网站建设
  • 做企业网站都需要注意哪点长沙注册公司核名网站
  • 易县做网站吸引企业做网站的文章内容
  • 网站怎么可以做视频播放网页设计需要用什么软件
  • 黄石企业做网站手机网站生成工具
  • 简要叙述如何规划建设一个企业网站全球十大搜索引擎排名