我在这里发了几次这个问题的贴子``但是还是没能解决``主要是我的问题``没能理解各位的话``我把问题说一吓``我想做个RPG游戏``但是不会做地图编辑器`。。不知哪位朋友可以教一吓`我自己的想法是``把几张小的图片合成一张图片(这里不会)``再保存,然后就做成一张地图了``我还听说``地图编辑器还有一个功能``就是对每个地图小块赋个坐标值``里也不会``
问题有二个:
1.不会把几个小图片合成一张图片
2.不会对每个地图小块赋坐标值

解决方案 »

  1.   

    1.不会把几个小图片合成一张图片 
    用paintpicture 就可以把图片画到一起了2.不会对每个地图小块赋坐标值
    这个肯定要记录的,用来告诉paintpicture往什么地方画
      

  2.   

    你可以放大一个图片,如:2800 X 2048
    然后用API把屏幕做成600 X 480 后用MOVE函数移动窗体。
    Me.Move -200,-200
    你看到的就是图片的一部分了。放大用:StretchBlt
    屏幕大小用:SystemParametersInfo 
      

  3.   

    Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long 
    说明 
    将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容。这个函数会在设备场景中定义一个目标矩形,并在位图中定义一个源图象。源矩形会根据需要进行伸缩,以便与目标矩形的大小相符 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hdc Long,目标设备场景 
    x,y Long,目标矩形左上角的x,y坐标,以逻辑坐标表示 
    nWidth,nHeight Long,目标矩形的宽度和高度,以逻辑坐标表示 
    hSrcDC Long,源设备场景。如光栅运算未指定一个源,则这个参数应为零 
    xSrc,ySrc Long,用源DC的逻辑坐标表示的源矩形左上角位置 
    nSrcWidth,nSrcHeight Long,分别指定用逻辑单位(以源DC为基础)传输的一幅图象的宽度和高度。如其中有一个参数的符号(指正负号)与对应的目标参数不符,位图就会在对应的轴上作镜像转换处理 
    dwRop Long,传输过程中进行的光栅运算。如刷子属于光栅运算的一部分,就使用选入目标DC的刷子 
    注解 
    可用GetDeviceCaps函数判断特定的设备场景是否支持此函数
    不可选择对源位图进行剪切或旋转处理,源位图也不能是一个图元文件设备场景
     
      

  4.   

    VB声明 
    Declare Function SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long)
    Declare Function SystemParametersInfoByVal& Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) 
    说明 
    允许获取和设置数量众多的windows系统参数 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    uAction Long,指定要设置的参数。参考uAction常数表 
    uParam Long,参考uAction常数表 
    lpvParam Any,按引用调用的Integer、Long和数据结构。对于String数据,请用SystemParametersInfoByval函数。具体用法参考uAction常数表 
    fuWinIni Long,取决于不同的参数及操作系统,随同这个函数设置的用户配置参数保存在win.ini或注册表里,或同时保存在这两个地方。这个参数规定了在设置系统参数的时候,是否应更新用户设置参数。可以是零(禁止更新),或下述任何一个常数: 
    SPIF_UPDATEINIFILE 更新win.ini和(或)注册表中的用户配置文件 
    SPIF_SENDWININICHANGE 倘若也设置了SPIF_UPDATEINIFILE,将一条WM_WININICHANGE消息发给所有应用程序。否则没有作用。这调消息告诉应用程序已经改变了用户配置设置 
    注解 
    在调用这个函数之前,特别要注意将lpvParam参数定义成正确的数据类型 
      

  5.   

    啊```谢谢各位的关注``有点点明白``不过还是有点模糊``
    paintpicture这个我也知道``但是不知道怎样写才能合成图片``我把这个函数最后面那个参数用了所有允许的参数去试``都是不行```我再把问题问得直接一点``就是怎样才能把一个PictureBox画分成N个小格``我看过别人的地图编辑器``他们是在一个PictureBox里合成图片的```只要点了需要的图片``再放到pictureBox中的小格去``然后那张图片就在那个小格里``最后把整张图片合成后``在相应的位置里``就是那张图片``我想问的是:
    1.paintpicture这个函数``怎样写法才能合成一张图片?
    2.怎样才能把一个PictureBox划分成N个小格``存放小图片块`以达到把N个小图片块合成一张图``
      

  6.   

    1.不能使用PaintPicture或者StretchBlt,这样无法保证速度,应该使用BitBlt(使用GDI绘图的情况下)2.对于不必要的区域不需要绘制。3.关于坐标值,自己建立一个坐标系,复制上去就OK,翻阅BitBlt的声明便知。4.文件保存方面,需要保存地图的所有属性,其实怎么说,也很简单,可以这样设计:1).开头是地图大小和物品种类以及与之对于的bmp文件名称2).属性部分,包含所有物品的基础属性,比如能够加多少FP等,怪物有多少FP等3).地图数据部分,用1~255代表所有的物品种类,直接写文件,类似灰度图像文件4).扩充部分,比如某些物品或者怪物有损坏,在这一部分保存数据其实以上的思路也是开发RPG游戏的基本思路。
      

  7.   

    PictureBox画分成N个小格``
    ----------------------
    这个用picture.line就可以了啊
    只要点了需要的图片``再放到pictureBox中的小格去``然后那张图片就在那个小格里
    --------------
    这个把“需要的图片”paintpicture到“那个小格里”
    这些“需要的图片”可以先用loadpicture装到其它pictureBox中,需要的时候可以全部或者部分paintpicture到“那个小格里”,你可以看看paintpicture的几个参数