OpenGL实现打砖块(一)

这里是GitHub上的项目地址。
声明:这个项目思路和素材完全是基于这个OpenGL教程,作者是Joey de Vries。我做的工作仅是在macOS上用Objective-C实现了一遍,原教程是在windows上基于C++的实现。我的项目中没有依赖原教程中依赖的第三方库,完全是基于系统库的实现。非常感谢Joey de Vries提供的优秀的OpenGL教程!

前言

去年利用空闲时间学习了这个OpenGL的教程,一步步跟随这作者的脚步实现了一个打砖块的小游戏。打砖块这个小游戏虽然简单,但是麻雀虽小,五脏俱全。常见的OpenGL的使用方法基本上都有涉及,比如使用OpenGL渲染文字、制作粒子系统、图像的后处理等等。另外让我感觉有价值的一方面则是在使用OpenGL实现一个较复杂的程序时,怎样管理好OpenGL的资源,如texture,shader,怎样将整个程序较为清晰的组织起来。在这个简单的小游戏中,原作者的思路给了我很多帮助和启发。

我写这一系列博客的主要目的是帮助自己记录一下学习过程,加深自己的理解。如果能给看到这个系列博客的人带来一点点帮助,那就幸甚至哉了!

在macOS上建立OpenGL渲染环境

既然是一个用OpenGL实现的小程序,那么我们首先就要先建立一个OpenGL的渲染环境,能使用OpenGL命令在窗口上画画。macOS上给开发者提供了OpenGL的framework,能让我们很方便的创建OpenGL的context,以及OpenGL的画布。

1. 创建Window以及View

在app启动后我们需要动态的创建一个窗口来显示,以及一个OpenGL的视图来填充窗口,注意这里的app是指macOS下的app,不是iOS。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
   
    // 添加窗口关闭消息的监听
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillClose) name:NSWindowWillCloseNotification object:nil];
    
    NSRect windowRect = NSMakeRect(WindowX, WindowY, WindowW, WindowH);
    NSRect viewRect = NSMakeRect(0, 0, WindowW, WindowH);
    // 创建窗口
    _mainWindow = [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable backing
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值