Skip to content

Commit

Permalink
Increase window size and change grid position
Browse files Browse the repository at this point in the history
Add an origin member to allow setting of x and y pos
for GameBorder and TetrisGrid
  • Loading branch information
andrew long committed Apr 15, 2012
1 parent 7eea9fd commit 316c473
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 10 deletions.
8 changes: 6 additions & 2 deletions GameBorder.cpp
@@ -1,14 +1,18 @@
#include "GameBorder.h"

GameBorder::GameBorder(QPointF newPosition)
{
position = newPosition;
}

QRectF GameBorder::boundingRect() const
{
return QRectF(0, 0, 305, 480);
return QRectF(position.x(), position.y(), 305, 480);
}

void GameBorder::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget)
{
painter->drawRect(0, 0, 305, 480);
painter->drawRect(position.x(), position.y(), 305, 480);
}
4 changes: 4 additions & 0 deletions GameBorder.h
Expand Up @@ -5,7 +5,11 @@
class GameBorder : public QGraphicsItem
{
public:
GameBorder(QPointF newPosition);
void setPosition(QPointF newPosition);
QRectF boundingRect() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
private:
QPointF position;
};
#endif
6 changes: 3 additions & 3 deletions QTetrisWindow.cpp
Expand Up @@ -8,12 +8,12 @@ QTetrisWindow::QTetrisWindow()
graphicsScene->setSceneRect(QRectF(0,0,305, 480));
graphicsScene->setFocus(Qt::ActiveWindowFocusReason);

gameGrid = new TetrisGrid(graphicsScene);
gameGrid = new TetrisGrid(graphicsScene, QPointF(200, 0));
graphicsScene->setGameGrid(gameGrid);

graphicsView = new QGraphicsView(graphicsScene);
graphicsView->setSceneRect(QRectF(0, 0, 305, 480));
graphicsView->setAlignment(Qt::AlignLeft | Qt::AlignTop);
graphicsView->setSceneRect(QRectF(0, 0, 505, 480));
graphicsView->setAlignment(Qt::AlignRight | Qt::AlignTop);
setCentralWidget(graphicsView);
graphicsView->show();
}
Expand Down
9 changes: 5 additions & 4 deletions TetrisGrid.cpp
Expand Up @@ -4,17 +4,18 @@
#include "LineBlock.h"
#include "LBlock.h"

TetrisGrid::TetrisGrid(QGraphicsScene *scene)
TetrisGrid::TetrisGrid(QGraphicsScene *scene, QPointF newOrigin)
{
gameScene = scene;
origin = newOrigin;
QPen pen;
pen.setWidth(1);
pen.setBrush(Qt::blue);
pen.setCapStyle(Qt::RoundCap);
pen.setJoinStyle(Qt::RoundJoin);
gameBorder = new GameBorder();
gameBorder = new GameBorder(origin);
gameScene->addItem(gameBorder);
maxHeightBorder = gameScene->addLine(0, 300, gameBorder->boundingRect().width(), 300);
maxHeightBorder = gameScene->addLine(origin.x(), 300, origin.x() + gameBorder->boundingRect().width(), 300);
blockFactory = new BlockFactory();
scoreKeeper = &TetrisScoreKeeper::getInstance();
gridRows = new GridRows(gameBorder->boundingRect().width() / Block::BLOCK_SIZE);
Expand Down Expand Up @@ -115,7 +116,7 @@ void TetrisGrid::dropNewBlock()
//currentBlock = new LBlock(QPointF((rand() % 150), 6));
int horizontalSpaces = boundingRect().width() / HORIZONTAL_BLOCK_GRID_SIZE;
int multiplier = rand() % horizontalSpaces;
currentBlock = blockFactory->nextShape(QPointF(1,1));
currentBlock = blockFactory->nextShape(QPointF(origin.x() + 1, origin.y() + 1));
gameScene->addItem(currentBlock);
updateNextBlock();
}
Expand Down
3 changes: 2 additions & 1 deletion TetrisGrid.h
Expand Up @@ -12,7 +12,7 @@ class TetrisGrid : public QObject
Q_OBJECT

public:
TetrisGrid(QGraphicsScene *scene);
TetrisGrid(QGraphicsScene *scene, QPointF newOrigin);
QRectF boundingRect() const;
void play();
void leftKeyPressed();
Expand All @@ -25,6 +25,7 @@ class TetrisGrid : public QObject
void gameLoop(int step);
void restartTimer();
private:
QPointF origin;
QGraphicsScene *gameScene;
GameBorder *gameBorder;
TetrisScoreKeeper *scoreKeeper;
Expand Down

0 comments on commit 316c473

Please sign in to comment.