
#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;
}