-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.cpp
More file actions
103 lines (75 loc) · 2.49 KB
/
init.cpp
File metadata and controls
103 lines (75 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <SDL.h>
#include <SDL_image.h>
#include <iostream>
#include <SDL_mixer.h>
#include <SDL_ttf.h>
#include "main.h"
SDL_Renderer* renderer;
SDL_Window* gWindow;
TTF_Font* font;
// 音频初始化
int sound_init()
{
#define TMP_FREQ MIX_DEFAULT_FREQUENCY
#define TMP_FORMAT MIX_DEFAULT_FORMAT
#define TMP_CHAN 2
#define TMP_CHUNK_SIZE 512
return Mix_OpenAudio(TMP_FREQ,TMP_FORMAT,TMP_CHAN,TMP_CHUNK_SIZE);
}
//Screen dimension constants
const int SCREEN_WIDTH = 1920;
const int SCREEN_HEIGHT = 1080;
bool init(){
//Initialization flag
bool success = true;
//Initialize SDL
if( SDL_Init( SDL_INIT_EVERYTHING ) < 0 )// 初始化全部系统
{
std::cout << "SDL could not initialize! SDL Error: " << SDL_GetError() << std::endl;
success = false;
}
else
{
SDL_Log("成功初始化所有内容\n");
//Create window
gWindow = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_FULLSCREEN);
// SDL_WINDOW_FULLSCREEN
// SDL_WINDOW_SHOW 原常量
renderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_SOFTWARE);
if( gWindow == NULL ) // 判断一下窗口返回值是不是Null
{
std::cout << "Window could not be created! SDL Error: %s\n" << SDL_GetError() << std::endl;
success = false;// 初始化失败
}
else
{
std::cout << "Window can be created!\n" << std::endl;
int imgFlags = IMG_INIT_PNG;
//将IMG_Init的返回值与imgFlags进行按位与操作。
//检查初始化是否包含了imgFlags所代表的标志位。如果包含了,结果值将等于imgFlags;否则将不等于imgFlags。
if( !( IMG_Init( imgFlags ) & imgFlags ) )
{
std::cout << "SDL_image could not initialize! SDL_image Error: " << IMG_GetError() << std::endl;
success = false;
}
else
{
SDL_Log("SDL_image 初始化成功 \n",IMG_GetError());
}
// 音频初始化
if (sound_init() == 0){
SDL_Log("SDL_mixer 初始化成功 \n");
}else{
SDL_Log("SDL_mixer 初始化成功 \n", IMG_GetError() );
}
// 字体初始化
if (TTF_Init() == 0){
font = TTF_OpenFont("res/font/FangZhengKaiTiJianTi-1.ttf", 24); //加载字体
SDL_Log("SDL_ttf 初始化成功 \n" );
}else{
SDL_Log("SDL_ttf 初始化失败 \n",IMG_GetError()) ;
}
}
}
return success;
}