游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2275|回复: 7

一个游戏<英雄救美>的问题

[复制链接]

25

主题

87

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2004-8-28 03:18:00 | 显示全部楼层 |阅读模式

有个问题不太明白,请教大家一下。
为了让角色一直保持在屏幕的正中间,我们要往相反的方向重绘背景。游戏的做法是引入了一个相对坐标SX,SY,如下方式渲染:
for(int i=SY; i<SY+16 ; i++)
{
    for(int j=SX; j<SX+21 ; j++)
    {
        //画地面
           RECT rect={ 0, Map[ Scene ].Ground *32, 32, Map[  Scene ].Ground * 32 +32};
            Blt(lpDDSBackGround, DX+(j-SX)*32, DY+(i-SY)*32,  lpDDSMap1, rect, FALSE);
    }
}
但是这样就只能一格一格的移动背景。当地图格子较大时,就会感到不连续了。
现在我在做斜45度地图,用的是64 x 32大小的title,当移屏时就感觉到画面不连续了。
我用的做法是:引入 相对坐标 offx,offy.用下面的代码渲染。
for(int col=0;col<地图列数;col++)
{
   for(int row=0;row<地图行数;row++)
   {
        n=m_map[row][col].Id;
        if 地面
        {
          //贴图坐标
                  tx=col*64+(row%2)*32-32-offx;
          ty=row*16-offy;
        }
}
这样虽然能连贯的移屏,却每次都把数组扫描一遍,很不划算。
现在我不知道该如何做,请大家指教。

25

主题

87

帖子

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2004-8-28 04:00:00 | 显示全部楼层

Re:一个游戏<英雄救美>的问题


现在明白了,刚才看错了。^_^

10

主题

314

帖子

314

积分

中级会员

Rank: 3Rank: 3

积分
314
QQ
发表于 2004-8-28 14:47:00 | 显示全部楼层

Re:一个游戏<英雄救美>的问题

你到底什么意思啊。
我可不明白了啊。

不过你的那个方法到底行不行啊。
期待你的答复啊。
这对我很重要哦。
我的QQ:108442

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-8-30 00:34:00 | 显示全部楼层

Re:一个游戏<英雄救美>的问题

乱……

25

主题

87

帖子

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2004-8-31 23:26:00 | 显示全部楼层

Re:一个游戏<英雄救美>的问题

我以前都是用的我的那个方法,是可以实现滚屏的,只是方法很笨而已。

25

主题

304

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
发表于 2004-9-1 00:55:00 | 显示全部楼层

Re:一个游戏<英雄救美>的问题

一般都是缓冲一个地表表面,
只绘制屏幕内新增的TILE,老的TILE图象数据用块移动来移动到合适的位置.

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2004-9-1 18:43:00 | 显示全部楼层

Re:一个游戏<英雄救美>的问题

不太明白,是不是想让他连续移动啊?

25

主题

87

帖子

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2004-9-1 19:07:00 | 显示全部楼层

Re:一个游戏<英雄救美>的问题

就是就是,看来我的表达太差了,大家都没明白,呵呵。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-17 18:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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