page contents

C# OPENTK - 创建窗口

本文讲述了C# OPENTK - 创建窗口!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-07-V0RRvd0k62e48bf095e08.png

本文讲述了C# OPENTK - 创建窗口!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

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

从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,创建了一个空白窗口,用于侦听按下的退出键,并在按下退出键时退出。在下一教程中,我们将在刚刚创建的空白窗口上绘制一个三角形。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2022-07-30 09:40
  • 阅读 ( 718 )
  • 分类:C/C++开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1312 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章