问题标签 [allegro]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
137 浏览

c++ - 跟踪旧项目中的几个内存错误的软件?

我从 2 年前开始编写游戏。有时一些内存错误(即:一个函数返回垃圾而不是它应该返回的内容,或者只在 Linux 上发生的崩溃,而在 GDB 或 Windows 上永远不会发生)似乎是随机发生的。也就是说,我尝试修复它,几个月后,同样的错误再次困扰着我。

有一个软件(不是 Valgrind,我已经试过了......它没有找到错误)可以帮助我解决这个问题?或者解决这些错误的方法?我想永久修复它们。

0 投票
1 回答
3012 浏览

c++ - Allegro 4.2.1,去除 bmp 背景色

我一直在 allegro 4.2.1 中构建游戏,需要帮助删除特定颜色以使其不可见。背景颜色为 (255, 0, 255)。我去过以下网站,但它们对我帮助不大:

http://www.allegro.cc/forums/thread/599210 , http://www.cpp-home.com/tutorials/258_1.htm

如果有人能给我举个例子,我会很高兴。

0 投票
2 回答
323 浏览

c - 纹理管理/指针问题

我正在为我的一个小型项目开发纹理管理和动画解决方案。尽管该项目使用 Allegro 进行渲染和输入,但我的问题主要围绕 C 和内存管理。我想在这里发布它以获得对方法的想法和洞察力,因为我在指针方面很糟糕。

基本上我要做的是将我所有的纹理资源加载到一个中央管理器(textureManager)中——它本质上是一个包含 ALLEGRO_BITMAP 对象的结构数组。存储在 textureManager 中的纹理大多是完整的精灵表。

从那里,我有一个 anim(ation) 结构,其中包含特定于动画的信息(以及指向纹理管理器中相应纹理的指针)。

为了给你一个想法,下面是我设置和播放玩家“行走”动画的方法:

渲染动画当前帧只是对存储在 textureManager 中的 sprite 表的特定区域进行 blitting 的情况。

作为参考,这里是 anim.h 和 anim.c 的代码。我敢肯定,出于多种原因,我在这里所做的可能是一种糟糕的方法。我想听听他们的消息!我是否正在向任何陷阱敞开心扉?这会像我希望的那样工作吗?

动画.h

动画.c

0 投票
2 回答
1678 浏览

c - C/C++ Allegro 程序导致 Windows 7 切换到 Aero Basic

我只是在试用 allegro 库,这是我目前得到的代码:

它工作正常,但是当我运行它时,当程序的窗口打开时,Windows 7 将主题从 Aero 更改为 Aero basic。如果你不确定我的意思,会弹出这个(我从谷歌得到这个,这就是为什么它说 Vista 而不是 Windows 7):

http://www.suitedcowboys.com/wp-content/uploads/2007/01/010607_0906_HelloVistai28.png
(来源:suitcowboys.com

  1. 为什么?
  2. 我怎样才能确保不会发生这种情况?
0 投票
3 回答
1047 浏览

c++ - 将 int 转换为字符串以用于 allegro 函数

我正在尝试使用 allegro 运行以下代码。

textout_ex(屏幕、字体、numbComments 、100、100、绿色、黑色);

numbComments 是一个整数,这个函数的函数原型是

根据我的理解,我不能在第三位传递这个整数。

因此,我需要将整数转换为 char*s。

请帮忙?

当然,我不能更改实际的函数原型

0 投票
1 回答
1327 浏览

c++ - 使用他们的包在 Dev-C++ 中安装 Allegro

我正在尝试在 Dev-C++ 中安装 Allegro,而不是手动安装,我注意到新版本在可用的包中,这样会更容易。

这是在管理器中。

在这里,它显示自己包含头文件。

当我尝试运行最简单的 Allegro 程序时,它无法识别它

有人知道怎么修这个东西吗?或者更好的方法来做到这一点?谢谢。

0 投票
5 回答
550 浏览

c++ - C++:如何防止函数接受内联分配的指针?

无法弄清楚如何准确地表达问题,所以这里有一个例子:

给定这个函数原型:

我想防止这种用法:

而是需要一个先前创建的对象:

或者

谢谢。


编辑

这是一个明确的例子:

用户传入的任何图像都会被复制到对象的图像中。

如果我在复制后解除分配传入的图像并且图像在程序的其他地方使用,它将导致程序因访问冲突而崩溃。

如果他们在线分配存储而我没有释放它,则会发生内存泄漏。如果他们在运行程序的过程中多次调用 SetImage 方法,则问题会更加复杂。

关于使用替代库或 Allegro 库本身的评论将被忽略,我已经知道这很可怕。我别无选择。

0 投票
8 回答
29988 浏览

c++ - 在 C++ 中渲染矢量图形 (.svg)

我和一个朋友正在开发一个 2D 游戏,其中的图形将是 .svg 文件,我们将通过首先对它们进行光栅化或直接在表面上渲染它们来适当地缩放它们(在某些时候仍然需要光栅化)。

问题是,我整天都在寻找一个库,它可以让我获取一个 .svg 文件并最终让它在 allegro 中呈现。据我所知,这将涉及将光栅化为 allegro 可以读取的某种格式,然后 allegro 可以渲染“扁平化”图像。

那么,我可以使用哪些 C++ 库来获取 .SVG 文件并将其“展平”以便渲染它?该库显然也需要支持缩放,因此我可以缩放矢量图形然后对其进行光栅化。

我正在使用 Windows 和 Visual C++ Express 2010。

我试过 Cairo,但它只允许写入 .svg 文件,不允许读取 .svg 文件。我还研究了与 Cario 一起使用的 librsvg,但我在让它在 Windows 上正常工作时遇到了很多麻烦(因为它有很多 GNOME 依赖项)。如果您有任何指南可以让这些工作(在 Windows 上),那也很棒。

0 投票
2 回答
667 浏览

c++ - C/C++ Allegro 程序无法运行

不会加载我的图片我的默认错误消息“错误加载图片.bmp”每次都会弹出并且不会运行

0 投票
2 回答
6261 浏览

visual-c++ - 无法使用 Visual C++ 编译快板

我刚刚下载了快板库

我创建一个新的空项目,然后添加一个源文件

我添加这行代码:

我编译并得到以下错误:

c:\allegro\include\allegro5\internal\alconfig.h(28) : 致命错误 C1083: 无法打开包含文件: 'allegro5/platform/alplatf.h': 没有这样的文件或目录

所以我进入 alconfig.h 并更改:

至:

现在给了我这个错误:

c:\allegro\include\allegro5\platform\alplatf.h.cmake(2) : 致命错误 C1021: invalid preprocessor command 'cmakedefine'

所以我摆脱了它然后说的#include "../../allegro5/platform/alplatf.h.cmake"声明:

c:\allegro\include\allegro5\internal\alconfig.h(57) : 致命错误 C1189: #error : 不支持平台

我不知道从那里去,我正在运行 Windows,所以我真的很难过