C# OpenTK教程 - 1.1 创建窗口

4 篇文章 5 订阅

欢迎访问LearnOpenTK教程的第一个项目。本指南将教你如何从NuGet获取OpenTK,并打开您的第一个窗口。我们承诺这将是一个短暂的。

从NuGet安装

OpenTK已经发布到.NET官方的包管理NuGet上,点击链接下载。OpenTK 3可以安装在.NET Framework 2.0和任何衍生单声道版本上。
Visual Studio 2013/2015/2017中,点击工具 -> NuGet包管理 -> 程序包管理器控制台来访问程序包管理器

ch10101这将调出程序包管理器控制台,一个Visual StudioNuGetPowerShell扩展,为了安装OpenTK,在序包管理器控制台中输入以下命令:

Install-Package OpenTK

ch10102

创建窗口

不像OpenGLOpenTK自带窗口系统。本教程将教您如何使用它。继续在您喜爱的IDE中创建C#控制台项目,并创建一个名为Game.cs文件,并使用指令添加以下内容:

using OpenTK; 
using OpenTK.Graphics;

namespace YourNamespaceHere 
{ 
	public class Game 
	{

	}
}

现在我们有一个空白的类,是时候把它变成GameWindow了。要做到这一点,只需继承GameWindow,像这样:

public class Game : GameWindow

现在你的类是一个基本窗口。这很好,但就其本身来说,你什么也做不了。有很多方法可以自定义你的游戏窗口,但在本教程中,我们将创建一个简单的构造函数,让我们设置窗口的宽度,高度和标题。为此,我们重写OpenTK中包含的基本构造函数:

public Game(int width, int height, string title) : base(width, height, GraphicsMode.Default, title) 
{ 
}

你的GameWindow已准备就绪!现在,您所有需要做的就是在程序中创建一个实例。当您之前创建项目时,它也应该创建一个名为Program.cs,其中包含Main函数的文件。若要在程序启动时打开窗口,我们必须:

  • 创建Game类的实例
  • 通过调用Run函数启动所有泵
  • 当所有的做完后,释放Game对象
// 此行创建一个新实例,并在 using 语句中包装实例,以便我们退出块后自动释放实例。
using (Game game = new Game(800, 600, "Learn OpenTK"))
{
	//运行需要双精度值,即它应该努力达到的每秒帧数 
	//你可以把它分出去, 它将按硬件允许它做尽可能的更新
    game.Run(60.0);
}

将该代码插入主函数,然后构建并运行程序!你现在有一个空白的窗口,很好!但是,关闭窗口的唯一方法就是使用交叉(X)按钮或Alt+F4.我们不想要这样,让我们做一点点输入处理!

GameWindow有很多方法可以重写,以将各种功能添加到窗口中。您可以查看此网站的"API"部分来查看所有这些内容,但在这种情况下,我们感兴趣的是OnUpdateFrame

通过简单的敲入override OnUpdateFrame,你的IDE应该能够生成这样的代码

protected override void OnUpdateFrame(FrameEventArgs e)
{
    base.OnUpdateFrame(e);
}

检测按键按下真的很简单!OpenTK有一个名为"KeyboardState"类中的IsKeyDown方法,如果按下键,该方法返回true。例如,在按下返回(Esc)键时,KeyboardState.IsKeyDown(Key.Escape)返回true

当我们按下退出按钮时,我们想退出程序,综上所述,在按下退出键时退出就很简单了

KeyboardState input = Keyboard.GetState();

if (input.IsKeyDown(Key.Escape))
{
    Exit();
}

现在,函数看起来应该是这样:

protected override void OnUpdateFrame(FrameEventArgs e)
{
    base.OnUpdateFrame(e);

    KeyboardState input = Keyboard.GetState();

    if (input.IsKeyDown(Key.Escape))
    {
        Exit();
    }
}
总结

在本教程中,我们安装了 OpenTK,创建了一个空白窗口,用于侦听按下的退出键,并在按下退出键时退出。在下一教程中,我们将在刚刚创建的空白窗口上绘制一个三角形。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
当然,我可以为您提供一些关于C#OpenTK教程OpenTK是一个用于在C#中编写跨平台图形应用程序的库。它基于OpenGL,并提供了许多有用的功能和工具。 以下是一些学习C# OpenTK的步骤: 1. 安装OpenTK:首先,您需要在您的计算机上安装OpenTK库。您可以通过NuGet包管理器或从OpenTK官方网站下载并手动安装。 2. 创建新项目:使用Visual Studio或您喜欢的C#集成开发环境(IDE)创建一个新项目。确保选择C#语言。 3. 添加OpenTK引用:在您的项目中,右键单击“引用”文件夹,然后选择“添加引用”。浏览并选择您之前安装的OpenTK库。 4. 创建窗口:在您的代码中,创建一个新的OpenTK窗口对象。您可以设置窗口的标题、大小和其他属性。然后,为窗口注册事件处理程序,例如当窗口关闭时进行清理。 5. 初始化OpenGL:在窗口的Load事件处理程序中,初始化OpenGL上下文,并设置一些OpenGL的选项和状态。这将为您提供一个可以进行图形绘制的环境。 6. 渲染循环:在窗口的RenderFrame事件处理程序中,编写您的渲染代码。这是一个循环,在每一帧中执行一次。您可以在此处绘制图形、加载纹理、更新模型等。 7. 用户输入:处理用户的输入,例如鼠标和键盘事件。通过OpenTK提供的事件处理程序,您可以轻松捕获用户的操作。 8. 销毁:在窗口的Closed事件处理程序中,进行一些清理操作,例如释放资源、关闭文件等。 这只是一个简单的教程概述,帮助您入门C# OpenTK开发。当然,要深入研究和掌握OpenTK,还需要学习更多的OpenGL知识和技术。 您可以参考OpenTK官方文档、教程和示例代码来进一步了解和学习C# OpenTK的用法和技巧。祝您学习愉快!如果您有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值