#Qt+OpenGLでゲーム制作
######とりあえずウィンドウ表示まで
以前からゲーム制作をしてみたいな、と思ってはいたもののメインのCGツール制作で時間がいっぱいいっぱいなのですが、着手しなければ始まらない。と言う事で隙間時間使いながらやってみようと思います。
開発環境としては
- Visual Studio Community 2022
- Qt6
全部無料環境です。Qt6はまだまだメインで使っていないのですが、この機会に少しずつ触ってみようかな、と。VS2022もまだまだメインでは使用していないのですがこの機会に使ってみます。VisualStudioにQtのアドオンを入れてウィザード使うと初期ウィンドウ表示までを勝手にやってくれるので便利です。ただし今回はウィザードが吐いたGUI周りはいらないので消してしまいます。(全部OpenGLで表示しますから)
main.cppがこんな感じ。簡単と言うか簡潔と言うか。Qtのアプリは大規模になってもmain.cppの基本はコレです。QApplicationはアプリのコア部分。GameEngineクラスはただのウィンドウで定義したらshowでh表示して、QApplicationを実行するだけ。
#include "GameEngine.h"
#include "stdafx.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
GameEngine w;
w.show();
return a.exec();
}
これがメインウィンドウのヘッダー。Windowを扱うQWidgetの派生クラスになっています。コンストラクタしかないので実質なにもしてない空っぽのクラスですが、まずはこのクラスをOpenGL向けにいじっていくことになると思います。
#pragma once
#include <QtWidgets/QWidget>
class GameEngine : public QWidget
{
Q_OBJECT
public:
GameEngine(QWidget *parent = Q_NULLPTR);
};
cpp部分はこんな感じ。自動生成されただけなのでコンストラクタしかないですね。ui.setupUi(this);でデザイナを使ったボタンとかのレイアウトを勝手にやってくれますがこれも今回は不要です。
#include "GameEngine.h"
#include "stdafx.h"
GameEngine::GameEngine(QWidget *parent)
: QWidget(parent)
{
}