位置: IT常识 - 正文

【Visual C++】游戏开发笔记之九 游戏地图制作(一)平面地图贴图(游戏microsoft visual c++ runtime)

编辑:rootadmin
本系列文章由zhmxy555编写,转载请注明出处。http://blog.csdn.net/zhmxy555/article/details/7364697作者:毛星云邮箱:happylifemxy@

推荐整理分享【Visual C++】游戏开发笔记之九 游戏地图制作(一)平面地图贴图(游戏microsoft visual c++ runtime),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:visual c 游戏开发,visual c 游戏开发,visual c++经典游戏程序设计,《visual c++游戏编程基础》,visual c++经典游戏程序设计,visual c++游戏开发案例实战,《visual c++游戏编程基础》,visual c++ 游戏编程基础,内容如对您有帮助,希望把文章链接给更多的朋友!

本系列文章由zhmxy555编写,转载请注明出处。http://blog.csdn.net/zhmxy555/article/details/7364697

作者:毛星云邮箱:happylifemxy@qq.com欢迎邮件交流编程心得

地图是游戏元素里面不可缺少的一部分,要产生游戏地图,除了可以直接使用已经绘制好的位图外,对于一些画面不太复杂,并且具有重复性质的地图或场景,有一个比较好的解决方法,那就是利用地图拼接,将一小块一小块的小地图组合成较大的地图。

地图拼接的有点在于节省系统资源,因为一张大型的地图会占用比较多的内存空间,且加载速度较慢,如果游戏中使用了为数较多的大型地图,那么势必会降低程序运行时的性能,而且需要相当可观的内存空间。

接下来的几节笔记,我们将介绍有关地图拼接的概念,并学习利用不起眼的小地图堆砌出美妙无比的游戏地图的方法。

平面地图贴图

这种贴图方法相当直观,即利用一张张四方形的小地图块组成同样是四方形的大地图。下图就是一张由3种不同地图块组合而成的平面地图

【Visual C++】游戏开发笔记之九  游戏地图制作(一)平面地图贴图(游戏microsoft visual c++ runtime)

我们可以看出,这张地图是由6*4张小地图块组成的,列方向是6张图块,行方向是4张图块。这张图里面共出现了3种不同的图块,这是因为程序会事先以数组来定义哪个位置要出现哪一种图块,使得拼接出来的地图能够符合要求,现假设图中3种不同的图块的编号分别为0,1,和2,那么可以用以下的这个一维数组来定义出上图中的地图

