Magic_Game/Easy2D/e2dtool.h

174 lines
4.6 KiB
C
Raw Normal View History

2017-09-27 17:56:28 +08:00
#pragma once
#include <e2dbase.h>
namespace easy2d
{
class Action;
class FileUtils
{
public:
// <20><>ȡϵͳ<CFB5><CDB3> AppData\Local ·<><C2B7>
static tstring getLocalAppDataPath();
// <20><>ȡĬ<C8A1>ϵı<CFB5><C4B1><EFBFBD>·<EFBFBD><C2B7>
static tstring getDefaultSavePath();
// <20><><EFBFBD><EFBFBD> int <20>͵<EFBFBD>ֵ
static void saveInt(LPCTSTR key, int value);
// <20><><EFBFBD><EFBFBD> double <20>͵<EFBFBD>ֵ
static void saveDouble(LPCTSTR key, double value);
// <20><><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD> <20>͵<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA> Unicode <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
static void saveString(LPCTSTR key, tstring value);
// <20><>ȡ int <20>͵<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD> default <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
static int getInt(LPCTSTR key, int default);
// <20><>ȡ double <20>͵<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD> default <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
static double getDouble(LPCTSTR key, double default);
// <20><>ȡ <20>ַ<EFBFBD><D6B7><EFBFBD> <20>͵<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD> default <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
static tstring getString(LPCTSTR key, tstring default);
// <20>õ<EFBFBD><C3B5>ļ<EFBFBD><C4BC><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>Сд<D0A1><D0B4>
static tstring getFileExtension(const tstring& filePath);
/**
* <EFBFBD>򿪱<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>Ի<EFBFBD><EFBFBD>򣬵õ<EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD>
*/
static bool getSaveFilePath(tstring& path, LPCTSTR title = _T("<EFBFBD><EFBFBD><EFBFBD>"), LPCTSTR defExt = NULL);
};
class MusicUtils
{
public:
// <20><><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void playBackgroundMusic(tstring pszFilePath, bool bLoop = true);
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void stopBackgroundMusic(bool bReleaseData = false);
// <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void pauseBackgroundMusic();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void resumeBackgroundMusic();
// <20><>ͷ<EFBFBD><CDB7><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void rewindBackgroundMusic();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
static bool isBackgroundMusicPlaying();
// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 ~ 1.0f
static void setBackgroundMusicVolume(float volume);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
static unsigned int playMusic(tstring pszFilePath, bool loop = false);
// ֹͣ<CDA3><D6B9>Ч
static void stopMusic(unsigned int nSoundId);
// Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
static void preloadMusic(tstring pszFilePath);
// <20><>ͣ<EFBFBD><CDA3>Ч
static void pauseMusic(unsigned int nSoundId);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
static void resumeMusic(unsigned int nSoundId);
// ж<><D0B6><EFBFBD><EFBFBD>Ч
static void unloadMusic(LPCTSTR pszFilePath);
// <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 ~ 1.0f
static void setVolume(tstring pszFilePath, float volume);
// <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void pauseAllMusics();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void resumeAllMusics();
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void stopAllMusics();
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
static void end();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 ~ 1.0f
static void setVolume(float volume);
};
class Timer
{
friend class App;
public:
Timer(tstring name, UINT ms, const TIMER_CALLBACK & callback);
~Timer();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
void start();
// ֹͣ<CDA3><D6B9>ʱ<EFBFBD><CAB1>
void stop();
// <20><>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool isRunning();
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>ʱ<EFBFBD><CAB1>
void setInterval(UINT ms);
// <20><><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
void setCallback(const TIMER_CALLBACK& callback);
// <20><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void setName(tstring name);
// <20><>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
UINT getInterval() const;
// <20><>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tstring getName() const;
// <20><><EFBFBD>Ӷ<EFBFBD>ʱ<EFBFBD><CAB1>
static void addTimer(Timer * timer);
// <20><><EFBFBD>Ӷ<EFBFBD>ʱ<EFBFBD><CAB1>
static void addTimer(tstring name, UINT ms, const TIMER_CALLBACK & callback);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1>
static Timer * getTimer(tstring name);
// <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>ʱ<EFBFBD><CAB1>
static bool startTimer(tstring name);
// ֹͣ<CDA3>ض<EFBFBD><D8B6><EFBFBD>ʱ<EFBFBD><CAB1>
static bool stopTimer(tstring name);
// ɾ<><C9BE><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>ʱ<EFBFBD><CAB1>
static bool delTimer(tstring name);
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><CAB1>
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:
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ض<EFBFBD><D8B6>Ķ<EFBFBD><C4B6><EFBFBD>
static void startAction(Action * action);
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ض<EFBFBD><D8B6>Ķ<EFBFBD><C4B6><EFBFBD>
static void resumeAction(Action * action);
// <20><>ͣһ<CDA3><D2BB><EFBFBD>ض<EFBFBD><D8B6>Ķ<EFBFBD><C4B6><EFBFBD>
static void pauseAction(Action * action);
// ֹͣһ<D6B9><D2BB><EFBFBD>ض<EFBFBD><D8B6>Ķ<EFBFBD><C4B6><EFBFBD>
static void stopAction(Action * action);
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> Sprite <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
static void startSpriteAllActions(Sprite * sprite);
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> Sprite <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
static void resumeSpriteAllActions(Sprite * sprite);
// <20><>ͣһ<CDA3><D2BB> Sprite <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
static void pauseSpriteAllActions(Sprite * sprite);
// ֹͣһ<D6B9><D2BB> Sprite <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
static void stopSpriteAllActions(Sprite * sprite);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
static void startAllActions();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
static void resumeAllActions();
// <20><>ͣ<EFBFBD><CDA3>ǰ<EFBFBD><C7B0><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
static void pauseAllActions();
// ֹͣ<CDA3><D6B9>ǰ<EFBFBD><C7B0><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
static void stopAllActions();
private:
static void __exec();
// <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void addAction(Action * action);
};
} // End of easy2d namespace