用的瓷砖是这个样子的,存放于Tile页面(tileWidth*tileHeight)中,定义常量 
tileWidth=64;tileHeight=32; 
绘制在画布上,定义常量 
canvasWidth=1024;canvasHeight=768; 
首先绘制一个锯齿型的地图,存放于Tile页面(tileWidth*tileHeight)中 
观察之,偶数行需要有1/2*tileWidth的缩进,奇数行不需要;同样,偶数行还需要有1/2*tileHeight的上升。 
int i,j; 
int w,h; 
for(j=0;j<12;j++) 
for(i=0;i<12;i++) 
w=i*tileWidth+(j&1)*tileWidth/2; 
h=j*tileHeight/2; 
lpDDSBack->BltFast(w,h,lpDDSTile,NULL,DDBLTFAST_SRCCOLORKEY|DDBLTFAST_WAIT); 
}
i,j作为列、行标 (地图行列坐标)
w,h作为Back页面(canvasWidth*tileHeight)的绝对位置  (画布 x,y 坐标)
(j&1)---> 用来计算, j 是奇数还是偶数, (奇数&1) == 1, (偶数&1) == 0
再试试钻石型地图,我比较喜欢这个类型,就是DIABLO用的地图。 
需要设置一些辅助变量,因为绘图都是从画布的中间开始,所以确定midW,midH 
int i,j; 
int midW,midH,maxW,maxH,temp; 
midW=canvasWidth/2; 
maxW=midW/tileWidth; 
midH=canvasHeight/2; 
maxH=midH/tileHeight; 
for(j=0;j<=2*maxH;j++) 
if(j<=maxW) 
for(i=0;i<=j;i++) 
w=midW-(j+1)*tileWidth/2+i*tileWidth; 
h=j*tileHeight/2; 
lpDDSBack->BltFast(20+w,100+h,lpDDSTile,NULL,DDBLTFAST_SRCCOLORKEY|DDBLTFAST_WAIT); 
else 
temp=2*maxW-j; 
for(i=0;i<=temp;i++) 
w=midW-(temp+1)*tileWidth/2+i*tileWidth; 
h=j*tileHeight/2; 
lpDDSBack->BltFast(20+w,100+h,lpDDSTile,NULL,DDBLTFAST_SRCCOLORKEY|DDBLTFAST_WAIT); 
}

45度角地图--地图绘制相关推荐

  1. 45度角Tile地图通过具体位置获得地图的行列数详解

    //45度角地图通过具体位置获得地图的行列数 CCPoint TileMapMove::convertto2d(float x,float y) { CCTMXTiledMap *tileMap=(C ...

  2. 45 度角地图-----斜45度角地图拼接

    45 度角地图, 可以分为 Staggered, slid 和 Diamond 三种类型 先看看地图元素: 可以看出来是个扁的菱形.这个地图元素的大小是64X32,你可以随意决定元素长宽,在设计程序时 ...

  3. 45度角地图坐标计算 和 层级计算

    //2个方块x的距离 xdis = 38 //2个方块y的距离 ydis = -19 //传入 XY 下标 获取坐标   45度角地图 getPositonByXY(_x :number, _y :  ...

  4. Java中2.5D游戏(斜45度角)的设计与实现(1)

    通常的概念中,2D也就是所谓的二维,也就是平面图形--即由X与Y坐标构成的图形,其内容由水平的X轴向与垂直的Y轴描绘确定,也就是由长和高的形成所谓的二维平面. 而所谓3D,也称之为三维.其图形内容除了 ...

  5. 可视化:在窗口中显示一个球,该球以与水平成45度夹角作直线运动,当遇到边界时,反弹回来,仍与水平成45度角继续运动。

    在窗口中显示一个球,该球以与水平成45度夹角作直线运动,当遇到边界时,反弹回来,仍与水平成45度角继续运动. #include<windows.h> #include<stdlib. ...

  6. Cocos Creator 3.2 中实现2D地图3D人物45度角RPG游戏效果笔记(摄像机设置方案)

    2D地图摄像机 创建一个平面几何体(plane.mesh),设置地图纹理材质 创建一个正交摄像机,视口朝向地图俯视 设置地图Layer类型为map,设置摄像机Visibility为只可见map 编辑器 ...

  7. 45度角地图坐标计算

    已知图片上的一个触摸点,怎么求其落在地图的哪个瓦块上? 已知: 瓦块尺寸64*32pt, 瓦块数20*20, 地图尺寸1280*640pt如图, 图片的原点是o1 地图原点是o2 向量: o1p, o ...

  8. Cocos2d-JS tiledMap 45度角地图坐标计算

    直接进入主题,公式如下 this.cellXCount = tmxMap.getMapSize().width; this.cellYCount = tmxMap.getMapSize().heigh ...

  9. Cocos Creator 3.2 中实现2D地图3D人物45度角RPG游戏完整效果

    接着之前摄像机的设置实现了2.5D游戏的视觉效果,考虑到未来用到商业化游戏中,又实现了一些功能满足角色可在自定义地图上自由行走与地图切换. 2D 正交摄像机只显示地图 2D AStar地图编辑 2D ...

最新文章

  1. 理解JavaScript的运行
  2. SAP CRM IBASE read header debug
  3. Host key verification failed. fatal: Could not read from remote repository.Please make sure you have
  4. Java JDBC篇2——JDBC增删查改
  5. Java中的SPI(Service Provider Interface介绍及示例
  6. zookeeper学习02 使用
  7. 关于PhpDE zend ide破解方式
  8. apache lucene介绍
  9. 如何安装thinkphp
  10. IntelliJ IDEA 记学习笔《Patch 创建补丁》
  11. 怎么一台手机多人签到_人脸识别来啦!志愿汇APP最新改版!支持一个手机多个账号同时签到签退!...
  12. EFFECTIVE C++ (万字详解)(一)
  13. [转载]一位也许是真正的hack说的话
  14. P3P求解相机姿态原理介绍
  15. Enter的使用计算机,Win7系统下键盘Enter回车键五大功能介绍
  16. [C语言]输出100以内的所有素数(质数)
  17. 对于Linux内核tty设备的一点理解
  18. 综合隧道广播通信与调度系统应用于南昌市青山湖、滕王阁、洛阳路隧道
  19. bios设置自动开机
  20. msys2 mysql_MSYS2配置总结

热门文章

  1. tssd加载lisp_求助帖:为什么我找到的这个LISP加载完不管用呢....
  2. 用Windows自带画图软件吸取色值
  3. 人脸识别项目整合操作步骤
  4. 手写8个常用的自定义hooks(推荐阅读)
  5. 《摔跤吧,爸爸》我们永不言弃
  6. 玩转swift字符串——Advanced
  7. CNC加工中心几种分中方法
  8. 关系数据理论-数据库习题
  9. windows下oracle10的日志,在Windows上安装Oracle10gR2
  10. linux监控cpu进程,Linux性能监控之CPU篇详解