位置: 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怎么用)

  • 微信面对面建群怎么加入(微信面对面建群人数上限)

    微信面对面建群怎么加入(微信面对面建群人数上限)

  • 优酷视频怎么下载到手机本地相册(优酷视频怎么下载到手机上)

    优酷视频怎么下载到手机本地相册(优酷视频怎么下载到手机上)

  • 电脑搜狗输入法悬浮窗不见了怎么办(电脑搜狗输入法不见了怎么调出来)

    电脑搜狗输入法悬浮窗不见了怎么办(电脑搜狗输入法不见了怎么调出来)

  • 苹果手机左上角有个飞机图标怎么回事(苹果手机左上角月亮怎么关闭)

    苹果手机左上角有个飞机图标怎么回事(苹果手机左上角月亮怎么关闭)

  • 微信群收款功能在哪(微信群收款功能没有了)

    微信群收款功能在哪(微信群收款功能没有了)

  • 怎么取消微信刷脸(怎么取消微信刷脸设置)

    怎么取消微信刷脸(怎么取消微信刷脸设置)

  • 笔记本电脑按键失灵一部分(笔记本电脑按键掉了怎么修)

    笔记本电脑按键失灵一部分(笔记本电脑按键掉了怎么修)

  • 打印机墨水通用吗(打印机如何加墨水)

    打印机墨水通用吗(打印机如何加墨水)

  • 为什么qq情侣空间显示error(为什么qq情侣空间天数显示的不对)

    为什么qq情侣空间显示error(为什么qq情侣空间天数显示的不对)

  • 手机qq密码没错为何登不上(手机qq密码没错为何登不上微信)

    手机qq密码没错为何登不上(手机qq密码没错为何登不上微信)

  • 笔记本电脑上下载的钉钉为什么打不开(笔记本电脑上下左右键不能跳格怎么恢复)

    笔记本电脑上下载的钉钉为什么打不开(笔记本电脑上下左右键不能跳格怎么恢复)

  • 订单备注是什么意思(订单备注是什么意思拼多多)

    订单备注是什么意思(订单备注是什么意思拼多多)

  • qq好友辅助成功后多久发短信(qq好友辅助成功没反应)

    qq好友辅助成功后多久发短信(qq好友辅助成功没反应)

  • ip65是什么意思(配电箱ip65是什么意思)

    ip65是什么意思(配电箱ip65是什么意思)

  • 华为gt2怎么充电(华为gt2怎么充电只能到99)

    华为gt2怎么充电(华为gt2怎么充电只能到99)

  • 荣耀v20在哪看运行内存(荣耀20在哪里看运行内存)

    荣耀v20在哪看运行内存(荣耀20在哪里看运行内存)

  • qq怎么永久注销账号(qq号怎么永久注销账号)

    qq怎么永久注销账号(qq号怎么永久注销账号)

  • 苹果6sp支持12w快充吗(苹果6sp支持18w快充吗)

    苹果6sp支持12w快充吗(苹果6sp支持18w快充吗)

  • imx582和imx586区别(imx582与imx686)

    imx582和imx586区别(imx582与imx686)

  • vivo23有红外线功能吗(vivo有红外线功能)

    vivo23有红外线功能吗(vivo有红外线功能)

  • opporeno有无线充电吗(oppo手机reno无线充电器怎么用)

    opporeno有无线充电吗(oppo手机reno无线充电器怎么用)

  • 抖音上怎么知道别人看过你(抖音上怎么知道好友在和别人私聊)

    抖音上怎么知道别人看过你(抖音上怎么知道好友在和别人私聊)

  • 电脑一直转圈打不开机(电脑一直转圈打不开文件怎么回事)

    电脑一直转圈打不开机(电脑一直转圈打不开文件怎么回事)

  • python类方法的注意点(python中类方法有什么用)

    python类方法的注意点(python中类方法有什么用)

  • 增值税专用发票抵扣期限
  • 进项抵扣税率是多少
  • 大票可以直接更名吗
  • 企业租赁个人房屋怎么交税
  • 应付职工薪酬代扣款项账务处理
  • 自产产品用于职工福利确认收入吗
  • 餐厅团购券在哪个软件的
  • 钻井勘探支出已费用化的探井
  • 房产租赁合同印花税
  • 有现金折扣方式有哪些
  • 对非本单位的营销方案
  • 公司购车购置税怎么交款
  • 银行发行理财产品的条件
  • 组织机构代码证过期
  • 免抵退税额抵减额是什么意思
  • 个人开机械租赁发票需要什么
  • 500元以下不需要发票
  • 进项税抵扣需要做分录吗
  • 未达账项做完调节表后怎么处理?
  • 准予抵扣的进项税额有哪些
  • 作废的发票没有验旧丢了怎么办
  • 小规模可以接收专票吗现在
  • 筹建期间发生的收入
  • 结转法定盈余公积会计分录怎么写
  • mac host is down
  • 维修机器设备买什么好
  • 增值税要不要计入固定资产的成本中?
  • 处理废料会计分录大全
  • hp是什么代码
  • PHP:ob_iconv_handler()的用法_iconv函数
  • 企业所得税具体纳税筹划案例
  • 最大的apple商店
  • pace框架
  • ajax如何返回数据
  • php文件上传后只显示了路径怎么办啊
  • uniapp云打包收费
  • 大前端需要掌握什么技能
  • 跨地区经营建筑企业预缴增值税
  • 基于反事实因果推断的度小满额度模型
  • web前端期末大作业旅游页面
  • 无形资产入股后如何处理
  • 抄税清卡是一个意思吗
  • vue项目使用less
  • 一般纳税人购进小规模纳税人的货物
  • 发票收件人信息
  • 年报和汇算清缴报表口径的区别
  • 企业会计准则无形资产土地摊销
  • 自来水厂的供水井
  • 去银行打对账单和回执单需要拿什么
  • sql 临时表格
  • 小规模纳税人每个月都要抄税清卡吗
  • 应付账款暂估款的账务处理
  • 每季度末是什么意思
  • 去年多计提工资今年怎么进行损益调整
  • 企业商品报废如何处置
  • 单位订购价格
  • 装修公司让客户承担税费是否合理
  • 工会经费计提按照应发工资还是实发工资
  • 计提工会经费的工资总额包括五险一金吗
  • 房地产企业增值税计算
  • sql 清除日志
  • solaris 安装
  • macbookpro怎么提升性能
  • centos安装插件
  • 微信小程序实现微信支付
  • eclipse awt
  • 富文本编辑器模板
  • js获取checkbox选中的元素
  • android 动效
  • unity 3d代码
  • android toast位置
  • Tasharen Fog of War v1.0战争迷雾插件的使用(含Unity5.0Bug解决)
  • jquery的过滤器用于指定什么东西
  • javascript程序设计教程
  • android简单app实例
  • 税务局约谈记录
  • 消费税税收优惠的纳税筹划
  • 航空煤油消费税征收环节
  • 铁路检察院和普检哪个好
  • 小规模纳税人30万免税政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设