我正在编写一个基本的游戏引擎,并具有一个抽象类,该抽象类表示可以在3D世界中绘制的任何对象,但是在该类内部是一个抽象方法Render(),我想在每个绘制阶段由引擎自动调用该方法。我如何实现此方法,以便从我的抽象类扩展的每个类都将自动调用Render()?
我正在使用java,android sdk 2.2和opengl es。
最佳答案
您可以将可以渲染的每个对象注册到一个类,该类将在所有对象上调用render()。
例如 :
public class Registry{
private static Collection<RenderedObject> register = new ArrayList<RenderedObject>();
public static void add(RenderedObject obj){
register.add(obj);
}
public static void renderAll(){
for(RenderedObject obj : register){
obj.render();
}
}
}
您可以在RenderedObject的构造函数中将对象注册到注册表中。