如何位块传送到表面?

问题描述 投票:0回答:1

我最近尝试学习 C#,在学习了其中的一些内容后,我遵循了教程(https://jsayers.dev/category/c-sdl-tutorial-series/),我尝试使用 sdl_blitsurface 但它没有没有给出任何错误,但它只是不让图像显示出来。 顺便说一句,这是源代码https://pastebin.com/iVkhkjsq

    var SourceRect = new SDL.SDL_Rect
    {
        x = 0,
        y = 0,
        w = 16,
        h = 16
    };
 
    var DestRect = new SDL.SDL_Rect
    {
        x = 20,
        y = 200
    };
 
   SDL.SDL_BlitSurface(surf, ref SourceRect, renderer, ref DestRect);

我尝试了 sdl_blitsurface 但它没有显示出来

c# sdl-2
1个回答
0
投票

我也遇到了同样的问题。您正在使用在渲染器上运行的较新的 SDL 函数。 然后您必须使用 IMG_LoadTexture 和 SDL_RenderCopy。 另请注意,目标矩形确实需要宽度和高度,否则不会显示。 例如:

var SourceRect = new SDL.SDL_Rect
{
    x = 0,
    y = 0,
    w = imgw,
    h = imgh
};

var DestRect = new SDL.SDL_Rect
{
    x = (int)circle.x,
    y = (int)circle.y,
    w = imgw,
    h = imgh
};

var img2 = SDL_image.IMG_LoadTexture(renderer,@"Examples\dog.jpg");
SDL.SDL_RenderCopy(renderer, img2, ref SourceRect, ref DestRect);
© www.soinside.com 2019 - 2024. All rights reserved.