stratadox / ascii-renderer
此包最新版本(v0.1)没有可用的许可信息。
ASCII艺术渲染引擎
v0.1
2021-12-15 23:42 UTC
Requires
- php: >=8.0
- ext-json: *
- ext-readline: *
Requires (Dev)
- phpunit/phpunit: ^9.5
README
一个用于ASCII艺术的微型渲染引擎。
这是什么
Ascii Renderer旨在通过加载部分艺术品并将它们组合成(可能动画的)结果来简化ASCII艺术项目。
它能做什么
该模块可以将自定义文件格式加载到带有蒙版帧的动画中。
通过包含对其他潜在动画的引用,可以使用类似骨骼系统。
如何使用它?
加载文件
use Stratadox\AsciiRenderer\FileLoader; use Stratadox\AsciiRenderer\ImageFactory; use Stratadox\AsciiRenderer\MaskFactory; $loader = new FileLoader(new MaskFactory(), new ImageFactory()); $animation = $loader->load('file/name.ext');
组合动画
use Stratadox\AsciiRenderer\AnimationCombiner; use Stratadox\AsciiRenderer\Combiner; use Stratadox\AsciiRenderer\FileLoader; use Stratadox\AsciiRenderer\ImageFactory; use Stratadox\AsciiRenderer\MaskFactory; $loader = new FileLoader(new MaskFactory(), new ImageFactory()); $combiner = new AnimationCombiner(new Combiner()); $animation = $combiner->combine( [ 'item2' => $this->loader->load('/Asset/item/kite-shield-back.txt'), 'body' => $this->loader->load('/Asset/body/leather-jacket-walk.txt'), 'head' => $this->loader->load('/Asset/head/default.txt'), 'headgear' => $this->loader->load('/Asset/headgear/cap.txt'), 'item1' => $this->loader->load('/Asset/item/axe.txt'), ], 'body' ); assert(8 === $animation->length()) assert((string) $animation->frame(0)) === <<<'EOT' ____ / _} \__/*} ./\ /~^~\--<)+)) |( V___|\/ \\_____(| ) /~~~\ |/ ( \ o \\ ) / ) \ |/ / /| | [__b[__b EOT );
文件看起来像什么?
例如,上述人物的帽子
mask:
width: 6
height: 3
origin-x: 2
origin-y: 2
mask-frames:
1
....
######
####
frames:
1
____
/ _}
\__/
他们的斧头
mask:
origin-x: 1
origin-y: 3
width: 5
height: 6
mask-frames:
1
.##
#####
###
#
#
#
frames:
1
./\
<)+))
|\/
|
|
o
更多示例,请参阅测试资源。