在不同位置渲染相同sprite的数组

时间:2018-05-18 21:10:18

标签: c++ for-loop sprite

我正在尝试重新创建太空入侵者,但我无法让我的入侵者精灵连续显示而不是相互叠加。我有一个名为Sprite的STRUCT,它包含x位置,y位置,宽度,高度和颜色,我将该信息传递给绘制精灵的自定义函数。如果我只是创建一个精灵,一切都有效。但我想创建多个(比如5用于测试目的)。所以我创建了一个Sprite结构的数组,在For-Loop中我试图改变数组中每个元素的x位置,而不是使用自定义函数在循环的每次迭代中绘制数组的元素但是对于某些我没有得到正确结果的原因。我可以在调试器中看到x位置实际上正在改变,但我认为一切都仍然在彼此之上。

struct INVADER
{
    int xPos = 100;
    int yPos;
    int width;
    int height;
    D3DCOLOR color;

    INVADER()
    {
        xPos; 
        yPos;
        width = 64;
        height = 64;
        color = D3DCOLOR_XRGB(255, 255, 255);
    }

};


INVADER invaderArmy[5];

    for (int index = 0; index < 5; index++)
    {
        //invaderArmy->xPos = 100;

        invaderArmy[index].xPos *= index;

        Draw_And_Rotate_Sprite(invaderImage, invaderArmy[index].xPos);

    }

1 个答案:

答案 0 :(得分:0)

我只是在这里做事,因为我没有50位代表发表评论。

被叫Draw_And_Rotate_Sprite()函数的参数不应该是invaderArmy[index]而不是invaderArmy[index].xPos吗?

我也可以在提供的代码中看到问题。请向我们展示Draw_And_Rotate_Sprite()函数定义。