如何创建向语言添加新函数的处理库



我想创建一个处理库,将单个函数添加到处理中。单个命令。我该怎么做?

所以我希望能够写在处理这个:

void setup() {
    drawMyCustomShape()
}

在某种程度上,drawMyCustomShape将出现在我的自定义库实现上。

谢谢!

注意:这个问题不是关于在处理中创建新库。是关于创建一个导出一个新命令的库(因此您可以在不关心容器类实例的情况下使用)。

所以,最后我找到了最合适的答案。

解决方案是实现一种新的处理模式,以扩展内置的 Java 模式。若要将静态成员包含在主处理程序中,您需要向处理添加到代码中的静态导入添加新的静态导入。

您可以通过分叉从@martinleopold创建的 3.0 模式模板@joelmoniz来实现此目的:https://github.com/joelmoniz/TemplateMode/tree/3.0-compatibility

这里有一个很好的教程:http://pvcresin.hatenablog.com/entry/2016/03/17/210135

为什么是最合适的解决方案?:我认为这是在处理代码时实现新的静态方法并确保易于分发的最佳方式!您只需要在sketchbook/modes文件夹中设置模式文件夹即可。如果我要分叉处理,为所有操作系统准备发行版并与主项目保持更新将是一件大事。

我的特定解决方案

为了将我的静态导入添加到 Processing 中,我实现了一个自定义模式,在该模式下我覆盖了 PdePreprocessor 类,该类用所有 Java 过程代码包装处理代码。因此,我们的想法是向PdePreprocessor生成的 Java 源代码生成的导入添加更多导入。

在我的自定义PdePreprocessor中,我重写了getCoreImports方法来添加我的自定义方法。我在这里这样做是因为我认为新的导入是我的自定义模式核心的一部分。您也可以通过覆盖writeImports方法来实现此目的。

为了使用我的PdePreprocessor实现,我必须覆盖以下类:

  • Commander
  • JavaBuild
  • JavaEditor
  • JavaMode
  • JavaEditor

我必须实现一个新的JavaBuild,它使用我的自定义PdePreprocessor预处理Sketch。并且还在处理 Java 模式实例构建类的所有位置使用我的自定义JavaBuild。请与我们分享是否有更好的方法来做我所做的事情。

这是我的解决方案的 github:http://github.com/arypbatista/processing-inpr/

首先,您确定真的需要创建一个完整的库吗?您可以将该类添加到草图中,而无需将其部署为库。如果您担心混乱,只需将其放在自己的选项卡中即可。

如果您确实需要创建库,则需要阅读三个教程:

  • 库概述
  • 库基础知识
  • 图书馆指南

但基本上,您需要创建一个使用 Processing 作为库的 Java 项目(在 IDE 中,如 eclipse 中,或使用基本文本编辑器和命令行)。这就是你把MyLibrary课放在那里。然后,将其导出为.jar文件,然后将该.jar文件导入到"处理"中。然后,您将能够像使用任何其他处理库一样使用您的类。

您建议的设置还有其他一些问题(您将如何从static函数访问sketch变量?),但我建议您在掌握基础知识后将它们视为单独的问题。

听起来您实际上是在寻求创建自己的处理库扩展,就像实际更改核心jar文件一样。

您可以通过在 Github 上分叉其主分支来扩展实际的处理库。通过将函数drawMyCustomShape写入分支版本中的实际内核,您可以从代码副本构建处理开发环境。使用PDE的特定副本,您可以执行所描述的操作。

编译此版本后,您实际上可以将此 PDE 副本分发给您的大学生。他们将能够使用您的函数,就好像什么都没有改变一样。(我猜这是针对大学水平的入门级课程,所以这就是为什么你必须对学生隐藏实施?

以下是一些帮助您入门的链接:

  • 处理 github
  • 从源代码构建 PDE 的说明

最新更新