当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

2d游戏斜视角地图的实现[VC/C++编程]

赞助商链接



  本文“2d游戏斜视角地图的实现[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

阐明:

1、本程序是一个斜视角地图的滚屏演示.本程序在实现的时刻并没有考虑屏幕渲染效率和内存空间的节俭问题.所以地图绘制函数并没有对不可视的图块部份举行解除.本程序的实现完好采取了win32汇编语言,因此采取gdi接口也能得到较好的帧速.

2、本程序反映了2d游戏地图的掌握思绪.即,核心问题是几个坐标变更问题,办理了坐标变更便可以了.

1、保存地图的一维数据索引.需求把这个一维数组索引改变成地图坐标,即(列号,行号).完成这一步今后,画图程序才能遍历整个一维数组,就象遍历

一个二维的地图块数组一样.即通过数组索引肯定它是在地图上的坐标.

2、地图坐标----图块列号、行号.地图坐标改变成屏幕贴图坐标.因为地图坐标是(列号、行号),所以必必要通过地图坐标求解出地图块左上角的像素坐标,即贴图坐标.

3、举行视变更.即,地图很大的时刻,把视口举行在地图上举行平移便可以实现地图的转动,看到差别的部份.所以,一旦视口的左上角在地图上的绝对坐标肯定下来,那么一个地图块在视口内部的相对坐标------终究的窗口客户区贴图坐标便可以求出.

4、经过上面几步变更,一个地图块就真正的可以被绘制到窗口里面.

3、帧速掌握:

a、用变量timeOld记录上次计算帧速完毕的时间.

b、变量timeNew记录当前时间.

c、用变量frameCount记录从timeOld到timeNew的隔断里一共播放的帧数.

d、每次获得当前时间timeNew今后,求自从

上次计算帧速完毕到目前一共有多少时间(ms):timeNew - timeOld

当这个时间隔断大于1秒,就举行一次帧速计算,并且令timeOld = timeNew,frameCount也归零,预备从目前重新记录帧播放,以备在下一秒举行计算.

e、用timeCur举行时间跟踪,以便帧速掌握.

timeCur记录上次播放一帧完毕的时间.timeNew - timeCur表示自从上次播放一帧到目前经过了多少时间.

所以假如每次当 timeNew - timeCur > 10的时刻才举行一帧的播放,然后令timeCur = timeNew,以便举行下一帧播放时间隔断的掌握.这样我们便可以掌握在每个10ms内最多播放一帧,即对帧速举行了掌握.


  以上是“2d游戏斜视角地图的实现[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 2d游戏斜视角地图的实现
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .