SDL.NET包装器:如何旋转精灵?

时间:2010-10-16 11:05:59

标签: sdl

我正在努力开发我的第一个简单的视频游戏。 我正在使用SDL.NET(着名SDL的包装器.NET)和c#。

当用户按下数组,向上数组时,我正在尝试旋转我的精灵(我的“汽车”)。 我正在使用像

这样的东西
this.Surface =  this.Surface.CreateRotatedSurface(90);

但它不起作用!我在屏幕上出错...... :(

我知道我可以使用像

这样的东西
this.Surface = new Surface("my-sprite-right.png") // for right

或 this.surface = new Surface(“my-sprite-left.png”)//左侧

但我不喜欢那个解决方案...

有谁知道如何管理精灵的“轮换”?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道你是否已经对这个问题有了答案,但当你转动你的车时我相信你必须这样做:

  1. 创建一个新的精灵实例,如Surface myCarRotated = myCar.CreateRotatedSurface(int 90,true);
  2. 然后将新曲面blit到您的屏幕
  3. 最后调用您的video.Update()刷新屏幕的方法
  4. 由于汽车将进行大量改造(好吧,主要是旋转和速度),最好以单独的方法编写所有逻辑。

    请注意,CPU的旋转很重,您可能需要考虑按照此处的说明创建旋转图像:http://egonrath.eg.funpic.de/old/sdl/sdlnet.html#clipblitting

    但是我认为现在只要你没有1000辆旋转车就太重要了。

    我对sdl.net没什么经验,但我真的很喜欢它。我尝试了几个c#游戏引擎,我真的很喜欢它。 Currenly我正在构建(试图构建;)一个应用程序,它可以在真实的虚幻竞技场游戏中跟踪玩家的位置。一种迷你地图类型的应用程序。

    祝你好运!