细节调整
This commit is contained in:
parent
2c13083c09
commit
012c7aad50
|
|
@ -122,10 +122,10 @@ e2d::Animate * e2d::Animate::reverse() const
|
||||||
}
|
}
|
||||||
|
|
||||||
auto animation = new (std::nothrow) Animation(_animation->getInterval(), frames);
|
auto animation = new (std::nothrow) Animation(_animation->getInterval(), frames);
|
||||||
return new (std::nothrow) Animate(animation);
|
if (animation)
|
||||||
}
|
{
|
||||||
else
|
return new (std::nothrow) Animate(animation);
|
||||||
{
|
}
|
||||||
return nullptr;
|
|
||||||
}
|
}
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -170,9 +170,9 @@ void e2d::Game::resume()
|
||||||
{
|
{
|
||||||
if (s_bInitialized && s_bPaused)
|
if (s_bInitialized && s_bPaused)
|
||||||
{
|
{
|
||||||
s_bPaused = false;
|
|
||||||
Game::reset();
|
Game::reset();
|
||||||
}
|
}
|
||||||
|
s_bPaused = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Game::reset()
|
void e2d::Game::reset()
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,33 @@
|
||||||
#include "..\e2dbase.h"
|
#include "..\e2dbase.h"
|
||||||
#include "..\e2dmanager.h"
|
#include "..\e2dmanager.h"
|
||||||
|
|
||||||
|
|
||||||
e2d::Object::Object()
|
e2d::Object::Object()
|
||||||
: _refCount(0)
|
: _refCount(0)
|
||||||
{
|
{
|
||||||
ObjectManager::__add(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Object::~Object()
|
e2d::Object::~Object()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// 引用计数加一
|
void e2d::Object::autorelease()
|
||||||
|
{
|
||||||
|
ObjectManager::__add(this);
|
||||||
|
}
|
||||||
|
|
||||||
void e2d::Object::retain()
|
void e2d::Object::retain()
|
||||||
{
|
{
|
||||||
++_refCount;
|
++_refCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 引用计数减一
|
|
||||||
void e2d::Object::release()
|
void e2d::Object::release()
|
||||||
{
|
{
|
||||||
_refCount--;
|
_refCount--;
|
||||||
// 通知对象管理池刷新
|
|
||||||
ObjectManager::flush();
|
ObjectManager::flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
int e2d::Object::getRefCount() const
|
int e2d::Object::getRefCount() const
|
||||||
{
|
{
|
||||||
return _refCount;
|
return _refCount;
|
||||||
}
|
}
|
||||||
|
|
@ -5,10 +5,18 @@
|
||||||
e2d::Scene::Scene()
|
e2d::Scene::Scene()
|
||||||
: _autoUpdate(true)
|
: _autoUpdate(true)
|
||||||
, _colliderVisiable(false)
|
, _colliderVisiable(false)
|
||||||
, _root(new Node())
|
, _root(nullptr)
|
||||||
{
|
{
|
||||||
_root->retain();
|
_root = new (std::nothrow) Node();
|
||||||
_root->_setParentScene(this);
|
if (_root)
|
||||||
|
{
|
||||||
|
_root->retain();
|
||||||
|
_root->_setParentScene(this);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// TODO: 抛出一个异常
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Scene::~Scene()
|
e2d::Scene::~Scene()
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ void e2d::ColliderManager::__updateCollider(e2d::Collider * pActiveCollider)
|
||||||
|
|
||||||
void e2d::ColliderManager::add(const Function& func, const String& name, bool paused)
|
void e2d::ColliderManager::add(const Function& func, const String& name, bool paused)
|
||||||
{
|
{
|
||||||
auto listener = new Listener(func, name, paused);
|
auto listener = new (std::nothrow) Listener(func, name, paused);
|
||||||
s_vListeners.push_back(listener);
|
s_vListeners.push_back(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ static std::vector<Listener*> s_vListeners;
|
||||||
|
|
||||||
void e2d::InputManager::add(const Function& func, const String& name, bool paused)
|
void e2d::InputManager::add(const Function& func, const String& name, bool paused)
|
||||||
{
|
{
|
||||||
auto listener = new Listener(func, name, paused);
|
auto listener = new (std::nothrow) Listener(func, name, paused);
|
||||||
s_vListeners.push_back(listener);
|
s_vListeners.push_back(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,7 @@ e2d::Node::Node()
|
||||||
{
|
{
|
||||||
if (s_fDefaultColliderEnabled)
|
if (s_fDefaultColliderEnabled)
|
||||||
{
|
{
|
||||||
auto rect = new ColliderRect(this);
|
this->setCollider(new ColliderRect(this));
|
||||||
this->setCollider(rect);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -548,22 +547,19 @@ void e2d::Node::setCollider(ColliderType nColliderType)
|
||||||
{
|
{
|
||||||
case ColliderType::RECT:
|
case ColliderType::RECT:
|
||||||
{
|
{
|
||||||
auto rect = new ColliderRect(this);
|
this->setCollider(new ColliderRect(this));
|
||||||
this->setCollider(rect);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case ColliderType::CIRCLE:
|
case ColliderType::CIRCLE:
|
||||||
{
|
{
|
||||||
auto rect = new ColliderCircle(this);
|
this->setCollider(new ColliderCircle(this));
|
||||||
this->setCollider(rect);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case ColliderType::ELLIPSE:
|
case ColliderType::ELLIPSE:
|
||||||
{
|
{
|
||||||
auto rect = new ColliderEllipse(this);
|
this->setCollider(new ColliderEllipse(this));
|
||||||
this->setCollider(rect);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,7 @@ bool MusicPlayer::open(const e2d::String& filePath)
|
||||||
_dwSize = _ck.cksize;
|
_dwSize = _ck.cksize;
|
||||||
|
|
||||||
// 将样本数据读取到内存中
|
// 将样本数据读取到内存中
|
||||||
_pbWaveData = new BYTE[_dwSize];
|
_pbWaveData = new (std::nothrow) BYTE[_dwSize];
|
||||||
|
|
||||||
if (!_read(_pbWaveData, _dwSize))
|
if (!_read(_pbWaveData, _dwSize))
|
||||||
{
|
{
|
||||||
|
|
@ -226,7 +226,7 @@ bool MusicPlayer::open(int resNameId, const e2d::String& resType)
|
||||||
if (nullptr == (pvRes = LockResource(hResData)))
|
if (nullptr == (pvRes = LockResource(hResData)))
|
||||||
return TraceError(L"LockResource");
|
return TraceError(L"LockResource");
|
||||||
|
|
||||||
_pResourceBuffer = new CHAR[dwSize];
|
_pResourceBuffer = new (std::nothrow) CHAR[dwSize];
|
||||||
memcpy(_pResourceBuffer, pvRes, dwSize);
|
memcpy(_pResourceBuffer, pvRes, dwSize);
|
||||||
|
|
||||||
MMIOINFO mmioInfo;
|
MMIOINFO mmioInfo;
|
||||||
|
|
@ -251,7 +251,7 @@ bool MusicPlayer::open(int resNameId, const e2d::String& resType)
|
||||||
_dwSize = _ck.cksize;
|
_dwSize = _ck.cksize;
|
||||||
|
|
||||||
// Read the sample data into memory
|
// Read the sample data into memory
|
||||||
_pbWaveData = new BYTE[_dwSize];
|
_pbWaveData = new (std::nothrow) BYTE[_dwSize];
|
||||||
|
|
||||||
if (!_read(_pbWaveData, _dwSize))
|
if (!_read(_pbWaveData, _dwSize))
|
||||||
{
|
{
|
||||||
|
|
@ -442,7 +442,7 @@ bool MusicPlayer::_readMMIO()
|
||||||
// 的数据,这个数据就是额外分配的大小
|
// 的数据,这个数据就是额外分配的大小
|
||||||
if (pcmWaveFormat.wf.wFormatTag == WAVE_FORMAT_PCM)
|
if (pcmWaveFormat.wf.wFormatTag == WAVE_FORMAT_PCM)
|
||||||
{
|
{
|
||||||
_pwfx = (WAVEFORMATEX*)new CHAR[sizeof(WAVEFORMATEX)];
|
_pwfx = (WAVEFORMATEX*)new (std::nothrow) CHAR[sizeof(WAVEFORMATEX)];
|
||||||
|
|
||||||
// 拷贝数据
|
// 拷贝数据
|
||||||
memcpy(_pwfx, &pcmWaveFormat, sizeof(pcmWaveFormat));
|
memcpy(_pwfx, &pcmWaveFormat, sizeof(pcmWaveFormat));
|
||||||
|
|
@ -455,7 +455,7 @@ bool MusicPlayer::_readMMIO()
|
||||||
if (mmioRead(_hmmio, (CHAR*)&cbExtraBytes, sizeof(WORD)) != sizeof(WORD))
|
if (mmioRead(_hmmio, (CHAR*)&cbExtraBytes, sizeof(WORD)) != sizeof(WORD))
|
||||||
return TraceError(L"mmioRead");
|
return TraceError(L"mmioRead");
|
||||||
|
|
||||||
_pwfx = (WAVEFORMATEX*)new CHAR[sizeof(WAVEFORMATEX) + cbExtraBytes];
|
_pwfx = (WAVEFORMATEX*)new (std::nothrow) CHAR[sizeof(WAVEFORMATEX) + cbExtraBytes];
|
||||||
|
|
||||||
// 拷贝数据
|
// 拷贝数据
|
||||||
memcpy(_pwfx, &pcmWaveFormat, sizeof(pcmWaveFormat));
|
memcpy(_pwfx, &pcmWaveFormat, sizeof(pcmWaveFormat));
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ static std::vector<TimerInfo*> s_vTimers;
|
||||||
|
|
||||||
void e2d::Timer::start(const Function& func, double delay, int updateTimes, bool paused, const String& name)
|
void e2d::Timer::start(const Function& func, double delay, int updateTimes, bool paused, const String& name)
|
||||||
{
|
{
|
||||||
auto timer = new TimerInfo(func, name, delay, updateTimes, paused);
|
auto timer = new (std::nothrow) TimerInfo(func, name, delay, updateTimes, paused);
|
||||||
s_vTimers.push_back(timer);
|
s_vTimers.push_back(timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,7 +78,7 @@ void e2d::Timer::start(const Function& func, const String& name)
|
||||||
|
|
||||||
void e2d::Timer::startOnce(const Function& func, double timeOut)
|
void e2d::Timer::startOnce(const Function& func, double timeOut)
|
||||||
{
|
{
|
||||||
auto timer = new TimerInfo(func, L"", timeOut, 1, false);
|
auto timer = new (std::nothrow) TimerInfo(func, L"", timeOut, 1, false);
|
||||||
s_vTimers.push_back(timer);
|
s_vTimers.push_back(timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "e2dmacros.h"
|
#include "e2dmacros.h"
|
||||||
#include "e2dcustom.h"
|
#include "e2dcustom.h"
|
||||||
#include <set>
|
|
||||||
#include <stack>
|
|
||||||
#include <vector>
|
|
||||||
#include <functional>
|
|
||||||
#include <sstream>
|
|
||||||
|
|
||||||
namespace e2d
|
namespace e2d
|
||||||
{
|
{
|
||||||
|
|
@ -583,6 +578,9 @@ public:
|
||||||
|
|
||||||
virtual ~Object();
|
virtual ~Object();
|
||||||
|
|
||||||
|
// 自动释放
|
||||||
|
void autorelease();
|
||||||
|
|
||||||
// 引用计数加一
|
// 引用计数加一
|
||||||
void retain();
|
void retain();
|
||||||
|
|
||||||
|
|
@ -881,8 +879,8 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template<typename Object>
|
template <class Type>
|
||||||
inline void SafeRelease(Object*& p)
|
inline void SafeRelease(Type*& p)
|
||||||
{
|
{
|
||||||
if (p != nullptr)
|
if (p != nullptr)
|
||||||
{
|
{
|
||||||
|
|
@ -891,4 +889,5 @@ inline void SafeRelease(Object*& p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -38,9 +38,14 @@
|
||||||
#include <d2d1helper.h>
|
#include <d2d1helper.h>
|
||||||
#include <xaudio2.h>
|
#include <xaudio2.h>
|
||||||
|
|
||||||
// C RunTime Header Files
|
// C++ RunTime Header Files
|
||||||
#include <stdio.h>
|
#include <set>
|
||||||
#include <wchar.h>
|
#include <stack>
|
||||||
|
#include <vector>
|
||||||
|
#include <functional>
|
||||||
|
#include <sstream>
|
||||||
|
#include <random>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
// Import Libraries
|
// Import Libraries
|
||||||
#pragma comment(lib, "d2d1.lib")
|
#pragma comment(lib, "d2d1.lib")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "e2dbase.h"
|
#include "e2dbase.h"
|
||||||
#include <random>
|
|
||||||
|
|
||||||
namespace e2d
|
namespace e2d
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue