2017-10-12 23:34:13 +08:00
|
|
|
|
#pragma once
|
2018-04-21 21:24:46 +08:00
|
|
|
|
#include "e2dmacros.h"
|
|
|
|
|
|
#include "e2dcommon.h"
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2017-10-13 11:42:36 +08:00
|
|
|
|
|
2017-10-12 23:34:13 +08:00
|
|
|
|
// Base Classes
|
|
|
|
|
|
|
|
|
|
|
|
namespace e2d
|
|
|
|
|
|
{
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
|
2018-02-07 16:37:12 +08:00
|
|
|
|
class Game
|
2017-10-12 23:34:13 +08:00
|
|
|
|
{
|
|
|
|
|
|
public:
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ϸ
|
2017-12-08 19:50:59 +08:00
|
|
|
|
static bool init(
|
2018-05-14 00:57:16 +08:00
|
|
|
|
const String& name = L"", /* <20><>ϷӢ<CFB7><D3A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
const String& mutexName = L"" /* <20><><EFBFBD>̻<EFBFBD><CCBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
2017-10-12 23:34:13 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ
|
2018-04-21 00:46:26 +08:00
|
|
|
|
static int start(
|
2018-05-14 00:57:16 +08:00
|
|
|
|
bool autoRelease = true /* <20><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>ʱ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ */
|
2018-04-21 00:46:26 +08:00
|
|
|
|
);
|
2017-10-17 21:22:25 +08:00
|
|
|
|
|
2017-10-20 00:59:26 +08:00
|
|
|
|
// <20><>ͣ<EFBFBD><CDA3>Ϸ
|
|
|
|
|
|
static void pause();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2017-10-20 00:59:26 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ
|
|
|
|
|
|
static void resume();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2017-12-08 19:50:59 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ
|
|
|
|
|
|
static void quit();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7>Դ
|
2018-04-19 17:18:44 +08:00
|
|
|
|
static void destroy();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-05-10 18:18:02 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ʱ
|
|
|
|
|
|
static void reset();
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><>Ϸ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ͣ
|
|
|
|
|
|
static bool isPaused();
|
2017-10-20 00:59:26 +08:00
|
|
|
|
|
2018-04-13 00:39:27 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|
|
|
|
|
static String getName();
|
2018-01-30 16:45:38 +08:00
|
|
|
|
};
|
2017-10-20 00:59:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD>ƴ<EFBFBD><C6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2018-02-07 16:37:12 +08:00
|
|
|
|
class Window
|
2018-01-30 16:45:38 +08:00
|
|
|
|
{
|
2018-02-07 16:37:12 +08:00
|
|
|
|
friend Game;
|
2017-10-20 00:59:26 +08:00
|
|
|
|
|
2018-05-17 15:22:14 +08:00
|
|
|
|
public:
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
enum class Cursor : int
|
|
|
|
|
|
{
|
|
|
|
|
|
NORMAL, /* Ĭ<><C4AC>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʽ */
|
|
|
|
|
|
HAND, /* <20><>״ָ<D7B4><D6B8> */
|
|
|
|
|
|
NO, /* <20><>ָֹ<D6B9><D6B8> */
|
|
|
|
|
|
WAIT, /* ɳ©ָ<C2A9><D6B8> */
|
|
|
|
|
|
ARROW_WAIT /* Ĭ<><C4AC>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Сɳ© */
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
public:
|
2018-04-13 00:39:27 +08:00
|
|
|
|
// <20>Ĵ<DEB8><C4B4>ڴ<EFBFBD>С
|
|
|
|
|
|
static void setSize(
|
2018-05-07 15:48:06 +08:00
|
|
|
|
int width, /* <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> */
|
|
|
|
|
|
int height /* <20><><EFBFBD>ڸ߶<DAB8> */
|
2018-04-13 00:39:27 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ô<EFBFBD><C3B4>ڱ<EFBFBD><DAB1><EFBFBD>
|
|
|
|
|
|
static void setTitle(
|
2018-05-07 15:48:06 +08:00
|
|
|
|
const String& title /* <20><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD> */
|
2018-04-13 00:39:27 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
static void setIcon(
|
2018-05-07 15:48:06 +08:00
|
|
|
|
int iconID
|
2018-04-13 00:39:27 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
2018-05-07 17:03:59 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
static void setCursor(
|
|
|
|
|
|
Cursor cursor
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-10-20 00:59:26 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>
|
2018-02-07 16:37:12 +08:00
|
|
|
|
static String getTitle();
|
2017-10-20 00:59:26 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD>
|
2018-02-27 21:07:43 +08:00
|
|
|
|
static double getWidth();
|
2017-10-20 00:59:26 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڸ߶<DAB8>
|
2018-02-27 21:07:43 +08:00
|
|
|
|
static double getHeight();
|
2017-10-20 00:59:26 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڴ<EFBFBD>С
|
2018-02-07 16:37:12 +08:00
|
|
|
|
static Size getSize();
|
2017-11-03 12:51:01 +08:00
|
|
|
|
|
2017-10-17 23:50:02 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>
|
|
|
|
|
|
static HWND getHWnd();
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD>̨
|
|
|
|
|
|
static void showConsole(
|
2018-05-03 22:21:01 +08:00
|
|
|
|
bool show
|
2017-10-12 23:34:13 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>뷨
|
|
|
|
|
|
static void setTypewritingEnable(
|
2018-05-07 15:48:06 +08:00
|
|
|
|
bool enable
|
2017-10-17 21:22:25 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
2018-05-10 18:18:02 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
2018-05-14 00:57:16 +08:00
|
|
|
|
static void info(
|
2018-05-10 18:18:02 +08:00
|
|
|
|
const String& text, /* <20><><EFBFBD><EFBFBD> */
|
|
|
|
|
|
const String& title = L"Prompt" /* <20><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD> */
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洰<EFBFBD><E6B4B0>
|
|
|
|
|
|
static void warning(
|
|
|
|
|
|
const String& text, /* <20><><EFBFBD><EFBFBD> */
|
|
|
|
|
|
const String& title = L"Warning" /* <20><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD> */
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void error(
|
|
|
|
|
|
const String& text, /* <20><><EFBFBD><EFBFBD> */
|
|
|
|
|
|
const String& title = L"Error" /* <20><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD> */
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
private:
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2018-04-13 00:39:27 +08:00
|
|
|
|
static bool __init();
|
2018-03-01 00:19:09 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void __uninit();
|
2017-12-08 19:50:59 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
static void __poll();
|
2017-12-08 19:50:59 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// Win32 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
|
|
|
|
|
};
|
2017-12-08 19:50:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸʱ<CFB7><CAB1>
|
2018-02-07 16:37:12 +08:00
|
|
|
|
class Time
|
2018-01-30 16:45:38 +08:00
|
|
|
|
{
|
2018-02-07 16:37:12 +08:00
|
|
|
|
friend Game;
|
2018-01-30 16:45:38 +08:00
|
|
|
|
|
|
|
|
|
|
public:
|
2018-04-24 13:28:21 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>һ֡<D2BB>뵱ǰ֡<C7B0><D6A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룩
|
|
|
|
|
|
static double getDeltaTime();
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>һ֡<D2BB>뵱ǰ֡<C7B0><D6A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룩
|
2018-04-24 13:28:21 +08:00
|
|
|
|
static unsigned int getDeltaTimeMilliseconds();
|
2017-12-08 19:50:59 +08:00
|
|
|
|
|
2018-04-24 13:28:21 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>Ϸ<EFBFBD><CFB7>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>룩
|
2018-02-27 21:07:43 +08:00
|
|
|
|
static double getTotalTime();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-04-24 13:28:21 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>Ϸ<EFBFBD><CFB7>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룩
|
|
|
|
|
|
static unsigned int getTotalTimeMilliseconds();
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
private:
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
2018-02-01 22:07:44 +08:00
|
|
|
|
static bool __init();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void __uninit();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-02-04 21:24:27 +08:00
|
|
|
|
// <20>Ƿ<EFBFBD><C7B7>ﵽ<EFBFBD><EFB5BD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
static bool __isReady();
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD>µ<EFBFBD>ǰʱ<C7B0><CAB1>
|
|
|
|
|
|
static void __updateNow();
|
2017-12-08 15:37:52 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
static void __updateLast();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-05-10 18:18:02 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
static void __reset();
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|
|
|
|
|
static void __sleep();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD>Ƽ<EFBFBD><C6BC>̺<EFBFBD><CCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2018-02-07 16:37:12 +08:00
|
|
|
|
class Input
|
2017-10-12 23:34:13 +08:00
|
|
|
|
{
|
2018-02-07 16:37:12 +08:00
|
|
|
|
friend Game;
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-05-17 15:22:14 +08:00
|
|
|
|
public:
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
enum class MouseCode : int
|
|
|
|
|
|
{
|
|
|
|
|
|
LEFT, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
RIGHT, /* <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD> */
|
|
|
|
|
|
MIDDLE /* <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD> */
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>̼<EFBFBD>ֵ
|
|
|
|
|
|
enum class KeyCode : int
|
|
|
|
|
|
{
|
|
|
|
|
|
UP = 0xC8,
|
|
|
|
|
|
LEFT = 0xCB,
|
|
|
|
|
|
RIGHT = 0xCD,
|
|
|
|
|
|
DOWN = 0xD0,
|
|
|
|
|
|
ENTER = 0x1C,
|
|
|
|
|
|
SPACE = 0x39,
|
|
|
|
|
|
ESC = 0x01,
|
|
|
|
|
|
BACK = 0x0E,
|
|
|
|
|
|
TAB = 0x0F,
|
|
|
|
|
|
PAUSE = 0xC5,
|
|
|
|
|
|
Q = 0x10,
|
|
|
|
|
|
W = 0x11,
|
|
|
|
|
|
E = 0x12,
|
|
|
|
|
|
R = 0x13,
|
|
|
|
|
|
T = 0x14,
|
|
|
|
|
|
Y = 0x15,
|
|
|
|
|
|
U = 0x16,
|
|
|
|
|
|
I = 0x17,
|
|
|
|
|
|
O = 0x18,
|
|
|
|
|
|
P = 0x19,
|
|
|
|
|
|
A = 0x1E,
|
|
|
|
|
|
S = 0x1F,
|
|
|
|
|
|
D = 0x20,
|
|
|
|
|
|
F = 0x21,
|
|
|
|
|
|
G = 0x22,
|
|
|
|
|
|
H = 0x23,
|
|
|
|
|
|
J = 0x24,
|
|
|
|
|
|
K = 0x25,
|
|
|
|
|
|
L = 0x26,
|
|
|
|
|
|
Z = 0x2C,
|
|
|
|
|
|
X = 0x2D,
|
|
|
|
|
|
C = 0x2E,
|
|
|
|
|
|
V = 0x2F,
|
|
|
|
|
|
B = 0x30,
|
|
|
|
|
|
N = 0x31,
|
|
|
|
|
|
M = 0x32,
|
|
|
|
|
|
NUM1 = 0x02,
|
|
|
|
|
|
NUM2 = 0x03,
|
|
|
|
|
|
NUM3 = 0x04,
|
|
|
|
|
|
NUM4 = 0x05,
|
|
|
|
|
|
NUM5 = 0x06,
|
|
|
|
|
|
NUM6 = 0x07,
|
|
|
|
|
|
NUM7 = 0x08,
|
|
|
|
|
|
NUM8 = 0x09,
|
|
|
|
|
|
NUM9 = 0x0A,
|
|
|
|
|
|
NUM0 = 0x0B,
|
|
|
|
|
|
NUMPAD7 = 0x47,
|
|
|
|
|
|
NUMPAD8 = 0x48,
|
|
|
|
|
|
NUMPAD9 = 0x49,
|
|
|
|
|
|
NUMPAD4 = 0x4B,
|
|
|
|
|
|
NUMPAD5 = 0x4C,
|
|
|
|
|
|
NUMPAD6 = 0x4D,
|
|
|
|
|
|
NUMPAD1 = 0x4F,
|
|
|
|
|
|
NUMPAD2 = 0x50,
|
|
|
|
|
|
NUMPAD3 = 0x51,
|
|
|
|
|
|
NUMPAD0 = 0x52
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2017-10-13 14:34:33 +08:00
|
|
|
|
public:
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static bool isKeyDown(
|
2018-04-24 21:22:34 +08:00
|
|
|
|
KeyCode key
|
2018-01-30 16:45:38 +08:00
|
|
|
|
);
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>Ƿ<C7B7><F1B1BBB5><EFBFBD>
|
|
|
|
|
|
static bool isKeyPress(
|
2018-04-24 21:22:34 +08:00
|
|
|
|
KeyCode key
|
2018-01-30 16:45:38 +08:00
|
|
|
|
);
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>
|
|
|
|
|
|
static bool isKeyRelease(
|
2018-04-24 21:22:34 +08:00
|
|
|
|
KeyCode key
|
2018-01-30 16:45:38 +08:00
|
|
|
|
);
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-05-17 15:22:14 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static bool isMouseDown(
|
|
|
|
|
|
MouseCode code
|
|
|
|
|
|
);
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-05-17 15:22:14 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4><EFBFBD>Ƿ<C7B7><F1B1BBB5><EFBFBD>
|
|
|
|
|
|
static bool isMousePress(
|
|
|
|
|
|
MouseCode code
|
|
|
|
|
|
);
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-05-17 15:22:14 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>
|
|
|
|
|
|
static bool isMouseRelease(
|
|
|
|
|
|
MouseCode code
|
|
|
|
|
|
);
|
2017-10-14 18:43:32 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
2018-02-27 21:07:43 +08:00
|
|
|
|
static double getMouseX();
|
2017-10-14 18:43:32 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
2018-02-27 21:07:43 +08:00
|
|
|
|
static double getMouseY();
|
2017-10-20 00:59:26 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
2018-02-07 16:37:12 +08:00
|
|
|
|
static Point getMousePos();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2018-02-27 21:07:43 +08:00
|
|
|
|
static double getMouseDeltaX();
|
2018-01-30 16:45:38 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2018-02-27 21:07:43 +08:00
|
|
|
|
static double getMouseDeltaY();
|
2018-01-30 16:45:38 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD>ᣨ<EFBFBD><E1A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2018-02-27 21:07:43 +08:00
|
|
|
|
static double getMouseDeltaZ();
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
private:
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC> DirectInput <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸
|
2018-02-01 22:07:44 +08:00
|
|
|
|
static bool __init();
|
2018-01-30 16:45:38 +08:00
|
|
|
|
|
2018-03-11 23:56:40 +08:00
|
|
|
|
// ˢ<><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
static void __update();
|
|
|
|
|
|
|
|
|
|
|
|
// ˢ<><CBA2><EFBFBD>豸״̬
|
2018-01-30 16:45:38 +08:00
|
|
|
|
static void __updateDeviceState();
|
|
|
|
|
|
|
|
|
|
|
|
// ж<><D0B6> DirectInput
|
|
|
|
|
|
static void __uninit();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>Ⱦ<EFBFBD><C8BE>
|
2018-02-07 16:37:12 +08:00
|
|
|
|
class Renderer
|
2018-01-30 16:45:38 +08:00
|
|
|
|
{
|
2018-02-07 16:37:12 +08:00
|
|
|
|
friend Game;
|
|
|
|
|
|
friend Window;
|
2018-01-30 16:45:38 +08:00
|
|
|
|
|
|
|
|
|
|
public:
|
2018-04-22 13:15:57 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
static Color getBackgroundColor();
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20>ı<DEB8><C4B1><EFBFBD>ɫ
|
|
|
|
|
|
static void setBackgroundColor(
|
2018-04-22 13:15:57 +08:00
|
|
|
|
Color color
|
2017-10-29 23:48:32 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
2018-04-17 11:41:33 +08:00
|
|
|
|
// <20><>ʾ FPS
|
|
|
|
|
|
static void showFps(
|
|
|
|
|
|
bool show = true
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2018-04-21 23:09:59 +08:00
|
|
|
|
// <20><>ȡϵͳ DPI <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
static float getDpiScaleX();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡϵͳ DPI <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
static float getDpiScaleY();
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// <20><>ȡ ID2D1Factory <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
static ID2D1Factory * getID2D1Factory();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ ID2D1HwndRenderTarget <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
static ID2D1HwndRenderTarget * getRenderTarget();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ ID2D1SolidColorBrush <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
static ID2D1SolidColorBrush * getSolidColorBrush();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ IWICImagingFactory <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
static IWICImagingFactory * getIWICImagingFactory();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ IDWriteFactory <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
static IDWriteFactory * getIDWriteFactory();
|
|
|
|
|
|
|
2018-04-21 23:09:59 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE>
|
|
|
|
|
|
static CustomTextRenderer * getCustomTextRenderer();
|
|
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
private:
|
|
|
|
|
|
// <20><>Ⱦ<EFBFBD><C8BE>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void __render();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><EFBFBD><DEB9><EFBFBD>Դ
|
|
|
|
|
|
static bool __createDeviceIndependentResources();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|
|
|
|
|
static bool __createDeviceResources();
|
|
|
|
|
|
|
|
|
|
|
|
// ɾ<><C9BE><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|
|
|
|
|
static void __discardDeviceResources();
|
2017-10-14 01:07:34 +08:00
|
|
|
|
|
2018-01-30 16:45:38 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|
|
|
|
|
static void __discardResources();
|
2017-10-12 23:34:13 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
}
|