2016-09-06 3 views
1

Я пытаюсь кодировать просто «следовать за мышью» программу, однако следующий код выдает ошибку о том, что статический .sub() метод не существует:Processing - продолжать получать «Функция суб (PVector, PVector) не существует»

void update() 
    { 
    PVector mouse = new PVector(mouseX, mouseY); 
    PVector direction = PVector.sub(mouse, location); // dir = mouse - location 

    direction.normalise(); 
    direction.multiply(0.4); 

    acceleration = direction; 

    velocity.add(acceleration); 
    velocity.limit(maxVelocity); 
    location.add(velocity); 
    } 

я определил некоторые из методов сам, следовательно, почему мы «умножаем» вместо «мульт» и т.д. и т.п., но я могу»(метод перегрузки?) Не понимаю, почему это говорит мне .sub() не существует, когда это clearly there in the documentation. У меня было это и для нескольких других методов.

мне нужно определить свой собственный статический .sub() Есть ли? Можете ли вы это сделать в обработке?

Заранее спасибо.

+0

Не могли бы вы опубликовать свой пользовательский класс chaser для мыши? (Неясно, как вы используете '' 'PVector''': партия выглядит как с использованием композиции, но частично расширив класс, но используя такое же имя, как супер-класса, которые могли бы иметь что-то с ним) –

ответ

0

Сказать, что вы определили некоторые из методов, сами не делает тонну смысла. Используете ли вы класс PVector для обработки, или используете ли вы свой собственный класс PVector?

Если вы используете свой собственный PVector класс, то вы либо будете иметь, чтобы определить свою собственную sub() функции, или вы можете быть в состоянии использовать PVector класс Processing, используя его полное имя, как это:

processing.core.PVector x = processing.core.PVector.sub(y, z); 

конечно, это также будет возвращать Обработка PVector вместо вашего PVector.

Я не уверен, почему вам нужно будет определить свой собственный класс PVector, или почему вам нужно будет определить свои собственные методы PVector. Что-то там звучит.

Если это не поможет устранить проблему, пожалуйста, внесите изменения в свой вопрос, включив в него MCVE, включая любой из этих методов, которые вы определили сами и как вы их определяете.

+0

я m, используя мой собственный класс PVector, главным образом в качестве инструмента обучения, чтобы привыкнуть к векторным операциям в обработке. Я обнаружил, что удаление моего класса PVector из папки проекта устранило мою проблему, поэтому я, вероятно, сейчас просто займусь этим. Просто быстрый вопрос - что вы подразумеваете под «полностью квалифицированным именем»? Как это работает? –

+0

@LouisCowell Пожалуйста, посмотрите пример кода в моем ответе. См. Раздел 'processing.core.PVector'? Это полное имя, а googling, похожее на «полное имя Java», даст вам дополнительную информацию. В любом случае, если по какой-то причине у вас будет свой собственный класс 'PVector', по крайней мере, назовите его чем-то другим, чтобы он не мешал существующему классу' PVector'! –

Смежные вопросы