我正在开发游戏引擎。现在假设我们有一个Game类:
using System;
using OpenTK;
using OpenTK.Graphics.OpenGL;
using System.Drawing;
using static OpenTK.Graphics.OpenGL.GL;
namespace Test2
{
class Game : GameWindow
{
public Game(int width, int height)
:base(width, height)
{
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}
protected override void OnUpdateFrame(FrameEventArgs e)
{
base.OnUpdateFrame(e);
}
protected override void OnRenderFrame(FrameEventArgs e)
{
base.OnRenderFrame(e);
}
}
}
我们有一种媒介,可以在每个媒介中调用一个方法。 现在假设创建游戏的人,创建一个名为ball_behaviour脚本的文件:
using System;
using System.Drawing;
namespace Test2.Project.Behaviour
{
class Ball
{
public void Update()
{
}
public void init()
{
A2D.Background = Color.CornflowerBlue;
}
public void preInit()
{
}
}
}
并假设还有其他类似文件,它们具有Update和init方法。例如,在Test2.Project.Behaiviour命名空间下注册的每个类中,如何从受保护的重写void OnRenderFrame调用这些方法?非常感谢您。
编辑:GameWindow类来自OpenTK,这是我用来将c#与OpenGL接口的API。
编辑#2:有点像Unity的方式。