游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4151|回复: 6

小地图如何制作?

[复制链接]

25

主题

87

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2004-8-15 19:02:00 | 显示全部楼层 |阅读模式

请问一下,程序中的小地图是怎么做的,代码一点都看不懂 啊
能详细将一下吗?

42

主题

334

帖子

344

积分

中级会员

Rank: 3Rank: 3

积分
344
发表于 2004-8-16 08:31:00 | 显示全部楼层

Re:小地图如何制作?

为了方便使用,我们将生成小地图编成game类中的函数。
//**************************************************
//getsmap(CString dir,CString cc)//生成小地图
// A.调地面块到地图设备场景BkDC0
// B.全地图缩成小地图// C.全地图景物微缩
//**************************************************
void game::getsmap(CString dir,CString cc)//生成小地图
{//A.调地面块到地图设备场景BkDC0       
  if(!getpic(dir+cc,1)) return ;//调地面块
    HBITMAP OldMak=(HBITMAP)SelectObject(MemDC,bitmap);
        BitBlt(BkDC0,0,0,w,h,MemDC,0,0,SRCCOPY);
        SelectObject(MemDC, OldMak);
//B.全地图缩成小地图
   int i,j;
   for(i=0;i<mapw;i=i+mapw/SCRP)
    for(j=0;j<maph;j=j+maph/SCRP)
      TransparentBlt2 (SMAP,i,j,mapw/SCRP,maph/SCRP,
                       BkDC0,0,0,WIDTH,HEIGHT, RGB(0,0,0));
//C.全地图景物微缩
   int wi=WIDTH*SCRP,he=HEIGHT*SCRP;
   for(int q=0;q<rs;q++)
     if(man[q].lb==2)        //是静物
        {cc.Format("%s/树石/b%04d.bmp",dir,man[q].p);//取图片名
         if(getpic(cc,1)==FALSE) return;//读取位图文件cc
         int x=(man[q].xix-w/4)*mapw;        //x当前位置
         int y=(man[q].xiy-h)*maph;                //y当前位置
         HBITMAP OldMak=(HBITMAP)SelectObject(MemDC, bitmap);
         TransparentBlt2(SMAP,x/wi,y/he,(w*mapw)/wi,(h*maph)/he,
                         MemDC,0,0,w,h, RGB(0,0,0));
         SelectObject(MemDC, OldMak);
        }
}

0

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2004-8-16 12:46:00 | 显示全部楼层

Re:小地图如何制作?

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2004-8-16 17:50:00 | 显示全部楼层

Re:小地图如何制作?

小地图是怎么和在IDC_STATIC1上显示的,谢谢回答

42

主题

334

帖子

344

积分

中级会员

Rank: 3Rank: 3

积分
344
发表于 2004-8-17 08:34:00 | 显示全部楼层

小地图是怎么和在IDC_STATIC1上显示

    显示微缩地图很简单,只要在移动地图时,将微缩地图设备场景SMAP里的图形数据拷贝到屏幕上的对应位置就行了。
BitBlt(hdc,mapl,mapt,mapw,maph,SMAP,0,0,SRCCOPY);// 微缩地图刷新
这里hdc是屏幕设备场景。
mapl是微缩地图显示的左边位置,mapt是微缩地图显示的上边位置。

0

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2004-9-14 21:25:00 | 显示全部楼层

Re:小地图如何制作?

不知这样做效率如何?

42

主题

334

帖子

344

积分

中级会员

Rank: 3Rank: 3

积分
344
发表于 2004-9-15 08:40:00 | 显示全部楼层

Re:小地图如何制作?

影响效率的主要因素是移动显示图形的多少。这里生成小地图只用一次,而显示的图形量是很少的。你可以屏蔽小地图显示看看对显示速度有什么影响。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-18 16:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表