游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 游戏之家

宣三国英雄传提高速度的办法

[复制链接]

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-9-5 12:15:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

他的意思是对的,GIF文件是小,但是在图像处理的时候是按照BMP格式来处理的,所以不论什么格式的图形文件,在实际显示处理的时候,占用空间的大小只取决于尺寸和位深。也就是说你调用BitBlt函数的时候,并不是说你800*600的图片使用了几十K的gif,BitBlt的时候就只处理几十K的内存,而是按照800*600*位深的内存来处理的

从这一点意义上来说,如果你压缩的越厉害,也就是空间占用越少,你在时间上花费的就越多,当然硬件解压缩除外,有了硬件解压缩我们可以不用去考虑,现在游戏中有材质压缩,利用的是硬件,这样在有限的显存下处理更精细的材质

因此什么样的图片运算图片最快?应该是32位BMP最快,如果你是64位操作系统,那么64位的BMP就是最快了(好像没有64位的BMP,呵呵)

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2005-9-5 12:19:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

晕,什么叫以颜色保存?是调色板加索引矩阵吧
加载70M左右的图像根本不会造成一般的游戏卡的,肯定是程序有问题。最好做个定时器都跟踪下各个模块,然后再做结论。我加载3D的高度图一次300多M也没见得卡..寒

1

主题

29

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2005-9-5 14:00:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

误会楼主了!真是对不起!

原来楼主讨论的,是关于美工作的图储存在硬盘上,占用空间问题。
楼主一口一个内存,原来说的都是硬盘呀。

图越小占用硬盘空间就越少这样的问题,还真是值得好好讨论一下。

另外看到楼主关于用MIDI替代MP3的办法,我试了一下,果真是提高了1/3。
后来经过认真实践,我还发现了更好的方法:
那就是,用喇叭发声来替代MP3,结果提高了200%。
不但节省了硬盘空间,而且还省去了载入文件的资源消耗,比MIDI还省。

比如说,从简谱1到7可以用以下执行代码
play"cdefg>ab"
希望能对楼主有用。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
 楼主| 发表于 2005-9-5 14:07:00 | 显示全部楼层

Re: Re:宣三国英雄传提高速度的办法

qwe123: Re:宣三国英雄传提高速度的办法

误会楼主了!真是对不起!

原来楼主讨论的,是关于美工作的图储存在硬盘上,占用空间问题。
楼主一口一...


那你去用喇叭做游戏发声吧!有病,
一看就是新注册的马甲,我也懒的揭穿你,可怜!
我用GIF做NPC的图游戏进入和读盘速度都有提高,
假如宣三国不用MP3,游戏速度肯定提高1/3。
你有没看我之前会回你的贴子是修改过的,
本来是骂你的,后来觉得不好删了,现在你是找挨骂。

别给脸不要脸, 叫站长封了你!!!

6

主题

47

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-9-5 14:21:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

void CResource::ReadBmpToSurface(const char *Filename,CDXSurface *in, BYTE memoryType)
{
        char *buffer;
        int i;

        for(i = 0; i < m_nFiles; i++)
        {
                if(strnicmp(Filename, m_pFE.name, 13) == 0) break;
        }

        long offset = m_pFE.offset;
        lseek(m_Infile, offset, SEEK_SET);

        int size = m_pFE[i+1].offset - offset;

        // Get space for the buffer
        buffer = new char[size];
        if(buffer == NULL) return;

        read(m_Infile, buffer, size);

        in->Create(g_Screen,size,buffer,memoryType);
        delete[] buffer;
}
void CResource::ReadGrpToSurface(const char *Filename, WORD Index, CDXSurface *in, BYTE memoryType)
{
        char *buffer;
        if(strnicmp(Filename, GrpFileName, 13) != 0)
        {
                int i;

                for(i = 0; i < m_nFiles; i++)
                {
                        if(strnicmp(Filename, m_pFE.name, 13) == 0) break;
                }

                long offset = m_pFE.offset;
                lseek(m_Infile, offset, SEEK_SET);

                int size = m_pFE[i+1].offset - offset;

                // Get space for the buffer
                buffer = new char[size];
                if(buffer == NULL) return;

                read(m_Infile, buffer, size);
                Grp.Close();
                Grp.OpenBuff((BYTE*)buffer, size);
                memcpy(GrpFileName, Filename, 13);
        }
        DWORD Size = 0;
        buffer = NULL;
        Grp.GetBmp(Index, (BYTE*&)buffer, Size);
        in->Create(g_Screen, Size, buffer, memoryType);
        delete[] buffer;
}
GRP是我自己定的格式.笨笨的方法

6

主题

47

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-9-5 14:24:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

写了一个真接从GIF到DX画面的.觉的GIF的LZW解压有点运算量高,自己定的GRP压缩格式文件大小是GIF 1.5倍,但运算少了很多

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-9-5 14:26:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

现在的I/O技术不比从前了,磁盘读取速度是相当快的,比如你一次性读入300M的文件进入内存,基本上也就几秒钟的事

1

主题

29

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2005-9-5 14:31:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

拿出站长来吓我,我好怕呀!

我也是个新手,你千万不要封我,我学程序才2个月,还有很多需要向你学习的。

以前我一直做美工的,做了4年还是被人家炒了,现在改学程序,你不要和我一般见识。
以后如果程序还做不了,就只好做网络管理了。

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-9-5 14:37:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

另外一个GIF确实是有版权问题的,微软已经在他的PictureBox对象中有说明的,现在DX9支持bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, 和.tga,唯独不支持gif

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
 楼主| 发表于 2005-9-5 14:38:00 | 显示全部楼层

Re: Re:宣三国英雄传提高速度的办法

qwe123: Re:宣三国英雄传提高速度的办法

拿出站长来吓我,我好怕呀!

我也是个新手,你千万不要封我,我学程序才2个月,还有很多需要向你学习的。...


游戏和美术不是我的职业!学多少年也是自己的爱好!
说你是马甲你还真来劲了,SB!!!
我做网管6年了,游戏设计不是我的工作!
SB!! 懒的理你,
要比就拿作品出来!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-28 03:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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