Int mapblock[24]={1,1,1,2,3,2 //第一列1,1,2,2,2,3 //第二列2,2,2,2,2,2 //第三列2,2,2,2,2,1}; //第四列

将这个一维数组以行列的方式排列,可以看出每个数组元素对应图中哪个图块。要注意的是,我们使用的是一维数组,因此每个数组的每个元素的索引值是0,1,2,3……24。但是,由于程序里无论计算图块贴图的位置还是计算整张地图的长宽尺寸,都是以行列来换算的,所以需要将数组的索引值转换成相应的列编号和行编号。转换公式如下:

列编号=索引值/每列的图块个数(行数);

行编号=索引值%每列的图块个数(行数);

我们还需注意的是,列编号与行编号的起始值是从0开始算起,而一旦算出了列编号与行编号之后,便可以按照图块的宽与高来求出图块贴图的位置,下面是计算图块左上点贴图坐标的公式。

左上点X坐标=行编号*图块的宽度;

左上点Y坐标=列编号*图块的高度;

原理部分我们就介绍完了,下面我们来看一个实例:

#include "stdafx.h"#include <stdio.h>//全局变量

本文链接地址:https://www.jiuchutong.com/zhishi/303308.html 转载请保留说明!

上一篇:网站为什么需要定期改版(网站为什么需要备案)

下一篇:phpcms可以上传网页吗(phpcms怎么用)

  • 16进制颜色转换rgb(16进制颜色转换器)

    16进制颜色转换rgb(16进制颜色转换器)

  • 微信企业版和微信的区别在哪里(微信企业版和微信区别)

    微信企业版和微信的区别在哪里(微信企业版和微信区别)

  • 华为p30微信卡顿严重(华为p30微信卡顿后自动重启)

    华为p30微信卡顿严重(华为p30微信卡顿后自动重启)

  • 苹果屏幕小圆圈快捷键怎么设置出来(苹果屏幕小圆圈怎么关闭)

    苹果屏幕小圆圈快捷键怎么设置出来(苹果屏幕小圆圈怎么关闭)

  • 长边打印和短边打印有什么区别(长边打印和短边打印的区别图片)

    长边打印和短边打印有什么区别(长边打印和短边打印的区别图片)

  • 华为主要业务做什么(华为主要业务是什么)

    华为主要业务做什么(华为主要业务是什么)

  • iphone账户详情不可用(iphone账户详情不可用是什么意思)

    iphone账户详情不可用(iphone账户详情不可用是什么意思)

  • 抖音被判定为搬运过多,还能恢复吗(抖音被判定为搬运限流)

    抖音被判定为搬运过多,还能恢复吗(抖音被判定为搬运限流)

  • qq把好友申请屏蔽了对方会知道吗(qq好友申请设置在哪)

    qq把好友申请屏蔽了对方会知道吗(qq好友申请设置在哪)

  • 华为平板第一次充电多长时间(华为平板第一次正确充电方法)

    华为平板第一次充电多长时间(华为平板第一次正确充电方法)

  • 华为畅享10和10e的区别(华为畅享10和10e的手机壳一样吗)

    华为畅享10和10e的区别(华为畅享10和10e的手机壳一样吗)

  • 苹果11苹果11pro区别(苹果11苹果x哪个好)

    苹果11苹果11pro区别(苹果11苹果x哪个好)

  • windows7关闭窗口快捷键(windows7中窗口关闭有几种方法)

    windows7关闭窗口快捷键(windows7中窗口关闭有几种方法)

  • 华为lldtl10是什么型号(华为lld-tl10)

    华为lldtl10是什么型号(华为lld-tl10)

  • iphone7可以加内存吗(iphone7能不能加内存)

    iphone7可以加内存吗(iphone7能不能加内存)

  • 手机上system是什么意思(手机上system是什么)

    手机上system是什么意思(手机上system是什么)

  • 快手极速版我的收藏在哪(快手极速版我的订单在哪里)

    快手极速版我的收藏在哪(快手极速版我的订单在哪里)

  • 软件加密怎么解除(软件加密了怎么解开)

    软件加密怎么解除(软件加密了怎么解开)

  • 新氧app在哪里测脸型(新氧app怎么测颜值)

    新氧app在哪里测脸型(新氧app怎么测颜值)

  • 华为怎么升级9.1(华为怎么升级app)

    华为怎么升级9.1(华为怎么升级app)

  • 华为商城无法连接网络(华为市场连不上网)

    华为商城无法连接网络(华为市场连不上网)

  • 微信如何设置拒收对方信息(微信如何设置拒接个人语音和视频)

    微信如何设置拒收对方信息(微信如何设置拒接个人语音和视频)

  • 陌陌被拉黑了发信息还能收到么(陌陌被拉黑发动态对方还能看到吗)

    陌陌被拉黑了发信息还能收到么(陌陌被拉黑发动态对方还能看到吗)

  • 详解Linux系统中的usr目录(linux系统的)

    详解Linux系统中的usr目录(linux系统的)

  • python中np.insert()函数的使用方法(python中insert函数怎么用)

    python中np.insert()函数的使用方法(python中insert函数怎么用)

  • 增值税建筑服务税率变化时间
  • 开具增值税发票哪些情形不用交税?
  • 个税申报逾期罚款怎么交
  • 预付卡发票可以报销吗?
  • 赠送客户的产品计入销售费用的二级科目
  • 无形资产计税基础怎么算
  • 员工本地住宿费会计分录
  • 购买土地契税和印花税什么时候交
  • 商贸企业购进商品怎么做成本
  • 在建工程有应交税费吗
  • 电子银行承兑汇票已承兑已锁定
  • 制造费用折旧费怎么结转
  • 发放外单位人员奖金 个人所得税
  • 费用没有发票是什么意思
  • 发票章盖收据会被税务局罚款吗
  • 不征税发票报税怎么报
  • 关于建筑工程发包与承包下列说法正确的是
  • 未达起征点销售额和其他免税销售额
  • 增值税暂估
  • 其他收益纳税
  • 公司付给个人的借款利息怎么做账
  • 讲课费税务发票类别
  • 信息服务费发票范围
  • 开启共享文件夹
  • 公司与客户合作协议范本
  • 怎么解决笔记本电脑卡顿问题
  • Win11怎么不显示图标
  • android 设置按钮颜色
  • 增值税发票和进项发票什么意思
  • bootcamp怎么直接安装
  • 政策性搬迁的会计处理
  • 无形资产出租的账务处理
  • wordpress怎么上传网站
  • 二手商铺的税费太高了吧
  • 企业租用个人房屋
  • vue打包成一个文件
  • thinkphp框架入门
  • 手续费及佣金收入会计分录
  • 微信小程序怎么制作自己的小程序
  • php curlfile
  • 没有计提坏账如何披露
  • 联营企业分得的利润
  • 资产负债表中的货币资金怎么算
  • 十年磨一剑的下一句幽默
  • 企业破产员工补偿标准是按上年平均工资
  • 小企业需要做计算机吗
  • 增值税申报表填写顺序
  • 电脑计入固定资产了怎么抵企业所得税
  • 短期借款的账务处理例题
  • 研发支出是什么性质的科目
  • 私车公用属于违反什么纪律
  • 土地违约金的法律规定
  • 旅行社差额征税全额开票和差额开票
  • 总公司与分公司关系证明模板
  • 辅助生产费用如何判断受益多少事指什么
  • 建账初期账务处理程序
  • 企业自建厂房需要有资质吗
  • 基本生产成本和生产成本
  • 财务软件无形资产有哪些
  • 如何创办企业(组建程序)
  • ubuntu 16.04下mysql5.7.17开放远程3306端口
  • xp安装声卡驱动
  • freebsd怎么样
  • win8.1操作系统关闭驱动数字签名
  • ubuntu启动vncserver
  • ubuntu里怎么装软件
  • linux中less和more
  • linux find -a
  • windows7英雄联盟老是崩溃
  • win10改服务器
  • win7待机时间在哪调
  • win10系统日历设置
  • JavaScript中的方法名不区分大小写
  • cdn ajax
  • nodejs readfile
  • python itcast
  • unity vtext
  • 细说javascript
  • python爬虫京东
  • 店面转让,房租怎么交税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设