我在写俄罗斯方块。这是我对玻璃的实现。我只想画出里面的东西。Int 表示颜色(int glass_array[10][22];)。
现在我想知道如何使用这些颜色。出于学习目的,我创建了两个立方体并希望它们具有不同的颜色。说,红色和绿色。但它们都变成了蓝色。
你可以帮帮我吗?
QtGlass.h
class QtGlass : public QFrame {
Q_OBJECT
public:
void paintEvent(QPaintEvent * event);
QtGlass(QWidget *parent);
bool key_pressed;
void keyPressEvent(QKeyEvent* event);
protected:
void glassRedraw(QPainter &painter);
int glass_array[10][22];
};
QtGlass.cpp
QtGlass::QtGlass(QWidget *parent): QFrame(parent) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 22; j++) {
glass_array[i][j] = 0; //0 - Default color (grey);
}
}
for (int i = 8; i < 10; i++) {
for (int j = 20; j < 22; j++) {
glass_array[i][j] = QColor(Qt::green).value(); // green
}
}
for (int i = 0; i < 2; i++) {
for (int j = 20; j < 22; j++) {
glass_array[i][j] = QColor(Qt::red).value(); // red
}
}
}
void QtGlass::paintEvent(QPaintEvent *event) {
QPainter painter(this);
Figure Falcon;
glassRedraw(painter);
painter.setPen(QPen(Qt::red, 4));
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 22; j++) {
if (glass_array[i][j] > 0) {
painter.fillRect(i* 31+ 1, j * 31 + 1, 29, 29,
QBrush(QColor(glass_array[i][j]), Qt::SolidPattern));
}
}
}
}