zircon

2025-12-11 0 102

zircon – 用户友好的瓷砖引擎和文本GUI

需要信息吗?检查文档|或创建问题|检查我们的项目委员会|在和不和谐|在Patreon上支持我们| Javadoc / kdoc


目录

  • 入门
  • 最佳实践
  • 一目了然
    • 绘画
    • 输入处理
    • 分层
    • 文本GUI组件
    • 动画
    • 形状和盒子图
    • 字体和瓷砖
    • 路线图
    • 执照
    • 学分
    • 谢谢

入门

如果您想开始与zircon合作,则可以将其作为Maven依赖性添加到您的项目中,也可以尝试随附的电池附带的Skeleton Projects(Java,Kotlin)。

官方文档网站包含大量信息。这些示例还记录在zircon示例页面(正在施工中) ,最佳起点是zircon速成课程。

如果您喜欢通过从这里查看zircon的来源来学习,则可以自己运行示例。如果您使用的是Java ,请在此处开始。另外,如果您使用Kotlin,则可以在此处找到代码。

如果您只想仔细阅读zircon API在此处导航。所有旨在成为公共API一部分的一切都在那里。

您可以在这里找到Javadoc / KDoc

如果您想与我们交谈,请加入我们的Discord服务器。

将zircon作为Maven依赖性

马文:

zircon</groupId>
<artifactId> zircon .core-jvm</artifactId>
<version>2021.1.0-RELEASE</version>
</dependency>
<!– use zircon .jvm.libgdx if you want to use LibGDX instead of Swing –>
<dependency>
<groupId>org.hexworks. zircon </groupId>
<artifactId> zircon .jvm.swing</artifactId>
<version>2021.1.0-RELEASE</version>
</dependency>
</dependencies>\”>

< dependencies >
    < dependency >
        < groupId >org.hexworks. zircon </ groupId >
        < artifactId > zircon .core-jvm</ artifactId >
        < version >2021.1.0-RELEASE</ version >
    </ dependency >
    <!-- use zircon .jvm.libgdx if you want to use LibGDX instead of Swing -->
    < dependency >
        < groupId >org.hexworks. zircon </ groupId >
        < artifactId > zircon .jvm.swing</ artifactId >
        < version >2021.1.0-RELEASE</ version >
    </ dependency >
</ dependencies >

Gradle:

zircon .core-jvm:2021.1.0-RELEASE"
implementation "org.hexworks. zircon : zircon .jvm.swing:2021.1.0-RELEASE"
}\”>

dependencies {
    implementation \" org.hexworks. zircon : zircon .core-jvm:2021.1.0-RELEASE \"
    implementation \" org.hexworks. zircon : zircon .jvm.swing:2021.1.0-RELEASE \"
}

基本用法

设置依赖关系后,您可以通过创建一个TileGrid开始使用zircon

zircon
.withDefaultTileset(CP437TilesetResources.rexPaint16x16())
.build());

// A Screen is an abstraction that lets you use text GUI Components
// You can have multiple Screens attached to the same TileGrid to be able to create multiple
// screens for your app.
Screen screen = Screen.create(tileGrid);

// Creating text GUI Components is super simple
Label label = Components.label()
.withText("Hello, zircon !")
.withAlignment(ComponentAlignments.alignmentWithin(tileGrid, ComponentAlignment.CENTER))
.build();

// Screens can hold GUI components
screen.addComponent(label);

// Displaying a screen will make it visible. It will also hide a previously shown Screen.
screen.display();

