Magic_Game/Easy2D/e2dtool.h

174 lines
4.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <e2dbase.h>
namespace easy2d
{
class Action;
class FileUtils
{
public:
// 获取系统的 AppData\Local 路径
static tstring getLocalAppDataPath();
// 获取默认的保存路径
static tstring getDefaultSavePath();
// 保存 int 型的值
static void saveInt(LPCTSTR key, int value);
// 保存 double 型的值
static void saveDouble(LPCTSTR key, double value);
// 保存 字符串 型的值(不要在 Unicode 字符集下保存中文字符)
static void saveString(LPCTSTR key, tstring value);
// 获取 int 型的值(若不存在则返回 default 参数的值)
static int getInt(LPCTSTR key, int default);
// 获取 double 型的值(若不存在则返回 default 参数的值)
static double getDouble(LPCTSTR key, double default);
// 获取 字符串 型的值(若不存在则返回 default 参数的值)
static tstring getString(LPCTSTR key, tstring default);
// 得到文件扩展名(小写)
static tstring getFileExtension(const tstring& filePath);
/**
* 打开保存文件对话框,得到有效保存路径返回 true
* 参数:返回文件路径的字符串,窗口标题,设置扩展名过滤,设置默认扩展名
*/
static bool getSaveFilePath(tstring& path, LPCTSTR title = _T("保存到"), LPCTSTR defExt = NULL);
};
class MusicUtils
{
public:
// 播放背景音乐
static void playBackgroundMusic(tstring pszFilePath, bool bLoop = true);
// 停止背景音乐
static void stopBackgroundMusic(bool bReleaseData = false);
// 暂停背景音乐
static void pauseBackgroundMusic();
// 继续播放背景音乐
static void resumeBackgroundMusic();
// 从头播放背景音乐
static void rewindBackgroundMusic();
// 背景音乐是否正在播放
static bool isBackgroundMusicPlaying();
// 设置背景音乐音量0 ~ 1.0f
static void setBackgroundMusicVolume(float volume);
// 播放音效
static unsigned int playMusic(tstring pszFilePath, bool loop = false);
// 停止音效
static void stopMusic(unsigned int nSoundId);
// 预加载音效
static void preloadMusic(tstring pszFilePath);
// 暂停音效
static void pauseMusic(unsigned int nSoundId);
// 继续播放音效
static void resumeMusic(unsigned int nSoundId);
// 卸载音效
static void unloadMusic(LPCTSTR pszFilePath);
// 设置特定音乐的音量0 ~ 1.0f
static void setVolume(tstring pszFilePath, float volume);
// 暂停所有音乐
static void pauseAllMusics();
// 继续播放所有音乐
static void resumeAllMusics();
// 停止所有音乐
static void stopAllMusics();
// 停止所有音乐,并释放内存
static void end();
// 设置总音量0 ~ 1.0f
static void setVolume(float volume);
};
class Timer
{
friend class App;
public:
Timer(tstring name, UINT ms, const TIMER_CALLBACK & callback);
~Timer();
// 启动定时器
void start();
// 停止定时器
void stop();
// 定时器是否正在运行
bool isRunning();
// 设置间隔时间
void setInterval(UINT ms);
// 设置回调函数
void setCallback(const TIMER_CALLBACK& callback);
// 设置定时器名称
void setName(tstring name);
// 获取定时器间隔时间
UINT getInterval() const;
// 获取定时器名称
tstring getName() const;
// 添加定时器
static void addTimer(Timer * timer);
// 添加定时器
static void addTimer(tstring name, UINT ms, const TIMER_CALLBACK & callback);
// 根据名称获取定时器
static Timer * getTimer(tstring name);
// 启动特定定时器
static bool startTimer(tstring name);
// 停止特定定时器
static bool stopTimer(tstring name);
// 删除特定定时器
static bool delTimer(tstring name);
// 删除所有定时器
static void clearAllTimers();
protected:
bool m_bRunning;
tstring m_sName;
TIMER_CALLBACK m_callback;
LARGE_INTEGER m_nLast;
LARGE_INTEGER m_nAnimationInterval;
UINT m_nMilliSeconds;
private:
static void __exec();
};
class ActionManager
{
friend class App;
friend class Sprite;
public:
// 继续一个特定的动作
static void startAction(Action * action);
// 继续一个特定的动作
static void resumeAction(Action * action);
// 暂停一个特定的动作
static void pauseAction(Action * action);
// 停止一个特定的动作
static void stopAction(Action * action);
// 继续一个 Sprite 的所有动作
static void startSpriteAllActions(Sprite * sprite);
// 继续一个 Sprite 的所有动作
static void resumeSpriteAllActions(Sprite * sprite);
// 暂停一个 Sprite 的所有动作
static void pauseSpriteAllActions(Sprite * sprite);
// 停止一个 Sprite 的所有动作
static void stopSpriteAllActions(Sprite * sprite);
// 继续当前存在的所有动作
static void startAllActions();
// 继续当前存在的所有动作
static void resumeAllActions();
// 暂停当前存在的所有动作
static void pauseAllActions();
// 停止当前存在的所有动作
static void stopAllActions();
private:
static void __exec();
// 将一个动作添加进动作管理器
static void addAction(Action * action);
};
} // End of easy2d namespace