예제 소스
인베이더 게임으로 배우는 휴리스틱과 AI 브리지 · 파일 17개
gamecanvas.h
#pragma once
#include "gameengine.h"
#include <QWidget>
class GameCanvas final : public QWidget {
public:
explicit GameCanvas(QWidget *parent = nullptr);
void setEngine(Invader::GameEngine *engine) { m_engine = engine; }
Invader::GameEngine *engine() const { return m_engine; }
void setPaused(bool paused) { m_paused = paused; }
bool paused() const { return m_paused; }
void refreshView();
protected:
void paintEvent(QPaintEvent *event) override;
void keyPressEvent(QKeyEvent *event) override;
private:
Invader::GameEngine *m_engine = nullptr;
int m_scale = 1;
bool m_paused = false;
};