j2o/graphixjjf

GRAphics-oriented PHp Interface eXtravaganza (GRAPHIXJJF) 定义了一组 PHP 类,可用于接口和渲染各种 Jazz Jackrabbit 数据文件。

dev-master 2023-07-27 14:26 UTC

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 的一部分,用于生成用户上传到网站的文件的预览图像。