我想创建一个处理库,向处理添加单个函数。一个命令。我该怎么做?
所以我希望能够写下处理这个:
void setup() {
drawMyCustomShape()
}
在某种程度上,drawMyCustomShape
将出现在我的自定义库实现中。
谢谢!
注意:这个问题与在处理中创建新库无关。是关于创建一个导出一个新命令的库(这样您就可以使用而无需关心容器类实例)。
最佳答案
所以,我终于找到了最适合我的情况的答案。
解决方案是实现一种新的处理模式,该模式扩展了内置 Java 模式。要将静态成员包含到主处理程序中,您需要向处理添加到代码中的成员添加新的静态导入。
您可以通过 fork @joelmoniz 从 @martinleopold 创建的 3.0 模式模板来实现此目的: https://github.com/joelmoniz/TemplateMode/tree/3.0-compatibility
这里有一个很好的教程: http://pvcresin.hatenablog.com/entry/2016/03/17/210135
为什么这是最合适的解决方案? :我认为这是在处理代码中实现新的静态方法并确保轻松分发的最佳方式!您只需在 sketchbook/modes
文件夹中设置模式文件夹即可。如果我要进行 fork 处理,那么为所有操作系统准备发行版并保持主项目的更新将是一件大事。
我的特定解决方案:
为了将静态导入添加到Processing中,我实现了一个自定义模式,在该模式中我覆盖了PdePreprocessor
类,该类将处理代码与所有Java处理代码包装在一起。因此,我们的想法是向 PdePreprocessor
在生成的 Java 源代码上生成的导入添加更多导入。
在我的自定义 PdePreprocessor
中,我重写了 getCoreImports
方法来添加我的自定义方法。我在这里这样做是因为我认为新的导入是我的自定义模式核心的一部分。您还可以通过重写 writeImports
方法来实现此目的。
为了使用我的 PdePreprocessor
实现,我必须覆盖以下类:
指挥官
JavaBuild
Java 编辑器
Java模式
Java 编辑器
我必须实现一个新的 JavaBuild
,它使用我的自定义 PdePreprocessor
预处理 Sketch
。并且还在处理 Java 模式实例化构建类的所有位置使用我的自定义 JavaBuild
。如果有更好的方法来完成我所做的事情,请与我们分享。
这是我的解决方案的 github:http://github.com/arypbatista/processing-inpr/
关于function - 如何创建一个为该语言添加新函数的处理库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38258656/