可能是B站最好的植物大战僵尸教程了!C语言实现完整版植物大战僵尸!

大家好
我是程序员rock
现在我们来开始从零构建这一个主打战僵尸
首先我们创建一个项目
我这里使用的是vr
是2022
大家也可以使用vs的任意版本啊
不过现在的话
其实用2019或者22202是非常方便的
好创建一个新项目
选择空项目模板
好项目的名称啊
我的植物大战是啊
可以给后缀按4号
项目名称的话是可以使用中文的啊
啧
好项目创建好了啊
然后我们创建添加一个新的文件
文件名啊
你可以改一下
也可以不用改
我给你改一下
好像我们在呃明确说明一下
我们的一个这些开发日志吧
首先啊我们是创建新项目
这下好了
我们这里说的是空项目模板
其实你们还有一些项目准备啊
项目准备的话嗯
我们用到的时候再说吧
好先创建空项目
注意啊
使用这个vs
好接着我们就要导入素材
把我们这个植物大战僵尸需要的游戏素材呀
啊图片啊
声音啊啊放到我们项目里面来啊
从哪里导入呢
哎大家可以把这个视信
然后在回复里面啊直接领取啊
我这里就这个做一个压缩包
复制啊
这rock一帧一帧p出来的
粘贴好
解压下
企业工具很多啊
7z是最其实最方便的
没有广告的
用其他的也可以
一取得好这一个解压目录好
这是我们的素材
我们把素材全部都复制过来或者剪贴过来吧
剪贴好啊
这里面我们搞一个新的目录
新建一个专门放资源的r e s目录
就是windows基本看下面开发常用的一个方式
r e s表示资源目录
用其他目录也可以好吧
我们都粘贴过来好
你看这里面啊啊这个素材都有了
好另外这里有两个工具文件啊
这种rush的两个工具文件啊
我看剪贴过来放在外面啊
放到梦同目录下面
好
这样的话我们这个嗯素材啊就导入好了
首先我们做什么呢
呃我们初学者往往写做项目的时候
往往会产生困惑
而不知道从哪里学起啊
最好给大家分享一个小的一个开发的一个方式
一个一个技巧吧
用需求
用需求来推动
我们从学角度上角度的话
我们最想看到的是我们游戏界面是吧
所以我们最开始把我们把我们的这个游戏
界面啊
把它搞出来
就我们这里这个实现舒适的最开始的游戏
因为专业术语叫场景
一场景其实就是一个界面
把头文件写下
c语言基础的头文件
还有这里有一个啊
这个这个是一个图形库啊
是easy tt
定住
啊所以需要什么需要先安装
需要安装easy tab啊
这个按住图形库啊
这台官网可以下载
也可以私信我啊
直接获取
直接双击安装就可以了
还这样的话
我们的基础图一定就找好了
没函数
直接做我们的一个初始的一个游戏场景
一个好的方式的话是这样的吧
哎但凡所有的项目不只是游戏啊
做一个初始化
所以我们开始可以做一个初始化
游戏初始化就是我们啊c语言所学到的是吧啊
定义调用函数来定义一个函数
infinite
从这可以看出来
函数是我们自己定义
把自己调用
当然在大型项目开发里面的话
你会定义很多函数给别人调用
好游戏的初始化初始化
你有没有做什么东什么东西呢
啊
首先啊我们对我们初学者最感兴趣的
就是那个游戏的背景是吧
游戏背景加载游戏背景图片
背景图片的话有两种加载方式
第一种是把背景图片
直接打印到我们窗口里面来
但这种方式会它会比较慢
我经常调的会比较慢
第二种方式的话
把背景图片先放到我们的内存变量里面去
这样的话它再从变量里面显示就会很很快
就会更快一些
所以我这里使用这种变种方式
首先呢我们就需要定一个啊背景图片啊
变量里面
啊这是image ex图形库的一个数据线
表示图片的imac g背景图片
导入c加开发放方式的话
就搞搞成员变量
我就用c元的方式
我就定义一个全局变量
它用来表示背景图片的
所以我们要加载啊
就从硬盘的那个背景图片
把它加载到我们这边里面来
怎样价值呢
load image加载

不
注意啊
加载的时候这里要加个取地址符号
后面是我们这个啊路径呢
哎好像我们素材的路径打开所在文件夹
就是我们的i s目录吧
s目录下面的这个好b g点接pg啊
这是我们的背景图片
好像也是这个不建议用绝对路径
有同学喜欢用这个啊
绝对路径很长很长的
这个方不方便
而且项目改变位置你就失效了
必须点接笔记好
加上之后它这里有个错误提示啊

老鸟的话就知道了啊
这是很多解决办法
根本原因是字符集的原因造成的
所以我们这里只需要什么呢
啊最简单的方式是需要改变它的项属性啊
右键单击项目名称

选择属性
弹出属性窗口啊
这里选择高级好这个字符集
把它改成多字节字符集

好ok
这样的话我们背景的图片就已经加载好了

