我在寻找建议,不仅仅是直接帮助。平台变形瓷砖引擎 - 关于如何处理长瓷砖的建议
我正在XNA的8位平台游戏中工作。我已经可能已经沉没了160个小时,而且我已经开始涉及我拥有的引擎问题。它基本上是XNA平台游戏演示的改编/修改版本。我的所有或大部分瓷砖都是32x32,但有些是64宽和32px高,就像桌子一样。有些32宽64高,就像植物一样。
我一次性将它们发送到gpu只有一个.png,类似于XNA教程的作者做瓷砖映射的方式。对于动画精灵,我使用角色不同帧的贴图。对于瓷砖地图数据,我读取的文本文件就像XNA教程。
我应该如何适应宽和高的瓷砖?我应该制作一个双层瓷砖系统(我认为我应该遵守保持简单的愚蠢规则)?
现在我正在使用透明瓷砖来扩展宽的瓷砖。
桌椅:
chair http://dl.dropbox.com/u/8446900/game_screen_desk.png
.....
...h.
..d".
#####
植物和椅子:
desk http://dl.dropbox.com/u/8446900/game_screen_plant.png
..p...h.
..,...,.
########
的椅子,是 'H', 'd' 是书桌, 'p'是植物,而','是用于透明背景瓷砖(没有互动与用户一起)。 '''用于用户可以站立的透明瓷砖(扩展桌面)。问题是,正如你所看到的,背景似乎有一个洞。
我应该制作一个实际的瓷砖地图并将所有东西合并成一个大的PNG?我可以采取的另一个选择是实际上将每个宽的或高的瓷砖切割成两个不同的瓷砖,亲们如何做到这一点?我不是在寻找一种快速而脏的修复方法,天平台游戏将运行
UPDATE:。审查的答案后,我发现,包装精灵成片状一个非常有用的工具
http://spritesheetpacker.codeplex.com/
更新:我新升级的瓷砖引擎速度更快,几乎同样简单。下面的建议很好。强力推荐。
哈哈,我是艺术家。这应该不成问题。你会如何推荐我将图形导入游戏?作为一个多个瓷砖或几个图像的大图像?我知道内存曾经是一个约束,但现在我想知道它是否值得。它可能会在Windows Phone上发布,因此性能是一个考虑因素。 – montag
我想我真正的问题是,将每个项目单独发送到XNA内容管道而不是拥有大量的spritesheet并从中切割出来,这会浪费多少cpu/ram?将每个物品单独运送到GPU还是从它上面切下一块大的纸张会更好? – montag
哦,确实是一张单独的spritesheet。只是不是内存将被浪费,每次你尝试和绑定不同的纹理 - 这是一个renderstate变化,这些都是昂贵的。 – Ani