c++ - 在 Allegro 中创建光标?

标签 c++ image collision-detection allegro allegro5

我正在编写一个基本游戏。

我想要一个具有实际正确轮廓的光标图像,用于碰撞检测。这不适合鼠标——我希望小光标在我的游戏中飞来飞去,而且我不希望它们的边界框是矩形。

但我对 Allegro 和图形编程还很陌生。我的第一个想法是使用 al_draw_polygon 创建一个类似的标准光标,但后来我意识到我完全不知道如何找出要提供给它的顶点。有更好的方法吗?另外,绘制多边形时计算顶点相对于彼此的坐标的标准方法是什么?您肯定不会每次都在纸上画出图表并计算出来吧?

我想到的另一种方法是加载鼠标的图像,但它会是矩形的。我该如何正确执行此操作?

注:C++。这是给定的数字,但以防万一。

最佳答案

您询问如何绘制光标以及如何进行碰撞检测。虽然相关,但这是两个不同的主题。

如果您刚刚开始,那么我建议为光标加载 32 位 RGBA PNG 文件。 Alpha channel 将允许您绘制非矩形图像。您还可以旋转和/或缩放图像。

那么你就必须担心碰撞检测。这确实与 Allegro 无关。您可以使用任何 2D 物理库,或者只是查找有关如何检查直线是否与三角形碰撞等的公式。最简单的方法是从近似对象重要区域周围的框开始。您以后随时可以构建更高级的碰撞检测。

关于c++ - 在 Allegro 中创建光标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540121/

相关文章:

javascript - 整个页面图库加载/调整大小技术

c++ - 使用注入(inject)的 DLL 从外部应用程序渲染 OpenGL 场景内部

c++ - 为什么 `using A::f` 没有按预期工作?

jquery - JCrop 如何通过将图像拖动到 div 后面来裁剪图像(如 facebook 封面)

collision-detection - 三角形到三角形的 3D 碰撞检测

swift - 如何创建与 Swift UIDynamics 绑定(bind)的圆形碰撞?

python - 如何在pygame中将 Sprite 分成更小的部分?

c++ - 少量项目的 HashMap

C++使用配置类从txt文件设置变量值

php - GD vs ImageMagick vs Gmagick for jpg?