但是这个时候的话他是不会啊
不会显示了
跑起来特别显示的啊
因为它放在内存变量里面是吧
所以我们要把它显示出来的话
还要额外实现它显示出来怎么办呢
诶那我们肯定要什么要先创建这个什么
创建这个游戏窗口
显示到窗口里面来吧
mod的话还是控制台呀
创建一个游戏的图形窗口

啊这个是一直插图形库的结构
很多初学者的话
这个啊担心记不住啊
没关系啊
有个印象就行了
然后查下笔记
看下我的笔记就可以了
它有两个参数啊
第一个窗口的宽度
还有窗户的高度
穿过好多宽多高呢
啊这个游啊这个相机里哈哈他来算啊
这个游戏要多宽多高好看啊
我们这里来啊
直接复刻的那个经典的总大战僵尸啊
按照他的比例的话
我选择这个宽度900x600

900x9也可以这样写
900 600
但这样写就不专业啊是吧
万一以后更改了
所以我们可以把它定义成一个红或者
cos变量都行
我们这里定义成一个红
这c语言的基本的语法是吧

窗口的一个宽度
900
三窗口的高度600
好的替换一下
单口的宽度
然后的高度好好
这样的话我们最简单的初始化就做好了

你看被图片已经加载到我们的变量里面来了
窗口也已经创建好了
好咱们可以跑起来了
哈哈这时候跑的话肯定是一片黑是吧
大家也可以先试一下啊
再加个暂停

因为你不加暂停的话
程序直接gg啊
窗户都来不及
来不及捡
来不及看到就直接关掉了
好跑一下
这主要是检查一下你的开发环境
对不对
好
你看窗户已经出来了

我这个时候都出不来的话
那说明这个环境没有搭配好啊
要重新重新装一下
这个一直插图形库
好然后我们在你你窗口
但是我们是黑的吧
啊我们没有看到我们最关心的这个游戏背景
就没法跟项目经理交代啊
哈哈哈嗯你这个嗯绩效就拿不到
所以我们这里来哎
赶快把窗口把它显示出来
怎么显示呢
啊
这种啊也可以了解分享开那个专业的开发方式
单一的功能啊
我们要什么一定要封装成一个函数
所以我们也给它封装一个更新update

问那个更新窗口
这是表示更新啊
这个游戏窗口的update问的
但你有其他的名字也是没问题的
再买定
更新窗口
更新窗口的话就是把我们的背景图片打开
打出来写出来
用反应组叫渲染bot image
他就是专门把一个图片渲染出来显示出来的
它有呃多个参数
第一个参数其实这是什么意思
我先先写吧
等一下把调查说明image pg好

很多同学可能已经知道了
知道的话就温故而知新啊
我们在打印一个窗图片的时候
啊啊我们要确定它的一个坐标
几乎所有的图形库它都是这种坐标概念
这样的
这是我这是我们的大方框

是我们的窗口啊
在窗口里面呢
我们要在上面绘制啊
要画一个这个图片
画这个图片好
画这个绿色的方块图片怎么画呢
诶你要确定它在哪个位置画是吧
怎么怎么确定呢
就需要确定这两个要素
就是说你的图片他在窗口距离窗口最左侧

它的一个间隔距离
这啊间隔多大好
这个我们一般称之为水平的话说x坐标

还有
这个图形啊
你这个窗图片距离
那个窗口顶部的一个距离有多高啊
这也是我们所说的一个y坐标啊

这话就比较好理解啊
如果对数学比较熟悉的话
其实他本身就是图片的左上角是吧
图片左上角啊
在这个坐标系里面的坐标
这个坐标系的话就是嗯
就是红色的吧
坐标系
初中数学要学的坐标系

不过不同的是它的它这个垂直的这个y坐标
y轴它是朝下的
你可以这样去理解啊
左上角它它在这里面做标志
对数学不熟悉的同学
你就直接叠成这个图片
它距离最左侧的距离和最底部的距离好
那我们要画背景的话
他肯定要从左上角直接全部铺开嘛
毫无疑问啊
所以我们这里的一个背景图片的坐标
a坐标是零
y坐标也是零
好对应我们这里的x和y好
这样我们背景图片啊就已经有了好
这时我们就可以直接跑起来了

哈哈哈哈哈啊
我们的游戏
植物大战僵尸的最初始的界面就已经出来了
不过啊还非常简陋
很多要素都没有
比如说我们的这个啊全面
他在上面的有个类似一个背包内的一个啊
有一个啊按钮啊
有个按钮可以选择我们各种植物的啊
没有出来
还僵尸也没跑过来
好这些
我们看来下一步再做好
这里的话
这就非常简单啊
主要是开发环境的一个设置
一个开环境要使用这个vs
建议vs用其他开环境也可以啊
但是比较麻烦一下要绕左
为了配置另外装一直插图形库
好把素材导进来啊
我们就可以直接看到我们的这个
最初始的界面了
好啊
下一节我们就来做我们的坠子上面啊
上面这个啊这个啊工具栏
好下期再见拜拜