【问题标题】:Isometric Sprites等距精灵
【发布时间】:2015-11-21 01:33:04
【问题描述】:

这可能是一个愚蠢的问题,但我被卡住了,无法通过它。我正在制作一个等距游戏,并且我使用瓷砖构建了我的地图,我只是按照本教程构建地图,http://www.binpress.com/tutorial/creating-a-city-building-game-with-sfml/137。但现在我不知道如何添加角色精灵。我是否也必须使用图块添加这些精灵,或者我只是将精灵绘制到屏幕的位置。任何帮助将不胜感激。

【问题讨论】:

    标签: c++11 sfml isometric


    【解决方案1】:

    据我所知,只要按照“纹理和动画”指南,在绘制图块后将动画绘制到屏幕上即可。这不是一个复杂的引擎,因此您只需要将 2D 精灵绘制到屏幕上(3D 效果只是画​​家算法使其工作的技巧……本教程中没有 z 轴)

    【讨论】:

    • 是的,这就是我首先做的,但感觉不对,所以在浪费更多时间之前我会问。感谢您的回答。
    【解决方案2】:
    1. 深度按图块渲染顺序完成

      对象、玩家等也是如此...假设平面 XY 与地面平行,Z 轴是高度。那么你的网格会是这样的(假设是菱形布局):

    2. 渲染顺序

      您必须以与图块相同的方式(并且同时)处理对象、玩家和东西精灵。所以你应该根据你的网格布局和精灵组合方程以特定的顺序渲染所有单元格。如果你的精灵可以覆盖已经渲染的东西,那么你应该从最远的瓷砖渲染到离“相机”最近的瓷砖。在这种情况下,上图中的蓝色方向箭头是正确的,并且 Z 轴应该在最内层循环中增加。

      所以现在如果你在单元格(x,y,z) 中放置了任何对象、玩家或东西,那么你应该在渲染单元格(x,y,z) 之后直接渲染它,然后再渲染任何其他单元格。。 p>

      在您的平铺地图中将对象和玩家作为一个单元格是一个好主意。但是为此,您必须以正确的方式使用图块,并且您的地图表示必须能够这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-05
      • 2022-11-04
      • 2023-03-02
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多