0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Qt+OpenGLでゲーム制作

Posted at

#Qt+OpenGLでゲーム制作
######とりあえずウィンドウ表示まで
以前からゲーム制作をしてみたいな、と思ってはいたもののメインのCGツール制作で時間がいっぱいいっぱいなのですが、着手しなければ始まらない。と言う事で隙間時間使いながらやってみようと思います。

開発環境としては

  • Visual Studio Community 2022
  • Qt6

全部無料環境です。Qt6はまだまだメインで使っていないのですが、この機会に少しずつ触ってみようかな、と。VS2022もまだまだメインでは使用していないのですがこの機会に使ってみます。VisualStudioにQtのアドオンを入れてウィザード使うと初期ウィンドウ表示までを勝手にやってくれるので便利です。ただし今回はウィザードが吐いたGUI周りはいらないので消してしまいます。(全部OpenGLで表示しますから)

main.cppがこんな感じ。簡単と言うか簡潔と言うか。Qtのアプリは大規模になってもmain.cppの基本はコレです。QApplicationはアプリのコア部分。GameEngineクラスはただのウィンドウで定義したらshowでh表示して、QApplicationを実行するだけ。

main.cpp
#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向けにいじっていくことになると思います。

GameEngine.h
#pragma once

#include <QtWidgets/QWidget>

class GameEngine : public QWidget
{
    Q_OBJECT
public:
    GameEngine(QWidget *parent = Q_NULLPTR);

};

cpp部分はこんな感じ。自動生成されただけなのでコンストラクタしかないですね。ui.setupUi(this);でデザイナを使ったボタンとかのレイアウトを勝手にやってくれますがこれも今回は不要です。

GameEngine.cpp
#include "GameEngine.h"
#include "stdafx.h"

GameEngine::GameEngine(QWidget *parent)
    : QWidget(parent)
{
}

######ビルド&実行
こんなウィンドウが表示されればOK。
image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?