// zircon comes with a plethora of built-in color themes
screen.setTheme(ColorThemes.arc());
}
}\”>

 public class Main {

    public static void main ( String [] args ) {

        // a TileGrid represents a 2D grid composed of Tiles
        TileGrid tileGrid = SwingApplications . startTileGrid (
                AppConfig . newBuilder ()
                        // The number of tiles horizontally, and vertically
                        . withSize ( 60 , 30 )
                        // You can choose from a wide array of CP437, True Type or Graphical tilesets
                        // that are built into zircon
                        . withDefaultTileset ( CP437TilesetResources . rexPaint16x16 ())
                        . build ());

        // A Screen is an abstraction that lets you use text GUI Components
        // You can have multiple Screens attached to the same TileGrid to be able to create multiple
        // screens for your app.
        Screen screen = Screen . create ( tileGrid );

        // Creating text GUI Components is super simple
        Label label = Components . label ()
                . withText ( \"Hello, zircon !\" )
                . withAlignment ( ComponentAlignments . alignmentWithin ( tileGrid , ComponentAlignment . CENTER ))
                . build ();

        // Screens can hold GUI components
        screen . addComponent ( label );

        // Displaying a screen will make it visible. It will also hide a previously shown Screen.
        screen . display ();

        // zircon comes with a plethora of built-in color themes
        screen . setTheme ( ColorThemes . arc ());
    }
}

此示例的输出是:

恭喜!现在您是zircon用户。

最佳实践

以下是一些指导方针,如果您被卡住,可以为您提供帮助:

如果您想构建某些东西( TileGraphicsComponent或公共API一部分的任何内容),几乎可以确定有一个Builder或工厂对象。每个具有构建器的类型都将具有一个newBuilder函数,您可以调用以创建相应的构建器: Tile.newBuilder()

如果可以创建多种对象类别,则可能还会有一个实用程序类,例如Shapes来创建不同的Shape对象。您的IDE将为您提供帮助。

这些类位于org.hexworks. zircon .api软件包。但是,有些类将组合在一起分为单个公用事业类。例如,使用Components ,您可以为所有Component s(例如Components.panel()Components.checkBox()获得Builder s。同样,您可以使用DrawSurfaces来获取用于TileGraphicsTileImage构建器。

如果您想使用诸如瓷砖或rexpaint文件之类的外部文件,请检查同一软件包( org.hexworks. zircon .api ),并查找以*Resources结尾的类。例如,您可以选择一堆内置瓷砖,但您也可以加载自己的瓷砖。

经验法则是,如果您需要外部的东西,则可能有一个*Resources类(例如CP437TilesetResources )。

您可以使用API包中可以找到的任何东西,它们是公共API的一部分,并且可以安全使用。但是,内部软件包被认为是zircon的私人,因此请记住它们可以随时更改。

文档中深入解释了一些主题。

如果您想查看一些示例代码,请在此处查看示例项目。大多数示例具有相同的JavaKotlin变体。

如果所有其他方法都失败了,请阅读Javadocs。 API课程有充分的记录。

如果您在这里没有回答的任何问题,请随时在Hexworks Discord服务器上询问我们。

一目了然

绘画

您可以在此处找到有关绘画的详细文档。

最基本的操作zircon支撑是draw 。您可以在TileGrid上绘制单独的TileTileGraphics对象。 TileGraphics对象由Tile s组成。这是一个强大的工具,您可以使用简单的draw操作实现更复杂的功能。实际上,组件系统是在绘图,分层和输入处理功能之上实现的。

如果您使用Rexpaint设计程序,那么好消息是您也可以导入.xp文件。在这里阅读更多有关它的信息。

您也可以在Tile中使用Modifier S,例如blinkverticalFlipglow 。有关完整列表,请检查此工厂对象。 Modifier s可以更改纹理(如上面的纹理)或Tile本身:

输入处理

在此处阅读有关文档中输入处理的信息。

TileGridScreen接口都实现了UIEventSource这意味着您可以使用它们收听用户输入。这也包括击键鼠标输入

分层

在这里详细介绍了分层。对于Screen上的底漆,请进入这里。

TileGridScreen接口都可以实现Layerable这意味着您可以在它们的顶部添加Layer s。每个Layerable都可以具有任意数量的Layer s。 S Layer就像TileGraphics对象一样,您也可以在其中具有透明度,可用于创建精美的效果。 Component s也是Layer本身。看看:

文本GUI组件

您可以在文档页面上阅读有关组件系统的更多信息。彩色主题在这里详细介绍。

Component s是GUI控件,可用于向用户显示内容( Label S, Paragraph等),使它们能够与您的程序进行交互( Button S, Slider S等)或保留其他组件(例如Panel S)。

这些组件非常简单,您可以期望它们以您可能熟悉的方式工作:

  • 您可以单击它们(按和发布是不同的事件)。
  • 您可以将活动听众附加在他们身上。
  • zircon实现了焦点处理,因此您可以使用[Tab]键(向前)或[Shift]+[Tab]按键(向后)在组件之间导航。
  • 组件可以悬停,您也可以将彩色主题应用于它们。

更重要的是,您可以将ColorTheme S应用于Component s。有很多内置主题,您也可以创建自己的主题。

要查看可用Component s的完整列表,请查看组件出厂对象或导航到组件文档页面。

这是组件外观中的一个示例:

动画:

在文档中阅读有关动画的更多信息。

动画是开箱即用的。您可以使用zircon自己的动画格式进行编程或静态创建它们: .zap ( zircon Animation Package)。有关此的更多信息。这就是动画的样子:

形状和盒子图

形状文档页面可以在此处找到。

您可以使用ShapeFactory实现之一绘制Shape S,例如矩形和三角形。开箱即用的是三角形矩形线条。前两个也有填充版本。在此处查看Shapes工厂对象。

字体和瓷砖

瓷砖的文档页面在这里。

zircon带有一堆内置字体瓷砖。这些有3种口味:

  • CP437瓷砖(更多地在此处使用它们)
  • 真正的类型字体
  • 和图形瓷砖(在此处使用信息)

zircon还具有自己的瓷砖格式( ztf : zircon瓷砖格式),非常易于使用。在这里详细介绍。

路线图

如果您想查看新功能,请随时创建新问题或在Discord上与我们进行讨论。这是一些正在进行或计划的功能:

  • 可滚动组件
  • 菜单
  • 表组件
  • Javadoc风格的文档
  • 网格 /屏幕过滤器
  • 浮动组件
  • 拖放支撑
  • 自定义布局支持
  • 组件主题
  • 自定义组件支持
  • 树成分
  • 手风琴组件
  • 组合组件
  • Intellij插件
  • zircon的控制台

如果您想给这些镜头中的任何一个,请随时做出贡献

执照

zircon可在Apache 2.0许可下提供。

学分

zircon是由阿达姆森,Coldwarrl,G3ldrin,Milonoir,Seveen等创建和维护的。

我们愿意提出建议,随意向我们发消息或打开问题。也欢迎拉动请求!

zircon由:

谢谢

感谢矮人堡垒瓷砖库的人们,让我们捆绑了他们的瓷砖。

感谢Kyzrati ,他让我们将Rexpaint瓷砖包装到zircon中!

zircon与Nethack瓷砖捆绑在一起。

从Google字体中使用了一些真正的字体。

感谢Viler提供的Oldschool字体包,我们将其捆绑到了zircon中。

下载源码

通过命令行克隆项目:

git clone https://github.com/Hexworks/zircon.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 zircon https://www.zuozi.net/34329.html

jsoniter scala
上一篇: jsoniter scala
KotlinMultiPlatform
下一篇: KotlinMultiPlatform
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务