mirror of
https://github.com/zhenyan121/SporeBG-Conid.git
synced 2026-04-10 06:14:08 +08:00
Rename GameRenderer to BoardRenderer
This commit is contained in:
@@ -31,8 +31,8 @@ set(SOURCE_FILES
|
||||
src/scenes/base/SceneManager.cpp
|
||||
src/scenes/gameplay/GameScene.cpp
|
||||
src/scenes/menu/MainMenuScene.cpp
|
||||
src/graphics/GameRenderer.cpp
|
||||
src/graphics/CoordinateConverter.cpp
|
||||
src/graphics/game/BoardRenderer.cpp
|
||||
src/graphics/game/CoordinateConverter.cpp
|
||||
src/utils/CoordinateTools.cpp
|
||||
src/graphics/font/FontManager.cpp
|
||||
src/graphics/font/TextRenderer.cpp
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
#include "GameRenderer.h"
|
||||
#include "BoardRenderer.h"
|
||||
#include "game/Board.h"
|
||||
#include <iostream>
|
||||
GameRenderer::GameRenderer(int WIDTH, int HEIGHT, SDL_Renderer* renderer) : m_Width(WIDTH), m_Height(HEIGHT), m_renderer(renderer) {
|
||||
BoardRenderer::BoardRenderer(int WIDTH, int HEIGHT, SDL_Renderer* renderer) : m_Width(WIDTH), m_Height(HEIGHT), m_renderer(renderer) {
|
||||
m_cellSize = HEIGHT / m_boardRow;
|
||||
}
|
||||
|
||||
|
||||
|
||||
GameRenderer::~GameRenderer() {
|
||||
BoardRenderer::~BoardRenderer() {
|
||||
|
||||
}
|
||||
|
||||
bool GameRenderer::initialize() {
|
||||
bool BoardRenderer::initialize() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void GameRenderer::setBoard(const Board* board) {
|
||||
void BoardRenderer::setBoard(const Board* board) {
|
||||
m_board = board;
|
||||
}
|
||||
|
||||
void GameRenderer::drawBackground() {
|
||||
void BoardRenderer::drawBackground() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
void GameRenderer::drawBoard() {
|
||||
void BoardRenderer::drawBoard() {
|
||||
auto area = getBoardArea();
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ for (int row = 0; row < area.rows; ++row) {
|
||||
|
||||
}
|
||||
|
||||
void GameRenderer::drawPiece(std::optional<std::pair<int, int>> selectedPiece) {
|
||||
void BoardRenderer::drawPiece(std::optional<std::pair<int, int>> selectedPiece) {
|
||||
if (!m_board || !m_renderer) return;
|
||||
|
||||
auto area = getBoardArea();
|
||||
@@ -99,7 +99,7 @@ void GameRenderer::drawPiece(std::optional<std::pair<int, int>> selectedPiece) {
|
||||
}
|
||||
}
|
||||
|
||||
BoardArea GameRenderer::getBoardArea() const {
|
||||
BoardArea BoardRenderer::getBoardArea() const {
|
||||
return {
|
||||
(m_Width - m_cellSize * m_boardCOL) / 2,
|
||||
(m_Height - m_cellSize * m_boardRow) / 2,
|
||||
@@ -14,7 +14,7 @@ struct PlayerColors {
|
||||
|
||||
class Board;
|
||||
|
||||
class GameRenderer
|
||||
class BoardRenderer
|
||||
{
|
||||
private:
|
||||
SDL_Renderer* m_renderer = nullptr;
|
||||
@@ -30,9 +30,9 @@ private:
|
||||
float m_pieceRadiusRatio = 0.8f; // 棋子半径相对于格子大小的比例
|
||||
PlayerColors m_colors;
|
||||
public:
|
||||
GameRenderer(int WIDTH, int HEIGHT, SDL_Renderer* renderer);
|
||||
BoardRenderer(int WIDTH, int HEIGHT, SDL_Renderer* renderer);
|
||||
|
||||
~GameRenderer();
|
||||
~BoardRenderer();
|
||||
// 渲染画面
|
||||
// 初始化加载纹理
|
||||
bool initialize();
|
||||
@@ -13,12 +13,12 @@ void GameScene::onEnter(SDL_Renderer* renderer, int WIDTH, int HEIGHT, UIRendere
|
||||
m_uiRenderer = uiRenderer;
|
||||
m_gameUIManager = std::make_unique<GameUIManager>(renderer, uiRenderer->getTextRenderer());
|
||||
m_gameUIManager->init();
|
||||
m_gameRenderer = std::make_unique<GameRenderer>(WIDTH, HEIGHT, renderer);
|
||||
m_boardRenderer = std::make_unique<BoardRenderer>(WIDTH, HEIGHT, renderer);
|
||||
m_gameSession = std::make_unique<GameSession>();
|
||||
m_CoordinateConverter = std::make_unique<CoordinateConverter>(renderer);
|
||||
m_gameSession->initialize();
|
||||
|
||||
m_gameRenderer->setBoard(m_gameSession->getBoard());
|
||||
m_boardRenderer->setBoard(m_gameSession->getBoard());
|
||||
|
||||
|
||||
|
||||
@@ -31,16 +31,16 @@ void GameScene::update() {
|
||||
|
||||
void GameScene::render() {
|
||||
beginFrame();
|
||||
m_gameRenderer->drawBackground();
|
||||
m_gameRenderer->drawBoard();
|
||||
m_boardRenderer->drawBackground();
|
||||
m_boardRenderer->drawBoard();
|
||||
|
||||
m_gameRenderer->drawPiece(m_gameSession->getSelectedPiece());
|
||||
m_boardRenderer->drawPiece(m_gameSession->getSelectedPiece());
|
||||
m_uiRenderer->renderUI(m_gameUIManager->getUIRenderData());
|
||||
endFrame();
|
||||
}
|
||||
|
||||
void GameScene::handleClick(float screenX, float screenY) {
|
||||
auto click = m_CoordinateConverter->ScreenToBoard(screenX, screenY, m_gameRenderer->getBoardArea());
|
||||
auto click = m_CoordinateConverter->ScreenToBoard(screenX, screenY, m_boardRenderer->getBoardArea());
|
||||
if (click) {
|
||||
auto [row, col] = click.value();
|
||||
m_gameSession->handleCoordinateInput(row, col);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
#include "scenes/base/Scene.h"
|
||||
#include "graphics/GameRenderer.h"
|
||||
#include "graphics/CoordinateConverter.h"
|
||||
#include "graphics/game/BoardRenderer.h"
|
||||
#include "graphics/game/CoordinateConverter.h"
|
||||
#include "game/GameSession.h"
|
||||
#include "graphics/ui/UIRenderer.h"
|
||||
#include "ui/managers/GameUIManager.h"
|
||||
@@ -20,7 +20,7 @@ public:
|
||||
void renderMousePosition(float x, float y) override;
|
||||
private:
|
||||
|
||||
std::unique_ptr<GameRenderer> m_gameRenderer;
|
||||
std::unique_ptr<BoardRenderer> m_boardRenderer;
|
||||
std::unique_ptr<CoordinateConverter> m_CoordinateConverter;
|
||||
std::unique_ptr<GameSession> m_gameSession;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user