【发布时间】:2020-08-30 10:37:41
【问题描述】:
我正在尝试在 SDL2 中的应用程序中模拟“滚动”,但是我认为每次滚动事件发生时移动屏幕上的每个单独对象并不是一种高效/优雅的方式。我对 SDL2 的了解是左上角从坐标 0,0 开始。为了让我更容易实现,是否可以更改 GUI 的左上角起点,以便当我滚动时,它会移动到 0,100 和下一个滚动,0,200 等。我该怎么做呢?谢谢
【问题讨论】:
-
我对图形做的不多,但我确实记得这里有一种方法。使用 SDL,您可以绘制(因为没有更好的词)完整的显示,然后将其 blit 到屏幕上。如果我没记错的话,要创建一个滚动(如电影学分),您可以将图像绘制为屏幕宽度但根据需要高度(许多倍于显示高度)并保存整个图像。然后,您每次增加偏移量以创建滚动效果,一次对已保存图像的一屏进行 blit。这样您就不会每次都创建每个单独的部分,而是显示预先创建的图像的不同部分。