Так что я просто пытаюсь заставить красное поле 10 х 10 двигаться вертикально вперед и назад. Я компилирую и запускаю свою программу, и появляется красное поле, которое начинает двигаться вниз, а затем просто исчезает после того, как оно достигает края экрана. Я использовал несколько операторов cout <<
, которые сообщают мне, когда вызываются функции, и все они вызываются, когда они должны. Даже когда окно не видно, функции правильно вызываются.
Мой основной цикл
while(running)
{
myScreen->Clear();
boxes.Move();
boxes.Draw();
myScreen->Flip();
........
Моя функция draw ()
SDL_Color red;
red.r = 255;
red.g = 0;
red.b = 0;
if( SDL_FillRect( my_screen->Get_screen(), &start_dest, SDL_MapRGB(
my_screen->Get_pixel_format(), red.r, red.g, red.b ) ) == -1 )`
cout << "Fill rect in Draw(); failed\n";
Функция My Move ()
start_dest.y += y_step;
if ( start_dest.y >= my_screen->Get_height() )
{
cout << "start_dest.y >= screen height\n";
start_dest.y = my_screen->Get_height();
y_step = -y_step;
}
if ( start_dest.y <= 0 )
{
cout << "start_dest.y <= 0\n";
start_dest.y = 0;
y_step = -y_step;
}
Я пытался найти эту ошибку навсегда. просто оставьте комментарий, если кто-то хочет увидеть больше кода. Спасибо