Рендеринг массива одного и того же спрайта в разных местах - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь воссоздать Space Invaders, и у меня возникают проблемы с отображением моего спрайта захватчика в ряд, а не поверх друг друга.У меня есть STRUCT под названием Sprite, который содержит координаты x, y, ширину, высоту и цвет, и я передаю эту информацию в пользовательскую функцию, которая рисует спрайт.Все работает, если я просто создаю один спрайт.Но я хочу создать несколько (скажем, 5 для тестирования).Таким образом, я создал массив структуры Sprite и в цикле For пытался изменить положение 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 голосов
/ 19 мая 2018

Я пишу здесь только потому, что у меня нет 50 повторений для комментариев.

Разве параметр из вызываемой функции Draw_And_Rotate_Sprite() не должен быть invaderArmy[index] вместо invaderArmy[index].xPos?

Также нет проблем, которые я вижу в представленном коде.Пожалуйста, покажите нам определение функции Draw_And_Rotate_Sprite().

...