j2o / graphixjjf
GRAphics-oriented PHp Interface eXtravaganza (GRAPHIXJJF) 定义了一组 PHP 类,可用于接口和渲染各种 Jazz Jackrabbit 数据文件。
Requires
- ext-gd: *
- ext-zlib: *
This package is auto-updated.
Last update: 2024-09-27 17:19:12 UTC
README
GRAPHIXJJF 是一组 PHP 类,可用于读取各种 Jazz Jackrabbit 文件并将它们渲染为图像。以下文件受支持:
- Jazz Jackrabbit 1 级别(
LEVEL.###
) - Jazz Jackrabbit 1 瓦片集(
BLOCKS.###
) - Jazz Jackrabbit 1 行星(
PLANET.###
) - Jazz Jackrabbit 2 级别(
*.j2l
) - Jazz Jackrabbit 2 瓦片集(
*.j2t
) - Jazz Jackrabbit 2 集数(
*.j2e
) - Jazz Jackrabbit 2 角色精灵(
*.j2a
)
使用 composer 安装它
composer install j2o/graphixjjf
然后使用它,例如,如下所示
<?php require 'vendor/autoload.php'; use J2o\Lib\J2AFile; $j2afile = new J2AFile('Anims.j2a'); $settings = $j2afile->get_settings(); echo 'Rendering '.$settings['set_count'].' animation sets to a spritesheet...'.PHP_EOL; imagepng($j2afile->get_preview(), 'spritesheet.png');
使用这些类的一种方式是从这些文件中提取信息,例如瓦片集的名称、JJ2 级别的帮助字符串或 JJ1 级别的大小。这可以用于各种事情(计算级别中的拾取物数量、找到文件夹中所有级别的最常使用音乐文件等)。
请注意,为了渲染大多数 J2L 文件,您需要将所需的 .j2a
文件放入 resources
文件夹。通常,您可以简单地复制游戏文件夹中的所有 j2a 文件,将其放置在那里,它应该可以正常工作。GRAPHIXJJF 假设它读取的 Anims.j2a 文件是 The Secret Files 版本。
API
提供了一个命令行脚本 render-file.php
,用于生成给定文件的 PNG 预览。然而,这个库的焦点在于类本身。这些类有不同的 API,取决于文件类型,但一个常见的 API 包括以下方法
JJFile::get_settings() : array
返回文件设置,例如级别中的层数、瓦片集名称等。JJFile::get_preview() : resource
返回一个 GD 图像资源,其中已将文件渲染到(见下文)
渲染图像
一个更令人兴奋的功能是,所有这些类都能渲染它们加载的任何文件的图像。因此,您可以将瓦片集作为图像导出,自动生成级别截图,甚至生成级别的完整大小预览图像。
最复杂的一种是 Jazz Jackrabbit 2 级别渲染器,它不仅能渲染级别数据,还能渲染其中的任何事件,并且还能解释一些脚本设置。值得注意的是,它可以准确地读取使用 MLLE 对级别进行的更改;调色板更改、额外图层、编辑的瓦片等将被正确渲染。此外,如果级别的脚本使用 MLLE 的武器库或 SEWeapon 实现自定义武器,这些武器将适当地替换标准武器。
简单来说,您可以为 Jazz Jackrabbit 2 级别生成准确的全尺寸预览图像,包括基于 MLLE 的脚本和自定义武器。
内容
base
:各种文件格式的类resources
:渲染 Jazz Jackrabbit 2 事件精灵的动画库util
:用于渲染或解析数据但本身不处理 Jazz Jackrabbit 文件的类render-file.php
:一个示例脚本,可用于从命令行生成 Jazz Jackrabbit 文件图像。
为什么?
本库是 Jazz2Online 的一部分,用于生成用户上传到网站的文件的预览图像。