如何在 allegro 5 中创建、加载和使用精灵表?

Posted

技术标签:

【中文标题】如何在 allegro 5 中创建、加载和使用精灵表?【英文标题】:How to create, load and use sprite sheets in allegro 5? 【发布时间】:2016-09-19 14:27:18 【问题描述】:

我现在熟悉快板了。但是现在快板学习引导我为我的角色动画学习精灵表。

这次我想要一些关于如何在 allegro 5 中创建、加载和使用精灵表的帮助。

我在 Windows PC 中使用 Dev c++。并且没有网络连接(我想我应该指定)。

【问题讨论】:

【参考方案1】:

创建精灵表只是在您选择的艺术程序中创建一个图像,划分为矩形区域。为了这个例子,假设你的 spritesheet 中的每个区域都是 32x32 像素。

要加载精灵表,只需使用al_load_bitmap 有一个例子here。

要绘制“精灵”,您可以使用al_draw_bitmap_region 并告诉它要绘制精灵表的哪个子部分。

假设我们的spritesheet 被划分为 32x32 像素的矩形,x, y 是您要绘制精灵的位置:

al_draw_bitmap_region(spritesheet, 0, 0, 32, 32, x, y) 将绘制“第一个精灵”(从工作表的最左上角开始),

al_draw_bitmap_region(spritesheet, 32, 0, 32, 32, x, y) 会将精灵绘制到第一个精灵的右侧,依此类推...

【讨论】:

好的,谢谢@rcorre 的建议。但是当我在我的程序中循环使用它时,每次使用它时动画都会变得越来越慢......现在该怎么办......?? 没有更多信息很难说。您可能想用最少的代码示例提出另一个问题来展示您的问题 您是否每次绘制动画时都加载位图?这是一个常见的初学者错误。您应该加载一次并将位图存储在指针中。

以上是关于如何在 allegro 5 中创建、加载和使用精灵表?的主要内容,如果未能解决你的问题,请参考以下文章

在 OpenGL ES 2.0 中创建精灵类

如何在 Sprite 工具包中创建方形 SKLabelNode

如何在颤动中创建加载更多列表视图

如何在 laravel 5.6 中创建自定义帮助文件?

如何在 Forge 中创建多模型加载器和查看器

如何创建“另存为”和“加载”对话框以在 javascript 中创建/加载 json 文件/数据?