问题标签 [allegro5]
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.
c++ - Boost::ASIO 无法从服务器写回客户端
我有几个关于 Boost ASIO 的问题。
我遇到了一个问题,我的客户端可以连接到服务器并异步发送数据,但无法收到任何回复。async_write 回调得到错误:“提供的文件句柄无效”。我觉得这很奇怪,有几个原因:
- 当客户端最初连接时,我检查服务器上的 socket.isOpen(),它返回 true。
- 客户端仍然可以发送数据的事实使我认为这是服务器端问题或防火墙问题(我觉得很奇怪,因为服务器和客户端都在同一台计算机上(我使用“localhost”连接现在)。
更多信息...
TCP 套接字。
我正在并排使用 Boost 和 Allegro,并且正在使用 Boost 和 Allegro 线程。我的 io_service 像这样(服务器和客户端)在 Boost 线程中运行:
这在我创建套接字之前就被调用了。
Allegro 线程保存 Allegro 事件循环,没有什么特别之处。
我不想发布源代码,它非常庞大且复杂,我宁愿不尝试将其简化为基本案例。如果有必要,我可以。
我的套接字由一个类包装,在该类中创建和传递共享指针而不是常规指针(不确定这是否重要,我是 Boost 新手)。
感谢您在确定我无法回信给已连接的客户时提供的任何帮助。
尼尔
编辑:请求的代码段:
async_read/write(服务器)和回调函数:
xcode - 使用第三方框架分发 mac 应用程序 (Xcode 4)
在过去的两天里,我做了很多研究,仅在这个网站上,我就必须阅读至少 20 个成功回答的问题。没有一个解决方案似乎对我有用。我在我的应用程序中使用了五个框架,并且在我的计算机上运行它没有问题。当我尝试在另一台计算机上运行应用程序时,加载库时出现错误。
我已经完成了这些步骤:
- 我有一个复制文件构建阶段,将框架复制到应用程序包中
- 我使用 install_name_tool 将安装路径更改为 @executable_path/../Frameworks
- 我已将 @executable_path/../Frameworks 设置为运行路径搜索路径
- 框架链接到我的程序
看起来 dyld 成功加载了第一个框架(Allegro-5.0),但在尝试加载第二个框架(AllegroMain-5.0)时认为它没有成功
附加信息:
- 当前运行 OSX 10.7.5
- Xcode 4.6 版
我的应用程序包的内容文件夹如下所示: Contents Screenshot
我的链接二进制文件与库和复制文件构建阶段: Xcode screenshot
我不确定我对错误原因的看法是正确的。我已经在 allegro.cc 寻求帮助,但基本上被告知他们无法帮助我解决特定于框架的问题。我真的很感激任何帮助解决这个问题!
编辑
我不确定这是否重要,但我想了更多,我的标题搜索路径可能有问题。为了让应用程序运行,我必须为每个框架创建一个新的标头搜索路径。我目前设置了这五个单独的标题搜索路径:
我不确定运行路径搜索路径究竟是如何工作的;它会允许代码找到我的标题吗?错误消息似乎与此问题无关,但这是我想到的另一个想法。
更新 4/14
我所做的事情搞砸了,因为我什至在我的电脑上也开始出现奇怪的行为。我重新安装了框架,但出现了一个新错误。
我的问题现在更笼统了:如果我将 libfreetype 与我的应用程序捆绑在一起,我如何告诉框架在哪里可以找到它?
c++ - Visual C++ 和 Allegro5:无法从头文件中识别抽象类中的对象
我是 allegro 的初学者,对 C++ 不太熟悉,但我了解这门语言,所以我想编写一个国际象棋游戏。但是因为我想在这个游戏中使用图像,所以我研究了 Allegro 5 对其进行编程。我想出了一个(当然不完整)头文件来初始化游戏中的每个棋子:
片断.h
其他一切都将在主类 Chess.cpp 中处理
在添加 setupBoard() 函数和两个 Piece 对象(blackPieces 和 whitePieces)之前,我的程序会运行,它会显示一个漂亮的“棋盘”,它基本上是使用 allegro 的原始库绘制的 64 个正方形,所以我想我已经正确安装了库和驱动程序。然而,我得到的错误超出了我的能力范围:
首先setupBoard是一个void,只是为了修改其他变量来组织代码。然而 Intellisense 给了我一个错误:
this declaration has no storage class or type specifier
我没有收到错误
#include "Piece.h"
,但是在声明数组 blackPieces 和 whitePieces 时,我得到了identifier "Piece" is undefined
在 Chess.cpp 底部的 setupBoard 函数中,我读取了 char 数组 cb,它来自 chessboard,其中包含用于将棋子放置在棋盘中的特定字符。并且根据哪个字符,一个 Piece 对象被动态分配到其各自的 Piece 数组中,如下所示:
bp[barrindex] = new Piece(x, y, true, 'b', "images/br.png");
然后控制板的 x 和 y 的整数相应地递增以将它们绘制在不同的位置。但是,虽然除了 之外似乎没有错误new Piece(
,我猜这是因为错误 2,但我收到了这个错误:
我确定我一定是分配错误,但我不知道是怎么回事,我从来没有遇到过这种错误。现在,我总是可以尝试用 Java 或 C# 做一个国际象棋游戏,但我想用 C++ 制作某种游戏(我认为制作 AI 的逻辑与语言知识无关)。请,如果有人知道如何解决这些错误,我将非常感谢!
c++ - C++ 粒子系统 Allegro 5
我目前正在制作一个粒子系统,一个基本的,也使用 Allegro 5 库。
这是我想出的:
是的,代码很糟糕。似乎我对 C++ 背后的理论了解比实际实现它更多。但我猜我正在学习。
问题:
有人说我不能多次调用“新”和“删除”,因为这非常糟糕。
粒子的创建受到计时器的限制——我不能/不知道如何制作它,所以我可以控制粒子创建的速度。
我不希望有人为我创造,如果我可以阅读一些东西来帮助我理解或有人发布一些代码来学习/让我思考,那将很有用?
c++ - MSVS:C++:Allegro 5 模板:Agui GUI API:如何设置包括?
我使用 Allegro 5 库在 Microsoft Visual Studio 中使用 C++ 处理图形。我发现了这个很棒的 Allegro 5 模板,名为“Agui GUI API”,但一直在努力理解如何设置它。在设置编码环境时,我是一个极端的初学者。以下内容对我有很大帮助。
建议将 Agui 文件保存在哪里以及是否为每个新项目复制它们?
如何将它们包含在 MSVS 中,以便一切都可以从 agui_example.cpp 编译和运行?
linker-errors - allegro 5 链接器错误
有人可以帮我处理 MSVC2010 中的 Allegro 5.0.8 静态链接吗?allegro-5.0.8-monolith-static-mt.lib;-> 这对我不起作用。我可以从 IDE 运行游戏,但无法发布解决方案。我在我的程序顶部有这个:
这是在我的构建输出中弹出的:
我还必须包括什么?好像链接 allegro_ttf.h 有问题。是否有某个地方列出了我的包含链接的内容?
PS 如果其他人在 MSVC10 中构建 allegro 解决方案时遇到问题,这就是解决我大部分问题的方法(除了这个):https ://www.allegro.cc/forums/thread/611289
c++ - 制作某种菜单时的问题
我把这个东西作为我程序的一部分。语言是 C++,带有 Allegro 库。我想让它做下一个:单击时,两个矩形之一周围会出现一个边框。
它发生,但只有一次,在开始时。之后,当我将鼠标移开时,边框一直消失。此外,在我单击的任何地方,边框都会出现在正确的位置。
mouseX 和 mouseY 完美运行,即使数字相同。但是该动作仅在我想要的方式上发生一次。单击时如何将其扩展到每种情况?
c++ - C++ 奇怪的错误。编译失败
一段时间以来,我一直在使用 allegro 5 库来开发 C++ 游戏。今天我遇到了一些奇怪的错误:
我有一堂课叫level
. 我有一个名为levelhandler
. 这是它的外观:
当我尝试编译时,它给了我一些奇怪的错误,例如:
我记得它以前可以编译,我确实使用currentlevel->Player.X
了很多次,但现在我有很多,它给出了如下错误:
从评论粘贴的标题
ide - 为什么 CodeBlocks 不让我编译这个示例 Allegro 程序?
基本上我在让 Allegro 绑定(D + Allegro)与 Code:Blocks 一起工作时遇到问题。我认为这是一个设置问题,但我不确定在哪里。所以这就是我到目前为止所做的......
这是我不断收到的错误。我正在使用 Windows 7、DAllegro5、Code:Blocks 和 D 语言 DMD 编译器。
代码:块工作。编译一个常规的 D 项目是可行的。我已将 DAllegro5 文件添加到项目中,但我不断收到此错误。我还应该怎么做才能让这个错误消失?
您在这里有两个选择。您可以将所有模块复制到您的项目中,然后像这样使用它们。或者,为方便起见,您可以将绑定编译到静态库中:
我做了加粗的。只是将实际的 .d 文件复制到我的项目中。
cmake - 在 ubuntu 12.04 上构建 allegro5
我正在尝试在 ubuntu 12.04 上安装 allegro5,我正在关注本教程:http : //wiki.allegro.cc/index.php?title=Ubuntu_and_Allegro_5 起初我找不到 allegro5 的安装位置,我跑了找到,结果发现 allegro5 在 /usr/local/allegro5/ 中。所以我开始执行“构建快板”。
这就是问题发生的地方,“cmake ..”给了我这个错误:
CMake 错误:源目录“/usr/local/include/allegro5”似乎不包含 CMakeLists.txt。指定 --help 使用,或按 CMake GUI 上的帮助按钮。