C语言SDL2 加载图片和旋转图片代码

C语言SDL2 加载图片和旋转图片代码

C语言实例qingyu2022-02-23 10:54:101282A+A-

1.png

#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
const int WIDTH = 660;
const int HEIGHT = 660;
int WinMain(int argc, char *argv[]) {
  SDL_Window *window;
  SDL_Renderer *renderer;
  //创建窗口
  SDL_Init(SDL_INIT_VIDEO);
  window = SDL_CreateWindow(
      "坦克大战",
      SDL_WINDOWPOS_UNDEFINED,
      SDL_WINDOWPOS_UNDEFINED,
      WIDTH,
      HEIGHT,
      SDL_WINDOW_OPENGL
  );

  if (window == NULL) {
    printf("窗口创建失败: %s\n", SDL_GetError());
    return 1;
  }
  //渲染
  renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_TARGETTEXTURE | SDL_RENDERER_ACCELERATED);

  if (renderer == NULL) {
    printf("渲染失败");
    return 1;
  }
  //加载图片
  SDL_Surface *tkImage, *bgImage;
  bgImage = IMG_Load("C:\\C_lanag\\SDL2_3\\bg.jpg");
  tkImage = IMG_Load("C:\\C_lanag\\SDL2_3\\tk.bmp");
  if (!bgImage) {
    printf("背景图片加载失败", SDL_GetError());
    return 1;
  }
  if (!tkImage) {
    printf("坦克图片加载失败", SDL_GetError());
    return 1;
  }

  SDL_Texture *tk_texture, *bg_texture;
  bg_texture = SDL_CreateTextureFromSurface(renderer, bgImage);
  tk_texture = SDL_CreateTextureFromSurface(renderer, tkImage);
  SDL_Rect s_rect, d_rect;
  //坦克图片宽高
  s_rect.x = 0;
  s_rect.y = 0;
  s_rect.w = 65;
  s_rect.h = 74;
  //坦克在窗口中的位置
  d_rect.x = 300;  //起始点
  d_rect.y = 300;
  d_rect.w = 65;
  d_rect.h = 74;
  SDL_RenderCopy(renderer, bg_texture, NULL, NULL);
  SDL_RenderCopyEx(renderer, tk_texture, &s_rect, &d_rect, 180, NULL, SDL_FLIP_NONE);//坦克顺时间旋转180度
  SDL_RenderPresent(renderer);
  //事件监听
  while (1) {
    SDL_Event event;
    if (SDL_PollEvent(&event)) {
      if (event.type == SDL_QUIT) {
        break;
      }
    }
  }

  SDL_DestroyWindow(window);
  return 0;
}
点击这里复制本文地址 欢迎来到大黄鸡源码分享网
qrcode

大黄鸡源码编程网 © All Rights Reserved.  
网站备案号:闽ICP备18012015号-4
Powered by Z-BlogPHP
联系我们| 关于我们| 广告联系| 网站管理