2016-09-06 15 views
1

単純な 'follow the mouse'プログラムをコーディングしようとしていますが、次のコードでは静的な.sub() 「の代わりに「MULT」などなどの、したがって、なぜ私たちは「掛け」している、処理中 - "関数サブ(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()を定義する必要はありますか?あなたはProcessingでもそれを行うことができますか?

ありがとうございます。

+0

カスタムマウスチェイサークラスを投稿できますか? (パーティーは構図を使っているように見えますが、部分的にはクラスを拡張していますが、スーパークラスと同じ名前を使用しています。これは何かを持っている可能性があります) –

答えて

0

あなたが定義したいくつかの方法は、自分自身では意味がありませんと言っています。処理中のPVectorクラスを使用していますか、独自のPVectorクラスを使用していますか?

あなたは、あなたがいずれかの独自のsub()関数を定義する必要があるとしている、またはあなたがこのように、その完全修飾名を用いた処理のPVectorクラスを使用することができるかもしれない、あなた自身のPVectorクラスを使用している場合:

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

もちろん、これはまたあなたのPVectorの代わりに処理PVectorを返します。

自分のPVectorクラスを定義する必要がある理由、または独自のPVectorメソッドを定義する必要がある理由がわかりません。そこから何かが聞こえます。

これで問題が解決しない場合は、自分で定義した方法や定義方法など、MCVEを含む質問を編集してください。

+0

私は、私自身のPVectorクラスを使って、主に処理のベクトル操作に慣れるための学習ツールとして使用します。プロジェクトフォルダからPVectorクラスを削除すると問題が解決されていることがわかりましたので、おそらくこれで解決します。 簡単な質問です。「完全修飾名」とはどういう意味ですか?それはどのように機能するのですか? –

+0

@LouisCowell私の答えのサンプルコードをご覧ください。 'processing.core.PVector'の部分を参照してください。これが完全修飾名で、「Java完全修飾名」などのグーグルでグーグルでより多くの情報が得られます。いずれにしても、何らかの理由であなた自身の 'PVector'クラスを持っているなら、少なくとも' PVector'クラスを妨害しないように名前を変えてください! –

関連する問題