我正在使用Processing创建一个Android应用程序,并决定将我的代码移植到Eclipse。我猜处理和纯Java之间存在很多差异,因为我发现错误对我来说没什么意义。例如:
int inactiveThreshold = 300 + int(random(-100, 100));
int randomPointInterval = int(random(300, 500));
我收到错误“令牌上的语法错误”int“,删除此令牌”
对于随机函数,我扩展了PApplet并导入了processing.core。*所以我不明白为什么它不能正常工作。
在引用我创建的颜色的任何内容上也会出错:
back.drawBackground("shadow", backgroundColor);
back.drawBackground("front", backgroundColor);
“无法将颜色解析为类型”,尽管将backgroundColor初始化为整数:
int backgroundColor = color(100, 100, 120);
主类中还有一个处理鼠标移动的函数,当我对它进行引用时,表示函数未定义。
这些错误只是在主类中,所以我认为我应该先处理它。我主要是关注移植代码:
http://www.learningprocessing.com/tutorials/processing-in-eclipse/
我在纯Java方面做得不多,所以Processing的预编译器可能会有很多不同之处,我没有注意到。
答案 0 :(得分:1)
对于int cast:执行
int i = (int)(valueToCase);
对于randoms:
java.util.Random rand = new java.util.Random();
// can't do random(min,max) - instead, do
int randNum = rand.nextInt(max-min) + min;
任何时候你看到java.blah.ClassName,你都可以这样做,所以它不会被java.blah限定符混乱。
import java.blah.ClassName;
ClassName cn = new ClassName...
答案 1 :(得分:0)
如果说实话得好,我会感到惊讶。处理不是优化的屏幕设备,这会导致一些问题。据我所知,它运行在JVM之上的Java虚拟机上。这与在Android中使用的Dalvik VM上运行完全不同。
然而,似乎有相当多的支持。我会直接检查该社区。 http://wiki.processing.org/w/Android
答案 2 :(得分:0)
原来有一个关于如何让Processing应用程序在纯Java环境中运行的一个很好的教程(假设这是你想要的):http://processing.org/learning/eclipse/
简而言之,你:
import processing.core.PApplet;
然后将对PApplet的引用传递到您要使用“本机”处理函数的任何类。就这样,你先前说过:
fill(255,100);
你现在可以说:
pApplet.fill(255, 100);
我还应该提到这里有一个活跃的Adroid处理论坛:https://forum.processing.org/android-processing - 那里有人已经走了这条路。