从 0 开始学游戏开发
蔡能
原网易游戏引擎架构师,资深游戏底层技术专家
37243 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
从 0 开始学游戏开发
15
15
1.0x
00:00/00:00
登录|注册

第4讲 | 底层绘图接口的妙用

Pygame
Direct2D
DirectDraw
游戏引擎的必要性
SDL的统一封装
绘图接口的作用
游戏主循环
创建窗体和渲染器
SDL的初始化
GDI+
GDI
SDL
DirectX
OpenGL
小结
如何直接使用绘图接口进行游戏开发
几种常见的绘图接口
画线的接口函数分解、组合、计算
底层绘图、音频、操作系统接口的封装实现
游戏引擎的工作方式
游戏引擎的概念及作用
底层绘图接口的妙用

该思维导图由 AI 生成,仅供参考

上一节,我给你介绍了游戏引擎的概念及其在游戏开发中所起的作用。同时,我也提到了游戏引擎背后的工作方式。在代码层面,游戏引擎是一套对底层绘图、音频、操作系统接口的封装实现。
在此基础上,我还举了一个在游戏屏幕上画线条的例子。在这个例子中,画线的接口函数在背后分解、组合、计算,并将绘制工作交给底层绘图接口。这个绘图接口,就是今天要讲的内容。

几种常见的绘图接口

前面我已经说过,我会针对 2D 游戏来讲解游戏开发的流程和细节,所以,这里我先介绍几种 2D绘图接口(即 API,全称 Application Programming Interface)。我选择了 5 种 Windows 下最流行的绘图接口,分别讲解。

1.OpenGL

OpenGL 是老牌的图形图像接口。GL 是 Graphics Library 的缩写。所以,顾名思义,OpenGL 就是开放图形接口的意思。和接下来要讲的 DirectX 一样,OpenGL 也可以创建和渲染 2D、3D 图形。但是,和 DirectX 不同的是,它可以在多种平台下运行,比如 Windows、Linux、macOS 和部分 UNIX,而 DirectX 只能在 Windows 生态下运行。
OpenGL 本身只提供图形渲染接口,如果你需要别的功能,比如音频、鼠标、键盘的操作,甚至是创建一个窗体,都需要别的扩展库支持。

2.DirectX

说起 DirectX,这个名字已经如雷贯耳。DirectX 的开发初衷,是为了让游戏开发者能像在 DOS 平台编写游戏一样,在当时新的 Windows 95 平台上,也能一样高效、快速地操纵各种硬件设备。
其实,在 DirectX 发布之前,微软已经将 OpenGL 包含在 Windows 系统里面。随着时间的推移,OpenGL 逐渐成为了行业标准,而 DirectX 自然免不了与其展开竞争。
这里,我主要介绍一下 DirectX 中的两个核心组件。这两个核心组件的功能与 2D 游戏编程息息相关,你一定得了解一下。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了游戏开发中底层绘图接口的重要性,以及几种常见的绘图接口,包括OpenGL、DirectX、SDL、GDI和GDI+。通过对这些绘图接口的特点和适用场景的介绍,读者可以更好地选择适合自己项目的绘图工具,并理解其背后的技术特点。文章还提到了Pygame,这是一个使用Python封装的游戏库,背后调用的是SDL的接口,为读者提供了更多的开发选择。此外,文章还以SDL为例,详细介绍了如何通过图形接口直接进行游戏开发的步骤,使读者对游戏开发的一部分流程有了更清晰的了解。通过本文的总结,读者可以快速了解不同绘图接口的特点和适用场景,为自己的项目选择合适的技术方案提供了参考。文章内容简洁明了,为读者提供了对游戏开发技术特点的全面了解。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学游戏开发》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(27)

  • 最新
  • 精选
  • 火腿
    现在游戏开发的最流行API是不是DirectX?

    作者回复: 你如果指的电脑平台,是的

    2019-01-16
    1
  • aaaaa
    ide是什么,idea编辑器吗?

    作者回复: ide为集成开发环境,不是指的idea编辑器。

    2018-06-14
  • 月空繁星
    GDI接口是不是对directX的二次封装?两者之间是否有关系?

    作者回复: 不是,DX中DDraw会有一部分功能调用gdi,但GDI并不是对DX的封装。

    2018-06-04
  • 壬大师
    老师,游戏引擎这个东西是不是只针对客户端?服务器端没有游戏引擎一说?

    作者回复: 某些游戏引擎包含服务器端接口,服务器端没有游戏引擎一说,光是服务器端,并不能编写一款游戏。

    2018-06-02
  • 小侠
    底层接口只能做简单游戏,游戏引擎在底层接口基础上做封装和扩展,方便做复杂游戏
    2018-06-02
    1
    12
  • 立春
    其中一行代码应该是 window=SDL_CreateWindow…而且我习惯bool 类型的赋值false或true。代码中一开始初始化为0,之后又为true,不是非常统一,当然这不是重点。
    2018-06-02
    10
  • Lu | SSEINFO
    游戏引擎应该相当于一层封装,把SDL的方法封装了一个更高的抽象层。就好比网络编程,我们可以直接用socket,也可以使用封装好了的网络库,来简化我们的代码。
    2018-06-02
    6
  • 以往
    游戏引擎还是需要的 SDL是对硬件的使用做了封装,但复杂功能的实现还是要借助于引擎提供的一系列组件去完成
    2018-06-02
    3
  • 王建
    绘图接口只是游戏引擎的一个子集
    2018-06-22
    2
  • 小猫藏鱼
    本节课介绍了5种图形接口,opengl,directx,sdl,gdi,gdi+,以及如何不使用引擎直接用绘图接口编写游戏的方法。 游戏引擎的主要部分就是封装了图形接口,更加容易使用,便于开发。 pygame 就是对 sdl 的封装
    2018-08-28
    1
收起评论
大纲
固定大纲
几种常见的绘图接口
1.OpenGL
2.DirectX
显示
设置
留言
27
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部