1

有没有办法确定哪个对象正在调用 draw 方法。

创建:

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

调用代码:

    [joint.model draw];

draw 方法(在 Box 类中):

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

如何joint在我的 draw 方法中接收对象?

如果需要更多的课程信息,我可以附上,但我没有假设,因为没有更多。

4

1 回答 1

1

model对象需要有一个返回的指针才能joint-draw方法中使用它。因此,您需要修改Box类以使其具有指向任何类型的指针joint,或者如果Box由您正在使用的框架定义,则需要对其进行子类化。所以你可以这样做:

@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];

然后在你的 draw 方法中,你可以model像这样简单地访问:

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