【问题标题】:SDL.NET wrapper: how to rotate a sprite?SDL.NET 包装器:如何旋转精灵?
【发布时间】:2011-02-20 10:09:32
【问题描述】:

我正在尝试开发我的第一个简单的视频游戏。 我正在使用 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") // for left

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

有谁知道如何管理精灵的“旋转”?

谢谢!

【问题讨论】:

  • 究竟什么是“屏幕错误”?

标签: sdl


【解决方案1】:

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

  1. 创建一个新的精灵实例,如 Surface myCarRotated = myCar.CreateRotatedSurface(int 90, true);
  2. 然后将新表面 blit 到屏幕上
  3. 最后调用你的 video.Update() 方法刷新屏幕

由于汽车将发生重大变化(嗯,主要是旋转和速度),最好将所有逻辑写在单独的方法中。

请注意,旋转对您的 CPU 来说很繁重,您可能需要考虑将旋转图像创建为精灵表,如下所述:http://egonrath.eg.funpic.de/old/sdl/sdlnet.html#clipblitting

但我认为现在这并不重要,只要你没有 1000 辆旋转汽车。

我对 sdl.net 没有太多经验,但我真的很喜欢它。我尝试了几个 c# 游戏引擎,我真的很喜欢它。目前,我正在构建(尝试构建;)一个应用程序,用于在实时虚幻锦标赛游戏期间跟踪玩家位置。一种小地图类型的应用程序。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多