1

draw メソッドを呼び出しているオブジェクトを特定する方法はありますか。

作成:

joint.model = [[Box alloc] init];

呼び出しコード:

    [joint.model draw];

draw メソッド (Box クラス内):

-(void)draw
{   
        glBindVertexArrayOES(_boxVAO);
        glDrawArrays(GL_TRIANGLES, 0, 7055*3);
}

jointdraw メソッドでオブジェクトを受け取るにはどうすればよいですか?

より多くのクラス情報が必要な場合は添付できますが、それ以上のものはないため、想定していませんでした。

4

1 に答える 1

1

メソッドでオブジェクトを使用するには、modelオブジェクトに戻るポインターが必要です。したがって、クラスを変更して、型が何であれ、ポインタを持つようにするか、使用しているフレームワークによって定義されている場合は、それをサブクラス化する必要があります。したがって、次のいずれかを実行できます。joint-drawBoxjointBox

@class Box {
   Model* model; // Or whatever type model is.
}

または、それがオプションでない場合は、次のようにすることができます。

@class BetterBox : Box {
    Model* model; // Or whatever type model is.
}

そして、model.joint次のように作成されていることを確認してください。

model.joint = [[BetterBox alloc] init]; // or [[Box alloc] init] if you modified the Box class
[model.joint setModel:model];

model次に、 draw メソッドで、次のように簡単にアクセスできます。

- (void)draw
{
    [model someMethod];
    //... etc. ...
}
于 2012-05-25T20:14:38.150 に答える