main.c // 初期化、ゲーム実行処理
#include "game.h"
int main(int argc, char *argv[]){ // コマンドライン引数 int argcは引数の個数、char *argvは引数の文字列
gameInit(&argc, argv);
gameRun();
return 0;
}
game.h
#ifndef __HEADER_GAME #define __HEADER_GAME void gameInit(int *argc, char **argv); void gameRun(); #endif
game.c // glut初期化 ※glInit
#include "game.h"
#include <GL/glut.h>
#include "define.h"
#include "display.h"
void glInit(int *argc, char **argv);
void gameInit(int *argc, char **argv){
glInit(argc, argv);
}
void gameRun(){
glutMainLoop();
}
void glInit(int *argc, char **argv){
glutInit(argc, argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT);
glutCreateWindow("myGame");
glutDisplayFunc(displayMain);
}
define.h
#ifndef __HEADER_DEFINE #define __HEADER_DEFINE #define WINDOW_WIDTH 640 #define WINDOW_HEIGHT 480 #endif
display.h
#ifndef __HEADER_DISPLAY #define __HEADER_DISPLAY void displayMain(); #endif
display.c // ゲーム処理
#include "display.h"
void displayMain(){
}
GNUmakefile // コンパイル
main: main.c game.o display.o gcc main.c game.o display.o -o main -lglut -lGLU -lGL game.o: game.c game.h define.h display.h gcc -c game.c -o game.o -lglut -lGLU -lGL display.o: display.c display.h gcc -c display.c -o display.o -lglut -lGLU -lGL clean: rm -rf main *.o
$ make
gcc -c game.c -o game.o -lglut -lGLU -lGL
gcc -c display.c -o display.o -lglut -lGLU -lGL
gcc main.c game.o display.o -o main -lglut -lGLU -lGL
