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

Function 如何创建向语言添加新函数的处理库?,function,processing,add,Function,Processing,Add,我想创建一个处理库,为处理添加一个函数。一个命令。我该怎么做 因此,我希望能够在处理这一问题时写下: void setup(){ drawMyCustomShape() } 在某种程度上,drawMyCustomShape将在我的自定义库实现中实现 谢谢 注意:此问题与在处理中创建新库无关。是关于创建一个导出一个新命令的库(这样您就可以在不考虑容器类实例的情况下使用它)。首先,您确定确实需要创建整个库吗?您可以将该类添加到草图中,而无需将其部署为库。如果你担心杂乱,就把它放在自己的标签上 如果

我想创建一个处理库,为处理添加一个函数。一个命令。我该怎么做

因此,我希望能够在处理这一问题时写下:

void setup(){
drawMyCustomShape()
}
在某种程度上,
drawMyCustomShape
将在我的自定义库实现中实现

谢谢


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

首先,您确定确实需要创建整个库吗?您可以将该类添加到草图中,而无需将其部署为库。如果你担心杂乱,就把它放在自己的标签上

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

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


您建议的设置还存在一些其他问题(如何从
静态
函数访问
草图
变量?),但我建议在您掌握了基本知识后,将其作为单独的问题处理。

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

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

一旦你编译了这个版本,你就可以把这个PDE的副本分发给你的大学生了。他们将能够使用你的功能,就好像什么都没有改变一样。(我猜这是针对大学级别的入门级课程,所以这就是为什么你必须对学生隐瞒实施的原因?)

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


    • 因此,我终于找到了最适合我的情况的答案

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

      您可以通过分叉@joelmonic从@martinleopold创建的3.0模式模板来实现这一点:

      这里有一个很好的教程:

      为什么最合适的解决方案是:我认为这是在处理代码中实现新的静态方法并确保易于分发的最佳方法!您只需在
      sketchbook/modes
      文件夹中设置mode文件夹。若我要进行fork处理,那个么为所有操作系统准备分发版以及保持主项目的更新将是一件大事

      我的特殊解决方案

      为了将静态导入添加到处理中,我实现了一个自定义模式,在该模式中我重写了
      pdeprocessor
      类,该类将处理代码与所有Java处理代码打包在一起。因此,我们的想法是向
      pdeprocessor
      在生成的Java源代码上生成的导入添加更多的导入

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

      为了使用我的
      pdeprocessor
      实现,我必须重写以下类:

      • 指挥官
      • JavaBuild
      • JavaEditor
      • JavaMode
      • JavaEditor
      我必须实现一个新的
      JavaBuild
      ,它用我的定制
      pdeprocessor
      草图进行预处理。还可以在处理Java模式实例构建类的所有地方使用我的自定义
      JavaBuild
      。如果有更好的方法来做我所做的事情,请与我们分享


      这是我的解决方案的github:

      Hi!谢谢你的回答。我了解创建新库的基本概念。我需要它作为一个图书馆,因为我将在大学课堂上使用它,我需要对学生隐藏实现。我的具体需求是拥有一个库,用于向处理中添加命令,如上面的示例所示。我不知道这是怎么做到的。也许这不是关于做一个静态函数。我将编辑这个问题,以消除我对静态方法的想法,这种想法似乎让人困惑。@AryPabloBatista好吧,我想我的答案仍然是答案。如果您想创建一个库,那么您必须遵循我概述的步骤。您不能简单地将函数添加到处理中,除非您从源代码构建处理本身并以这种方式添加函数。处理是开源的,所以这是可行的,但是请注意,上面的任何一项都不能100%阻止淘气的学生反编译源代码并获得实现。