Портирование некоторого кода обработки в Eclipse, получение множества ошибок - PullRequest
0 голосов
/ 21 февраля 2011

Я создаю приложение для Android с использованием Processing и решил перенести мой код в 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 обрабатывает много различий, которые яне замечаю

Ответы [ 3 ]

1 голос
/ 21 февраля 2011

Для int cast: do

int i = (int)(valueToCase);

Для случайных:

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...
0 голосов
/ 21 июля 2012

Оказывается, есть хороший учебник о том, как заставить приложение 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 -- там есть люди, которые уже пошли по этому пути.

0 голосов
/ 21 февраля 2011

Я был бы удивлен, если честно, это работает очень хорошо. Обработка не оптимизированных экранных устройств, и это вызовет у вас некоторые проблемы. Также, насколько я понимаю, он работает на виртуальной машине Java поверх JVM. Это сильно отличается от работы на вершине виртуальной машины Dalvik, которая используется в Android.

Однако, кажется, что это довольно мало поддержки. Я бы проверил это сообщество напрямую. http://wiki.processing.org/w/Android

...