Я новичок в C ++ и DirectX, я из XNA.
Я разработал игру типа Fly The Copter .
Что я сделал, так это создал класс с именем Wall.
Пока игра запущена, я рисую все стены.
В XNA я хранил стены в ArrayList, а в C ++ я использовал vector.
В XNA игра работает быстро, а в C ++ очень медленно.
Вот код C ++:
void GameScreen::Update()
{
//Update Walls
int len = walls.size();
for(int i = wallsPassed; i < len; i++)
{
walls.at(i).Update();
if (walls.at(i).pos.x <= -40)
wallsPassed += 2;
}
}
void GameScreen::Draw()
{
//Draw Walls
int len = walls.size();
for(int i = wallsPassed; i < len; i++)
{
if (walls.at(i).pos.x < 1280)
walls.at(i).Draw();
else
break;
}
}
В методе Update я уменьшаю значение X на 4.
В методе Draw я вызываю sprite-> Draw (Direct3DXSprite).
Это единственные коды, которые запускаются в игровом цикле.
Я знаю, что это плохой код, если у вас есть идея улучшить его, пожалуйста, помогите.
Спасибо и извините за мой английский.