SDL - 关于角色的运动

时间:2011-09-22 15:14:35

标签: sdl

我想问一下SDL中的角色动作

来自lazyfoo.com的

,有一个教程解释了动作,从我读到的内容,我得出结论,这些是对象动作的步骤

  1. 检测到的事件
  2. 根据事件设置新坐标
  3. 使屏幕变白(SDL_FillRect())
  4. 然后用新的coords(applySurface())
  5. 绘制对象

    我的问题是我使用的是基于2D平铺的地图(不是白色表面),我在第3步遇到困难....如何在移动角色的同时保持地图?(不使用美白)屏幕)

    如果有人可以发布代码,我会非常感激

    THX

2 个答案:

答案 0 :(得分:0)

您想要更改播放器的位置而无需重绘地图吗?

除非您的地图非常复杂,否则您应该能够每帧重绘一次。

如果它很复杂或者你在慢速机器上,你可以进行以下优化: 在程序开始时将地图绘制为单独的曲面。 每一帧,而不是清除屏幕和重绘地图,只需将此表面复制到屏幕。复制曲面几乎与清除它们一样快。

答案 1 :(得分:0)

你可以做的不是让屏幕变白,而是在主屏幕之外用你的地图循环BlitScreen或FillRect,而不是每帧都这样做。此外,为了节省内存,您可以尝试限制FPS。