我正在编写一个基本游戏。
我想要一个具有实际正确轮廓的光标图像,用于碰撞检测。这不适合鼠标——我希望小光标在我的游戏中飞来飞去,而且我不希望它们的边界框是矩形。
但我对 Allegro 和图形编程还很陌生。我的第一个想法是使用 al_draw_polygon 创建一个类似的标准光标,但后来我意识到我完全不知道如何找出要提供给它的顶点。有更好的方法吗?另外,绘制多边形时计算顶点相对于彼此的坐标的标准方法是什么?您肯定不会每次都在纸上画出图表并计算出来吧?
我想到的另一种方法是加载鼠标的图像,但它会是矩形的。我该如何正确执行此操作?
注:C++。这是给定的数字,但以防万一。
最佳答案
您询问如何绘制光标以及如何进行碰撞检测。虽然相关,但这是两个不同的主题。
如果您刚刚开始,那么我建议为光标加载 32 位 RGBA PNG 文件。 Alpha channel 将允许您绘制非矩形图像。您还可以旋转和/或缩放图像。
那么你就必须担心碰撞检测。这确实与 Allegro 无关。您可以使用任何 2D 物理库,或者只是查找有关如何检查直线是否与三角形碰撞等的公式。最简单的方法是从近似对象重要区域周围的框开始。您以后随时可以构建更高级的碰撞检测。
关于c++ - 在 Allegro 中创建光标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540121/