2018-10-03 22:02:46 +08:00
|
|
|
|
// Copyright (c) 2016-2018 Easy2D - Nomango
|
|
|
|
|
|
//
|
|
|
|
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
|
|
|
|
// in the Software without restriction, including without limitation the rights
|
|
|
|
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
|
|
|
|
// furnished to do so, subject to the following conditions:
|
|
|
|
|
|
//
|
|
|
|
|
|
// The above copyright notice and this permission notice shall be included in
|
|
|
|
|
|
// all copies or substantial portions of the Software.
|
|
|
|
|
|
//
|
|
|
|
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
|
|
|
// THE SOFTWARE.
|
|
|
|
|
|
|
2018-10-17 00:16:26 +08:00
|
|
|
|
#ifndef __E2D_MODULE_H__
|
|
|
|
|
|
#define __E2D_MODULE_H__
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-06 23:26:32 +08:00
|
|
|
|
#include "e2dobject.h"
|
2018-09-05 13:17:07 +08:00
|
|
|
|
#include "e2dtransition.h"
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
2017-10-13 11:42:36 +08:00
|
|
|
|
|
2018-10-16 14:13:15 +08:00
|
|
|
|
namespace easy2d
|
2017-10-12 23:34:13 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// ͼ<><CDBC><EFBFBD>豸
|
|
|
|
|
|
class Graphics
|
2018-05-17 15:22:14 +08:00
|
|
|
|
{
|
2018-09-05 13:38:30 +08:00
|
|
|
|
public:
|
2018-10-03 18:04:04 +08:00
|
|
|
|
Graphics(
|
|
|
|
|
|
HWND hwnd
|
2018-09-05 13:38:30 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
~Graphics();
|
2018-09-05 13:38:30 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><>ʼ<EFBFBD><CABC>Ⱦ
|
|
|
|
|
|
void BeginDraw();
|
2018-05-17 15:22:14 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ
|
|
|
|
|
|
void EndDraw();
|
2018-07-17 00:35:27 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
void DrawDebugInfo();
|
2018-07-03 18:16:26 +08:00
|
|
|
|
|
2018-09-07 17:26:21 +08:00
|
|
|
|
// <20><>ȡ ID2D1Factory <20><><EFBFBD><EFBFBD>
|
2018-10-17 00:49:49 +08:00
|
|
|
|
ID2D1Factory* GetFactory() const;
|
2018-09-07 17:26:21 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ IWICImagingFactory <20><><EFBFBD><EFBFBD>
|
2018-10-17 00:49:49 +08:00
|
|
|
|
IWICImagingFactory* GetImagingFactory() const;
|
2018-09-07 17:26:21 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ IDWriteFactory <20><><EFBFBD><EFBFBD>
|
2018-10-17 00:49:49 +08:00
|
|
|
|
IDWriteFactory* GetWriteFactory() const;
|
2018-09-07 17:26:21 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ ID2D1HwndRenderTarget <20><><EFBFBD><EFBFBD>
|
2018-10-17 00:49:49 +08:00
|
|
|
|
ID2D1HwndRenderTarget* GetRenderTarget() const;
|
2018-09-07 17:26:21 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ ID2D1SolidColorBrush <20><><EFBFBD><EFBFBD>
|
2018-10-17 00:49:49 +08:00
|
|
|
|
ID2D1SolidColorBrush* GetSolidBrush() const;
|
2018-09-07 17:26:21 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD>
|
2018-10-17 00:49:49 +08:00
|
|
|
|
IDWriteTextRenderer* GetTextRender() const;
|
2018-08-19 15:11:20 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><>ȡ Miter <20><>ʽ<EFBFBD><CABD> ID2D1StrokeStyle
|
2018-10-17 00:49:49 +08:00
|
|
|
|
ID2D1StrokeStyle* GetMiterStrokeStyle();
|
2018-07-03 18:16:26 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><>ȡ Bevel <20><>ʽ<EFBFBD><CABD> ID2D1StrokeStyle
|
2018-10-17 00:49:49 +08:00
|
|
|
|
ID2D1StrokeStyle* GetBevelStrokeStyle();
|
2018-08-15 23:30:23 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><>ȡ Round <20><>ʽ<EFBFBD><CABD> ID2D1StrokeStyle
|
2018-10-17 00:49:49 +08:00
|
|
|
|
ID2D1StrokeStyle* GetRoundStrokeStyle();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE>ʽ
|
|
|
|
|
|
void SetTextRendererStyle(
|
|
|
|
|
|
const Color& fill_color,
|
|
|
|
|
|
bool has_outline,
|
|
|
|
|
|
const Color& outline_color,
|
|
|
|
|
|
float outline_width,
|
|
|
|
|
|
Stroke outline_stroke
|
|
|
|
|
|
);
|
2018-08-15 23:30:23 +08:00
|
|
|
|
|
2018-10-06 11:15:32 +08:00
|
|
|
|
// <20><>ȡ DPI
|
|
|
|
|
|
static float GetDpi();
|
|
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
protected:
|
|
|
|
|
|
D2D1_COLOR_F clear_color_;
|
2018-10-03 18:04:04 +08:00
|
|
|
|
ID2D1Factory* factory_;
|
|
|
|
|
|
IWICImagingFactory* imaging_factory_;
|
|
|
|
|
|
IDWriteFactory* write_factory_;
|
|
|
|
|
|
ID2D1StrokeStyle* miter_stroke_style_;
|
|
|
|
|
|
ID2D1StrokeStyle* bevel_stroke_style_;
|
|
|
|
|
|
ID2D1StrokeStyle* round_stroke_style_;
|
2018-10-17 00:49:49 +08:00
|
|
|
|
IDWriteTextRenderer* text_renderer_;
|
2018-09-05 13:38:30 +08:00
|
|
|
|
IDWriteTextFormat* fps_text_format_;
|
|
|
|
|
|
IDWriteTextLayout* fps_text_layout_;
|
|
|
|
|
|
ID2D1SolidColorBrush* solid_brush_;
|
|
|
|
|
|
ID2D1HwndRenderTarget* render_target_;
|
|
|
|
|
|
};
|
2018-07-03 18:16:26 +08:00
|
|
|
|
|
2018-08-15 00:06:03 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>豸
|
|
|
|
|
|
class Input
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
2018-10-03 18:04:04 +08:00
|
|
|
|
Input(
|
|
|
|
|
|
HWND hwnd
|
|
|
|
|
|
);
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
~Input();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool IsDown(
|
|
|
|
|
|
KeyCode key
|
|
|
|
|
|
);
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool IsDown(
|
|
|
|
|
|
MouseCode code
|
|
|
|
|
|
);
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
float GetMouseX();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
float GetMouseY();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
Point GetMousePos();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
float GetMouseDeltaX();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
float GetMouseDeltaY();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +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>
|
|
|
|
|
|
float GetMouseDeltaZ();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// ˢ<><CBA2><EFBFBD>豸״̬
|
|
|
|
|
|
void Flush();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
protected:
|
2018-09-07 17:56:03 +08:00
|
|
|
|
IDirectInput8W * direct_input_;
|
2018-09-05 13:38:30 +08:00
|
|
|
|
IDirectInputDevice8W* keyboard_device_;
|
|
|
|
|
|
IDirectInputDevice8W* mouse_device_;
|
|
|
|
|
|
DIMOUSESTATE mouse_state_;
|
|
|
|
|
|
char key_buffer_[256];
|
|
|
|
|
|
};
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><>Ƶ<EFBFBD>豸
|
|
|
|
|
|
class Audio
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
2018-10-03 18:04:04 +08:00
|
|
|
|
Audio();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
~Audio();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-10-15 20:16:08 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>豸
|
|
|
|
|
|
void Open();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-10-15 20:16:08 +08:00
|
|
|
|
// <20>ر<EFBFBD><D8B1>豸
|
|
|
|
|
|
void Close();
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-10-15 20:16:08 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|
|
|
|
|
HRESULT CreateVoice(
|
|
|
|
|
|
IXAudio2SourceVoice ** voice,
|
|
|
|
|
|
WAVEFORMATEX * wfx
|
2018-10-03 18:04:04 +08:00
|
|
|
|
);
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
protected:
|
2018-10-15 20:16:08 +08:00
|
|
|
|
IXAudio2 * x_audio2_;
|
|
|
|
|
|
IXAudio2MasteringVoice* mastering_voice_;
|
2018-09-30 14:54:43 +08:00
|
|
|
|
};
|
2018-09-02 14:30:48 +08:00
|
|
|
|
|
2018-09-30 14:54:43 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20>豸
|
|
|
|
|
|
class Device
|
2018-09-30 14:54:43 +08:00
|
|
|
|
{
|
2018-10-03 18:04:04 +08:00
|
|
|
|
public:
|
|
|
|
|
|
// <20><>ȡͼ<C8A1><CDBC><EFBFBD>豸
|
|
|
|
|
|
static Graphics * GetGraphics();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>豸
|
|
|
|
|
|
static Input * GetInput();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>Ƶ<EFBFBD>豸
|
|
|
|
|
|
static Audio * GetAudio();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
static void Init(
|
|
|
|
|
|
HWND hwnd
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|
|
|
|
|
static void Destroy();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-30 14:54:43 +08:00
|
|
|
|
// <20><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2018-09-05 13:38:30 +08:00
|
|
|
|
class Game
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
2018-10-18 00:17:27 +08:00
|
|
|
|
// <20><>ʼʱ
|
|
|
|
|
|
virtual void OnStart() = 0;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ʱ
|
|
|
|
|
|
virtual void OnUpdate(float dt) {}
|
2018-08-15 23:30:23 +08:00
|
|
|
|
|
2018-10-18 00:17:27 +08:00
|
|
|
|
// <20>˳<EFBFBD>ʱ
|
|
|
|
|
|
virtual void OnExit() {}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ڹر<DAB9>ʱ
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> false <20><><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD>ڹر<DAB9>
|
|
|
|
|
|
virtual bool OnClose() { return true; }
|
2018-10-06 09:45:28 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>
|
2018-10-18 00:17:27 +08:00
|
|
|
|
void Run();
|
2018-08-15 00:06:03 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>
|
2018-09-05 13:38:30 +08:00
|
|
|
|
void Quit();
|
2018-08-15 00:06:03 +08:00
|
|
|
|
|
2018-10-18 00:17:27 +08:00
|
|
|
|
// <20><><EFBFBD>ô<EFBFBD><C3B4>ڴ<EFBFBD>С
|
2018-09-30 14:54:43 +08:00
|
|
|
|
void SetSize(
|
2018-10-18 00:17:27 +08:00
|
|
|
|
int width, /* <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> */
|
|
|
|
|
|
int height /* <20><><EFBFBD>ڸ߶<DAB8> */
|
2018-09-30 14:54:43 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SetTitle(
|
|
|
|
|
|
const String& title /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
void SetIcon(
|
|
|
|
|
|
int resource_id /* ͼ<><CDBC><EFBFBD><EFBFBD>Դ ID */
|
|
|
|
|
|
);
|
2018-08-15 00:06:03 +08:00
|
|
|
|
|
2018-10-18 00:17:27 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
|
void SetDebugMode(
|
|
|
|
|
|
bool enabled
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
const String& GetTitle() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int GetWidth() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>
|
|
|
|
|
|
int GetHeight() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
|
Size GetSize() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>
|
|
|
|
|
|
HWND GetHWnd() const;
|
|
|
|
|
|
|
2018-09-10 15:28:19 +08:00
|
|
|
|
// <20>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>
|
2018-09-05 13:38:30 +08:00
|
|
|
|
void EnterScene(
|
2018-09-10 15:28:19 +08:00
|
|
|
|
Scene * scene, /* <20><><EFBFBD><EFBFBD> */
|
|
|
|
|
|
Transition * transition = nullptr /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
2018-09-05 13:38:30 +08:00
|
|
|
|
);
|
2018-08-15 00:06:03 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|
|
|
|
|
Scene * GetCurrentScene();
|
2018-08-15 00:06:03 +08:00
|
|
|
|
|
2018-10-03 18:04:04 +08:00
|
|
|
|
// <20><>ȡʵ<C8A1><CAB5>
|
|
|
|
|
|
static Game * GetInstance();
|
|
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
protected:
|
|
|
|
|
|
Game();
|
2018-08-15 00:06:03 +08:00
|
|
|
|
|
2018-09-05 13:38:30 +08:00
|
|
|
|
~Game();
|
2018-08-15 00:06:03 +08:00
|
|
|
|
|
2018-10-18 00:17:27 +08:00
|
|
|
|
E2D_DISABLE_COPY(Game);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
2018-09-30 14:54:43 +08:00
|
|
|
|
// <20><>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
void Init();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ݿͻ<DDBF><CDBB><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
|
Rect Locate(
|
|
|
|
|
|
int width,
|
|
|
|
|
|
int height
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2018-10-18 00:17:27 +08:00
|
|
|
|
// <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool IsTransitioning() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>³<EFBFBD><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void UpdateScene(
|
|
|
|
|
|
float dt
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void DrawScene();
|
|
|
|
|
|
|
2018-09-30 14:54:43 +08:00
|
|
|
|
// Win32 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static LRESULT CALLBACK WndProc(
|
|
|
|
|
|
HWND hwnd,
|
|
|
|
|
|
UINT msg,
|
|
|
|
|
|
WPARAM w_param,
|
|
|
|
|
|
LPARAM l_param
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2018-10-18 00:17:27 +08:00
|
|
|
|
private:
|
2018-09-30 14:54:43 +08:00
|
|
|
|
HWND hwnd_;
|
|
|
|
|
|
String title_;
|
|
|
|
|
|
int width_;
|
|
|
|
|
|
int height_;
|
|
|
|
|
|
int icon_;
|
|
|
|
|
|
bool debug_mode_;
|
|
|
|
|
|
bool quit_;
|
|
|
|
|
|
Scene* curr_scene_;
|
|
|
|
|
|
Scene* next_scene_;
|
|
|
|
|
|
Transition* transition_;
|
2018-09-05 13:38:30 +08:00
|
|
|
|
};
|
2018-05-19 01:10:37 +08:00
|
|
|
|
|
2018-10-17 00:16:26 +08:00
|
|
|
|
} // end of easy2d namespace
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif // __E2D_MODULE_H__
|