问大家一个关于使用directx开发2d游戏的问题,
假如游戏中人物、npc、各种特效和怪使用的素材长宽都是512*512 32位的图片,
图片512*512的原因是
人物素材合成的时候不需要考虑位置 ,共用一个屏幕坐标就可以了,例如 头放到100 ,100那么身体也是100,100 武器也是100,100
刚才测试下 如果纹理是128*128 内存上变化是很大 ,但是对于加载纹理的速度还是有些慢 一个仍然还是要5毫秒左右
人物包含头发、身体、和武器, 8方向行走是 64/8帧,攻击128/8帧,站立48/8帧,如果把一个人物所有的纹理都预先加载进来需要使用的内存大概是 64MB+128MB+48MB=240MB
如果不是预先加载进来而是使用哪个创建那个纹理,当前帧使用不到都清理掉那么卡帧很严重
我这边测试平均创建一个纹理如果直接使用A8R8G8B8大概耗时8毫秒左右,如果使用 DXT压缩会更慢,那么就算是游戏当前视图只有这一个人物才勉强50帧,这还没算地图、建筑物、其他的不同的人物、NPC、坐骑、技能特效和各种怪物等
这几天玩过几款mmo游戏,发现内存都是使用大概150-500MB ,帧数50左右,他们是怎么做到的??
在这里问问大家一般的2d游戏,对于纹理的加载和内存使用都是怎么处理的??
谢谢大家!