C++游戏编程教程(一)

参考书籍:《C++游戏编程:创建3D游戏》
注:本教程所有代码的开发环境均为Visual Studio Preview 2022,C++标准是C++20。

一、初识SDL

SDL是一个跨平台的开源多媒体库,被广泛应用于游戏开发,具体可以看这里。另外,SDL的官网上也有很多资料,可以点击此处查看
一旦出现了这样的程序库,环境配置就会成为众多初学者最头疼的事。为了一劳永逸的解决这个问题,我们先新建一个示例项目,并进行以下配置:

  1. 首先,我们要从官网上下载SDL库,下载Source Code和Runtime Binaries。下载之后,找到include和lib两个文件夹,把它们拷贝到一个固定的地方,以后就不要动它们了。

  2. 进入新建的项目。我们先不管代码,找到项目-属性-C/C+±常规,把include文件夹的路径添加到“附加包含目录”中。修改附加包含目录

  3. 接着,我们找到链接器-常规,把lib文件所在的路径添加到“附加库目录”里。修改附加库目录

  4. 然后,我们找到链接器-输入,把用到的lib添加到“附加依赖项”里。我添加了这几个(以后用到别的可以添加):

opengl32.lib
SDL2.lib
SDL2main.lib
SDL2_ttf.lib
SDL2_mixer.lib
SDL2_image.lib
  1. 因为程序需要用到很多dll,如果每次创建程序都复制一次太麻烦,所以我们可以让VS生成成功之后自动复制dll。找到属性-生成事件-生成后事件,添加以下代码到“命令行”:
xcopy "XXX\*.dll" "$(TargetDir)" /s /h /d /y
xcopy "XXX\*.dll" "$(SolutionDir)" /s /h /d /y

其中,XXX是下载的dll文件的路径。


至此,配置工作基本完成,接下来,我们要把这个示例项目保存成项目模板,方便以后使用。具体方法请看这里

二、程序框架

在本教程中,我参考那本书,使用了面向对象的思想,面向对象的优点在这里充分体现出来了,特别是低耦合、易扩展的特性。体现在实际应用上,只要费一点功夫写几个框架类,后面的直接继承就行了,需要修改的也少之又少。
程序主要是由以下几个类组成的:

1.Game类

这是最重要的一个类,它管理整个游戏的数据加载、角色和组件的运行。这个框架写好后,基本上不怎么用修改。

2.Actor类

这个类是角色类,用来管理一个角色的状态,但只包括处理输入和更新位置,并不包括绘制。在Game类里有一个容器来存储所有的角色。

3.Component类

这个类是组件类,用来实现各种功能,每个组件都与一个Actor关联,在Actor里有一个容器来存储所有的组件。

4.DrawComponent类

这是一个特殊的组件类,专门用于绘制。它派生自Component类,但与基类不同的是,它并不存储在Actor的容器里,而是存储在Game类里一个专门的容器里。
注:上面所说的“存储”,是指指针存储在容器里,对象本身都是new出来的。


其它的与游戏相关的所有自定义类,都是直接或间接派生自这几个类的。
今天就先讲到这里,下一篇博客里我会详细介绍Game类的实现。再见:-)

  • 13
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值