gpt4 book ai didi

c++ - 使用 SDL 消失的矩形

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:51 26 4
gpt4 key购买 nike

所以我只是想让一个红色的 10 x 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";

我的 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;
}

我一直在努力寻找这个错误。如果有人想查看更多代码,请发表评论。谢谢

最佳答案

没有足够的信息来给出结论性的答案,但这里有一个提示。

根据我使用 SDL 的经验,SDL 函数可以在调用时修改您的 Rect 结构,尤其是当 rect 部分位于屏幕外时。确保在使用矩形的每个 SDL 函数之前设置其所有 属性(x、y、宽度、高度)。

关于c++ - 使用 SDL 消失的矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com