stratadox/ascii-renderer 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

stratadox/ascii-renderer

Composer 安装命令:

composer require stratadox/ascii-renderer

包简介

Rendering engine for ascii art

README 文档

README

A tiny rendering engine for ascii art.

What is this

Ascii Renderer is made to facilitate ascii art projects by loading partial artworks and combining them into a (potentially animated) result.

What can it do

The module can load a custom file format into animations with masked frames.

By including references to potential other animations, a sort-of skeletal system can be used.

How to use it?

To load files:

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');

To combine animations:

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
);

What do the files look like?

For example, the cap of the character above:

mask:
width: 6
height: 3
origin-x: 2
origin-y: 2

mask-frames:
1
 ....
######
####

frames:
1
 ____
/   _}
\__/

Their axe:

mask:
origin-x: 1
origin-y: 3
width: 5
height: 6

mask-frames:
1
 .##
#####
 ###
 #
 #
 #

frames:
1
 ./\
<)+))
 |\/
 |
 |
 o

For more examples, see the test assets.

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2021-12-15

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固