游戏开发论坛

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

求助:大量图片动画如何处理?

[复制链接]

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2005-9-17 19:57:00 | 显示全部楼层 |阅读模式
众位高手,我现在在做一个仿CG(魔力宝贝)的单机版游戏
目前因为图片问题,实在做不下去了,问题如下:
魔力的图片全部是8b的RTL压缩存储,显示的时候要
首先由图片号读取对应的压缩数据,再解压,在通过查调色板
进行8b到32b的ARGB变换,最后进行显示

地图处理:
地图都是用64* 48的块拼接成的,一屏要100块地面
再加几十块地面上的固定物品组成,最后加上占地面积不等的
建筑物(建筑物是整体存放,一个建筑可能有几十块大小),
这样每次刷新就需要重复读图解图复制,导致效率很低。如果将
一屏要用到的图素都取出,判断何时释放某一种图素又要耗时间
图素一共有2万块左右。

人物动画处理:
人物一共20余种,每种4色,每色8种兵器,每种兵器20个动作
每个动作8个方向,每个方向的每个动作平均6祯,每祯都是一个
独立的图片,需要解压等等操作。
而每屏幕最多时有100+个人物(人物、宠物略同,且可以重叠站位)
少说点算60个人物(人物颜色、兵器、方向不同图都不一样啊)
这样要是把用到的人物的图片都读取,数量庞大(魔力近1.5G的图片
容量,可见一斑),但是每一祯重新读取刷新,由于需要读硬盘操作
和解压操作,慢的。。。。。

其实两个问题核心是一样的,就是大量图片动画应该如何处理才是
请各位高手帮忙解答,分数不够继续加
QQ: 65667466
Mail: vea_zhang@126.com

谢谢!
CSDN帖子地址
http://community.csdn.net/Expert/topic/4277/4277124.xml?temp=.5812952

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-9-17 20:24:00 | 显示全部楼层

Re:求助:大量图片动画如何处理?

www.pp28.com.ru

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2005-9-17 20:39:00 | 显示全部楼层

Re: Re:求助:大量图片动画如何处理?

hdm2968: Re:求助:大量图片动画如何处理?

www.pp28.com.ru


那个游戏用的资源量很小
我需要的那个。。。
大概是这个容量的N百(N〉3)吧。。。。

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2005-9-17 20:43:00 | 显示全部楼层

Re: Re: Re:求助:大量图片动画如何处理?

vea_zhang: Re: Re:求助:大量图片动画如何处理?



那个游戏用的资源量很小
我需要的那个。。。
大概是这个容量的N百(N〉3)吧。。。。

忘了说明
容量大小是说
同一屏要显示的东西多
因为我那个要考虑一屏上百人物的情况
而那个纯单机,就不需要考虑了
可以自行控制人物数量的:)

44

主题

156

帖子

162

积分

注册会员

Rank: 2

积分
162
发表于 2005-9-19 10:19:00 | 显示全部楼层

Re:求助:大量图片动画如何处理?

我觉得。。其实是你觉得一次次去读取硬盘数据比较慢。
有没有想过,一次性把压缩文件读入内存,不解压方式的存在你的内存中,然后再用的时候再去解压这块内存中的相应区块,这样是否就能快很多!!

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-9-19 10:21:00 | 显示全部楼层

Re:求助:大量图片动画如何处理?

我的意见是,能够组合的就组合,比如人物和兵器;能够通过程序变色就通过程序进行实时变色,而不要每种颜色做一个图片;不要重复新建Surface或者纹理,比如100个人物如果属于同一个角色,其实只需要一套Surface,然后重复绘制到不同地方就可以了。

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2005-9-19 10:53:00 | 显示全部楼层

Re:求助:大量图片动画如何处理?

关注中。。。。。。

44

主题

156

帖子

162

积分

注册会员

Rank: 2

积分
162
发表于 2005-9-19 11:18:00 | 显示全部楼层

Re:求助:大量图片动画如何处理?

六楼的,方法,很像OpenGL解决汉字的问题,建立一个很大的内存Surface,然后再去绘制相关的区域,但这样是否也会再用很大的内存。而且会像楼主前面估算的那样,出现一个非常非常的Surface。
我觉得还是多种方式,结合起来使用,对于自己的图片,采用预先建立好Surface方式解决,对于不是经常变换的资源,预先读取入内存。对于非常少用的资源,直接就不读取,放在硬盘上。当然上面的解决方式,,有些复杂了,前期预算算法也需要有些优化才好。
简单的就是全都进来,然后建立自己图像的Surface,这样也许快些!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 22:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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