对古董老游戏的复刻,使用SDL再合适不过了,废话不多说,新建工程然后开搞!
对于IDE,本人选择jetbrains系列的CLion:
游戏程序总框架:
根据上图编写main.c文件:
#define SDL_MAIN_HANDLED
#include <stdio.h>
#include "core/texture/texture.h"
#include "core/timer/timer.h"
#include "stdbool.h"
#include "SDL2/SDL_image.h"
//常量----屏幕大小及帧刷新率(暂定)
const int SCREEN_WIDTH = 800;
const int SCREEN_HEIGHT = 600;
const int SCREEN_FPS = 60;
const int SCREEN_TICKS_PER_FRAME = 1000 / SCREEN_FPS;
//声明全局变量
SDL_Window* g_window = NULL;
SDL_Renderer* g_renderer = NULL;
SDL_bool g_game_quit = false;
int g_screen_width = SCREEN_WIDTH;
int g_screen_height = SCREEN_HEIGHT;
int g_screen_fps = SCREEN_FPS;
int g_screen_tpf = SCREEN_TICKS_PER_FRAME;
//函数声明
void game_init();
void game_load();
void game_loop();
void game_render();
void game_update(float dt);
void game_close();
struct Texture map;
int main()
{
game_init();
game_load();
game_loop();
game_close();
return 0;
}
void game_init()
{
// initialize SDL
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER) < 0)
{
printf("SDL could not