Example #1
0
// 绘制棋盘
void Board::paintEvent(QPaintEvent *)
{
    DrawBackground(); // 绘制背景颜色

    int r = height() / 20;
    _r = r;
    _off = QPoint(r + 1, r + 1);

    QPainter p(this);
    p.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);

    p.save();
    drawPlate(p);
    p.restore();

    p.save();
    drawPlace(p);
    p.restore();

    p.save();
    drawInitPosition(p);
    p.restore();

    p.save();
    drawStone(p);
    p.restore();
}
void drawWorld(void)
{
	mvstack.push(model_view);
	drawDesert();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Translate (0, 6 , -30);
	model_view *= RotateY(180);
	drawBench();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Translate (25, 4, -30);
	drawTree();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Scale(.9, .9, .9);
	model_view *= Translate (-25, 4, -30);
	drawTree();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Scale(1, 2, 1);
	model_view *= Translate (25, 4, 30);
	drawTree();
	model_view = mvstack.pop();
	

	//house
	mvstack.push(model_view);
	model_view *= Translate(-40, 10, 0);
	model_view *= RotateY(90);
	drawHouse();
	model_view = mvstack.pop();
	

	//moon
	mvstack.push(model_view);
	set_colour(.9, .9, .8);
	model_view *= Translate (-70, 75, 200);
	model_view *= Scale(30, 30, 30);
	drawSphere();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Translate(160,100, 0);
	model_view *= Scale (150, 200, 250);
	drawStone();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Translate(-160,100, 0);
	model_view *= Scale (150, 200, 250);
	drawStone();
	model_view = mvstack.pop();

	if (TIME >= 7 && TIME < 8)
	{
		mvstack.push(model_view);
		model_view *= Translate (0, 10, -20);
		model_view *= Scale(1.2, 1.6, 1.2);
		model_view *= Translate (0, 66.5- TIME*9.5, -35 + TIME*5);
		model_view *= RotateX((180*7)-TIME*180);
		drawBanana1();
		model_view = mvstack.pop();
	}
	else if (TIME >= 8)
	{
		mvstack.push(model_view);
		model_view *= Translate (0, 0.5, -16.8);
		model_view *= Scale (1.2, 1.6, 1.2);
		model_view *= RotateX(180);
		drawBanana1();
		model_view = mvstack.pop();
	}
}
Example #3
0
// 绘制棋子
void Board::drawStone(QPainter &p)
{
    for (int i = 0; i < 32; ++i) {
        drawStone(p, i);
    }
}