コミット
This commit is contained in:
76
main.cc
Normal file
76
main.cc
Normal file
@@ -0,0 +1,76 @@
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL2/SDL_ttf.h>
|
||||
#include <SDL2/SDL_mixer.h>
|
||||
#include <iostream>
|
||||
|
||||
#include "src/render.hh"
|
||||
#include "src/ball.hh"
|
||||
#include "src/player.hh"
|
||||
#include "src/brick.hh"
|
||||
|
||||
int main(void) {
|
||||
Render r;
|
||||
Player p(r);
|
||||
Ball bl(r, p);
|
||||
Brick br(r);
|
||||
|
||||
if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
|
||||
std::cout << "SDL_Init()に失敗" << '\n';
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (SDL_CreateWindowAndRenderer(r.width, r.height, 0, &r.window, &r.renderer) < 0) {
|
||||
std::cout << "SDL_CreateWindowAndRenderer()に失敗" << '\n';
|
||||
SDL_Quit();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048) < 0) {
|
||||
std::cout << "Mix_OpenAudio()に失敗" << '\n';
|
||||
SDL_DestroyRenderer(r.renderer);
|
||||
SDL_DestroyWindow(r.window);
|
||||
SDL_Quit();
|
||||
return -1;
|
||||
}
|
||||
|
||||
SDL_SetWindowTitle(r.window, "ブリックブレイカー");
|
||||
|
||||
TTF_Init();
|
||||
r.font = TTF_OpenFont("font.ttf", r.fontsize);
|
||||
if (!r.font) {
|
||||
std::cout << "フォントを読込に失敗" << '\n';
|
||||
SDL_DestroyRenderer(r.renderer);
|
||||
SDL_DestroyWindow(r.window);
|
||||
Mix_CloseAudio();
|
||||
SDL_Quit();
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int lastTime = 0;
|
||||
br.resetBricks(r, p, bl);
|
||||
|
||||
while (r.running) {
|
||||
r.lastFrame = SDL_GetTicks();
|
||||
if (r.lastFrame >= lastTime + 1000) {
|
||||
lastTime = r.lastFrame;
|
||||
r.fps = r.frameCount;
|
||||
r.frameCount = 0;
|
||||
}
|
||||
|
||||
if (!r.gameover) {
|
||||
r.update(r, p, bl, br);
|
||||
}
|
||||
r.input(p);
|
||||
r.render(p, bl, br);
|
||||
}
|
||||
|
||||
TTF_CloseFont(r.font);
|
||||
SDL_DestroyRenderer(r.renderer);
|
||||
SDL_DestroyWindow(r.window);
|
||||
SDL_Quit();
|
||||
Mix_FreeMusic(r.music);
|
||||
Mix_CloseAudio();
|
||||
TTF_Quit();
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user