174 lines
4.6 KiB
C
174 lines
4.6 KiB
C
|
|
#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
|