Skip to content
/ eiya Public

[存档]「弹幕游戏」东方永夜抄 Stage III.Rebuilt - 相关源文件(不含素材)

License

Notifications You must be signed in to change notification settings

wJsJwr/eiya

Repository files navigation

eiya

本仓库为「弹幕游戏」东方永夜抄 Stage III.Rebuilt(以下简称eiya)的代码源文件,而相关图片素材由于是好友从《东方永夜抄》中抠出来的图,不便进行公开。

由于播放器更新,在2015年的时候已经无法正常进行游戏。本仓库的内容权当是怀旧向的存档,不会进行任何更新。发出来一方面是怀念一下当年(2012年)通宵与好友在“螺蛳壳里做道场”的日子,另一方面也希望B站能够在HTML5播放器中也能搞出这样的代码弹幕环境。

eiya包含两部分内容:

  1. 游戏引擎eiyaEngine,位于main_frame.as中。任务是在B站的播放器中进行游戏图形渲染(而非使用播放器的弹幕元素,效率太低了)。
  2. 资源转换工具ResourceHelper,可以进行图片素材,eiyaScript以及注入代码的转换,转换后的Base64串存放于load_frame.as,供游戏引擎调用。

eiyaScript

eiyaScript是为eiyaEngine所使用的一个脚本,它定义了游戏中弹幕和发射器的运作方式。具体可参考“doc/eiyaScript 使用手册.txt”。转换工具会将eiyaScript转换成eiyaEngine可执行的指令串。

注入代码

当年的播放器存在可以从一个ByteArray中加载并执行任意SWF字节码的漏洞(当时普遍认为是特性,然而后来就封锁了,说明是漏洞)。因此理论上说,可以直接注入一个Flash游戏。不过从参与活动的角度出发,这样做并不合适,因此就用了这个漏洞注入了一些播放器并未实现的特性,比如Vector支持(位于src/CORE.as)和任意键位响应(位于src/KeyboardHelper.as)。

注入代码转换使用了As3Eval库(http://eval.hurlant.com/),基于MPL发布。

任意键位响应部分代码是基于nekofs的代码修改,其源代码现已无法访问。

About

[存档]「弹幕游戏」东方永夜抄 Stage III.Rebuilt - 相关源文件(不含素材)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published