我正在制作我的第一个(2D)游戏,我选择了OpenTK。我只有一个问题。假设我有一个名为PhysicsObject的类。创建类时,应自动绘制每个PhysicsObject实例。这就是我目前正在做的事情。
物理对象类:
public class PhysicsObject {
public PhysicsObject() {
EventMan.draws.Add(Draw);
}
public void Draw() {
// draw code here
}
}
EventMan:
public static class EventMan {
public static List<Action> draws = new List<Action>();
}
主要游戏绘图代码:
game.RenderFrame += (sender, e) =>
{
foreach(List<Action> draw in EventMan.draws.ToList()) {
draw.Invoke();
}
}
这确实有效,但我觉得这不是最有效的方法。还有其他方法或我是否正确?
TL; DR:我试图在创建时自动绘制PhysicsObject的每个实例,因此我将实例的draw方法添加到公共静态List中。此列表在绘图代码中访问并运行绘制代码。