-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwindowset.cpp
114 lines (91 loc) · 2.51 KB
/
windowset.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include "windowset.h"
WindowSet::WindowSet()
= default;
WindowSet::~WindowSet()
= default;
void WindowSet::setSize()
{
SMALL_RECT size = { 0, 0, consoleSet.getX(), consoleSet.getY() };
COORD bufferSize = { static_cast<short>(consoleSet.getX() + 1), static_cast<short>(consoleSet.getY() + 1) };
SetConsoleWindowInfo(consoleSet.getHandle(), TRUE, &size);
SetConsoleScreenBufferSize(consoleSet.getHandle(), bufferSize);
}
void WindowSet::setTerminalTittle()
{
SetConsoleTitle("Tetris");
}
void WindowSet::setColor(WORD color)
{
SetConsoleTextAttribute(consoleSet.getHandle(), color);
}
void WindowSet::setFontBig()
{
// 获取当前控制台字体属性
CONSOLE_FONT_INFOEX fI = consoleSet.getFontInfo(); // 获取字体属性
// 字体增大2倍
fI.dwFontSize.X *= 2;
fI.dwFontSize.Y *= 2;
// 设置字体
SetCurrentConsoleFontEx(consoleSet.getHandle(), false, &fI);
}
void WindowSet::setFontSmall()
{
// 获取当前控制台字体属性
CONSOLE_FONT_INFOEX fI = consoleSet.getFontInfo();
// 字体缩小两倍
fI.dwFontSize.X /= 2;
fI.dwFontSize.Y /= 2;
//设置字体
SetCurrentConsoleFontEx(consoleSet.getHandle(), false, &fI);
}
void WindowSet::hideCursor()
{
//获取并设置光标隐藏
CONSOLE_CURSOR_INFO consoleCursorInfo;
consoleCursorInfo.dwSize = 1; // 将光标大小设置为1
consoleCursorInfo.bVisible = FALSE; // 将光标可见设置为false
SetConsoleCursorInfo(consoleSet.getHandle(), &consoleCursorInfo);
}
void WindowSet::setMainTittle()
{
// 获取缓冲区信息
CONSOLE_SCREEN_BUFFER_INFO bI = consoleSet.getBufferInfo();
short cWidth = bI.srWindow.Right - bI.srWindow.Left + 1; // 长度
short cHeight = bI.srWindow.Bottom - bI.srWindow.Top + 1; // 高度
short x = (cWidth - 70) / 2;
short y = (cHeight - 10) / 2;
consoleSet.setCursor(x, y);
std::cout << "Tetris";
consoleSet.setCursor(x - 10, y + 2);
std::cout << "Press Any Key To Start Game!";
iA.cleanScreen(); // 按任意键清屏
}
void WindowSet::drawBoard()
{
// 框
for (int i = 0; i < 26; ++i)
{
consoleSet.setCursor(0, i);
if (i == 0 || i == 25)
{
for (int j = 0; j < 55; ++j)
{
std::cout << "-";
}
}
else
{
std::cout << "|";
consoleSet.setCursor(38, i);
std::cout << "|";
consoleSet.setCursor(54, i);
std::cout << "|";
}
}
// 分数
consoleSet.setCursor(44, 2);
std::cout << "SCORE";
// 下一个图案
consoleSet.setCursor(43, 17);
std::cout << " NEXT";
}