2016-09-06 3 views
1

다음 코드는 정적 '.sub() '대신에'멀티 포트 '등 등의 그러므로 우리는 왜'곱 '한처리 - 계속 "함수 서브 (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); 
    } 

내가 방법을 자신의 일부 정의,하지만 난 할 수 (메소드 오버로드를?) 방법은 존재하지 않습니다 그것이 왜 나에게 말하고 있는지 이해하지 못한다. 서브()는 존재하지 않는다. 때 그것은 clearly there in the documentation이다. 나는 다른 몇 가지 방법에 대해서도 이것을 가지고있다.

내 정적 .sub()를 정의해야합니까? Processing에서 그렇게 할 수 있습니까?

미리 감사드립니다.

+0

사용자 정의 마우스 체이서 클래스를 게시 할 수 있습니까? (파티는 컴포지션을 사용하는 것처럼 보이지만 부분적으로 클래스를 확장하지만 수퍼 클래스와 동일한 이름을 사용하는 것으로 보입니다. –

답변

0

당신이 정의한 방법 중 일부는 스스로 이해할 수 없다고 말합니다. Processing의 PVector 클래스를 사용하고 있습니까? 아니면 자신의 PVector 클래스를 사용하고 있습니까?

당신이 당신의 자신의 PVector 클래스를 사용하는 경우

는 다음 중 하나를 자신의 sub() 함수를 정의해야 할거야, 또는 당신은 다음과 같이 그 정규화 된 이름을 사용하여 가공의 PVector 클래스를 사용할 수 있습니다 :

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

물론,이 또한 PVector 대신 처리 PVector를 반환합니다.

자신의 PVector 클래스를 정의해야하는 이유가 무엇인지, 또는 자신의 PVector 메서드를 정의해야하는 이유가 확실하지 않습니다. 뭔가 소리가납니다.

그래도 문제가 해결되지 않으면 직접 정의한 방법과 정의 방법을 포함하여 MCVE을 포함하도록 질문을 수정하십시오.

+0

I ' 내 자신의 PVector 클래스를 사용하여 주로 처리 도구에서 벡터 작업에 익숙해지는 학습 도구로 사용합니다. 프로젝트 폴더에서 PVector 클래스를 삭제하면 문제가 해결된다는 것을 알았 기 때문에 지금 당장이 문제를 해결할 것입니다. 빠른 질문 - '정규화 된 이름'은 무엇을 의미합니까? 어떻게 작동합니까? –

+0

@LouisCowell 제 대답의 예제 코드를 참조하십시오. 'processing.core.PVector' 부분을 보시오. 그것이 완전한 이름이며, "Java fully qualified name"과 같은 것을 검색하면 더 많은 정보를 얻을 수 있습니다. 어쨌든, 어떤 이유에서든 자신 만의'PVector' 클래스를 갖게된다면, 적어도 다른 이름을 붙여서 기존의'PVector' 클래스를 방해하지 마십시오! –

관련 문제