Easy2d 文档教程之基础类型 下
KeyCode 键值
类定义
包含了所有支持的按键
// 键盘键值
struct KeyCode
{
enum Value : int
{
Unknown = 0,
Up = VK_UP,
Left = VK_LEFT,
Right = VK_RIGHT,
Down = VK_DOWN,
Enter = VK_RETURN,
Space = VK_SPACE,
Esc = VK_ESCAPE,
Ctrl = VK_CONTROL,
Shift = VK_SHIFT,
Alt = VK_MENU,
Tab = VK_TAB,
Delete = VK_DELETE,
Back = VK_BACK,
A = 0x41,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
Num0 = 0x30,
Num1,
Num2,
Num3,
Num4,
Num5,
Num6,
Num7,
Num8,
Num9,
Numpad0 = VK_NUMPAD0,
Numpad1,
Numpad2,
Numpad3,
Numpad4,
Numpad5,
Numpad6,
Numpad7,
Numpad8,
Numpad9,
F1 = VK_F1,
F2,
F3,
F4,
F5,
F6,
F7,
F8,
F9,
F10,
F11,
F12,
};
};
支持按键
所有英文字母,
所有数字按键,
F1
至F12
,
方向键
Enter
、Space
、Esc
、Ctrl
、Shift
、Alt
、Tab
、Delete
、Backspace
键。
注意:Numpad
和Num
键是不同的,在官方文档中,它们被释义成数字小键盘和数字键
用法
在键名前加上KeyCode::
以表示一个按键。
实例:
// 字母 A 键
KeyCode::A
// 字母 Z 键
KeyCode::Z
// 数字 0 键
KeyCode::Num0
// 数字 9 键
KeyCode::Num9
// 数字小键盘 0 键
KeyCode::Numpad0
// 数字小键盘 9 键
KeyCode::Numpad9
// 回车
KeyCode::Enter
// 退出键
KeyCode::Esc
// 上下左右键
KeyCode::Up
KeyCode::Down
KeyCode::Left
KeyCode::Right
// 空格
KeyCode::Space
Input 按键检测
此处建议初学者先跳过,因为涉及Input
类。
检测按键是否按下:
Input::isDown(KeyCode::A);
此函数返回一个Bool
值,以下代码为实例。
while (1){
if (Input::isDown(KeyCode::A){
//按下A
}else{
//没按下A
}
}
MouseCode 鼠标键值
类定义
// 鼠标键值
struct MouseCode
{
enum Value : int
{
Left, /* 鼠标左键 */
Right, /* 鼠标右键 */
Middle /* 鼠标中键 */
};
};
支持按键
MouseCode
支持左、中、右鼠标三键,也可以通过Value
定义
用法
左、中、右
MouseCode::Left //左
MouseCode::Right //右
MouseCode::Middle //中
Value定义
MouseCode::Value(0);//左
MouseCode::Value(1);//右
MouseCode::Value(2);//中
Input 按键检测
此处建议初学者先跳过,因为涉及Input
类。
检测鼠标键 是否按下:
Input::isDown(MouseCode::Middle);
此函数返回一个Bool
值,以下代码为实例。
while (1){
if (Input::isDown(MouseCode::Middle){
//按下中键
}else{
//没按下中键
}
}
Font 字体
类定义
// 字体
class Font
{
public:
String family; // 字体族
float size; // 字号
UINT weight; // 粗细值
bool italic; // 斜体
public:
// 字体粗细值
enum Weight : UINT
{
Thin = 100,
ExtraLight = 200,
Light = 300,
Normal = 400,
Medium = 500,
Bold = 700,
ExtraBold = 800,
Black = 900,
ExtraBlack = 950
};
public:
Font();
explicit Font(
const String& family,
float size = 22,
UINT weight = Font::Weight::Normal,
bool italic = false
);
};
构造新字体
如果你想设置 Text
的字体、粗细、字号等等属性,就需要为它创建一个 Font
字体 。
// 创建一个字体,宋体、字号40、粗体、斜体
Font font = Font();
font.family = L"宋体";
font.size = 40;
font.weight = Font::Weight::Bold;
font.italic = true;
第一行代码:创建一个新的Font
字体
第二行代码:字体族String
,可以是宋体,也可以是楷体。
第三行代码:字号float
,填写一个小数,表示字号。
第四行代码:粗细值UNIT
,填写一个Weight UNIT
第五行代码:斜体bool
,填写true
或false
。
如果你没有描述一个Font
字体的后三个参数,那程序默认会
explicit Font(
const String& family,//必填
float size = 22,//默认22
UINT weight = Font::Weight::Normal,//默认正常
bool italic = false//默认不启用斜体
);
以上代码也可以整合为:
// 也可以用下面的代码创建字体,效果和上面一样
Font font = Font(L"宋体", 40, Font::Weight::Bold, true);
字体粗细值 Weight 值
原型
// 字体粗细值
enum Weight : UINT
{
Thin = 100,
ExtraLight = 200,
Light = 300,
Normal = 400,
Medium = 500,
Bold = 700,
ExtraBold = 800,
Black = 900,
ExtraBlack = 950
};
Weight
默认为Normal
在标识符前加上Font::Weight::
以表示一个字体的粗细值
例子:
Font::Weight::Normal
Font::Weight::Thin
也可以用UNIT
类型的数来表示
例子
typedef unsigned int UNIT;
UNIT unit = Font::Weight::Value(100);//等同Font::Weight::Thin
结束语
其实真正的基础类型就这么多,整合上章的内容,Image
、Listener
和Function
我们在这一篇的文档教程中独立讲述,因为其中涉及太多繁杂的内容,对初学者不友好。
希望大家能订阅我的专栏,文档教程我会每周更新4~5篇,多谢大家的鼓励!