Restructured project

This commit is contained in:
Nomango 2017-12-15 21:51:07 +08:00
parent f619414ed4
commit c4f0555bec
100 changed files with 1498 additions and 1411 deletions

14
.gitignore vendored
View File

@ -1,10 +1,14 @@
# ignore all files in the /Easy2D/** directory # ignore all files in the /Easy2D/** directory
Easy2D/Win32/ Win32/
Easy2D/x64/ x64/
/Win32/
/x64/
Debug/ Debug/
Release/ Release/
backup/
# vs2010
ipch/
*.opensdf
*.sdf
*.user
*.lnk *.lnk
.vs .vs

View File

@ -1,164 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{70931955-FE2D-4A50-93C6-6955A730B0FE}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ConsoleDemo</RootNamespace>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<LibraryPath>$(MSBuildProjectDirectory)\..\Win32;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Manifest>
<AdditionalManifestFiles>
</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Manifest>
<AdditionalManifestFiles>
</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,7 +0,0 @@
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

View File

@ -1,61 +0,0 @@
#include <easy2d.h>
class Scene2 :
public EScene
{
public:
Scene2()
{
auto text = new EText(L"²âÊÔ°´Å¥");
auto text2 = new EText(L"²âÊÔ°´Å¥", L"", 22, EColor::BLUE);
auto button = new EButton(text, text2, text);
button->setPos(EApp::getWidth() / 2, EApp::getHeight() / 2);
button->setCallback([]() {
EApp::backScene(new ETransitionScaleEmerge(1, ETransitionScaleEmerge::ENTER));
});
this->add(button);
}
};
class Scene :
public EScene
{
public:
Scene()
{
/*auto sprite = new ESprite(L"test2.png");
auto button = new EButton(sprite);
button->setPos(EApp::getWidth() / 2, EApp::getHeight() / 2);
button->setCallback([]() {
EApp::enterScene(new Scene2(), new ETransitionScaleEmerge(1, ETransitionScaleEmerge::ENTER));
});
this->add(button);*/
auto sprite = new ESprite(L"test2.png");
sprite->setPos(EApp::getWidth() / 2, EApp::getHeight() / 2);
this->add(sprite);
sprite->runAction(new EActionLoop(new EActionRotateBy(1, 60)));
}
};
#include <iostream>
int main()
{
EApp app;
if (app.init(L"Easy2D Demo", 640, 480))
{
app.showConsole();
for (int i = 0; i < 20; i++)
{
std::cout << ERandom::between(1, 3) << std::endl;
}
ENode::setDefaultPiovt(0.5f, 0.5f);
auto scene = new Scene();
app.enterScene(scene);
app.run();
}
return 0;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@ -1,156 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>Demo</RootNamespace>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<LibraryPath>$(MSBuildProjectDirectory)\..\Win32;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

View File

@ -1,94 +0,0 @@
#include "..\Easy2D\easy2d.h"
#include <iostream>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
if (!EApp::init(L"Demo", 250, 150))
return -1;
wchar_t str[] = L"1245";
EString str2 = L"1243";
EString str3;
str + str2;
str3 = str + str2;
auto scene = new EScene();
EApp::enterScene(scene);
for (int i = 0; i < 25; i++)
{
auto sprite = new ESprite(L"test.png");
sprite->setScale(0.5f);
sprite->setPos(ERandom::between(0, EApp::getWidth()), ERandom::between(0, EApp::getHeight()));
scene->add(sprite);
}
//auto scene = new EScene();
//scene->retain();
//auto text = new EText(L"中文测试中文测试中文测试中文测试中文测试中文测试中文测试", L"楷体");
//text->setPos(EApp::getWidth() / 2, EApp::getHeight() / 2);
////text->setWordWrapping(true);
////text->setWordWrappingWidth(130);
//text->setRotation(40);
//text->runAction(new EActionLoop(new EActionTwo(new EActionFadeOut(1), new EActionFadeIn(1))));
//scene->add(text);
//auto listener = new EListenerKeyboardPress([=]() {
// if (EKeyboardMsg::getKeyValue() == EKeyboardMsg::KEY::SPACE)
// {
// EApp::backScene(new ETransitionMove(0.5f, ETransitionMove::DOWN));
// }
//});
//listener->bindWith(scene);
//auto scene2 = new EScene();
//auto bird = new ESprite(L"atlas.png", 5, 982, 34, 24);
//auto animation = new EAnimation();
//animation->addFrame(new ESpriteFrame(L"atlas.png", 5, 982, 34, 24));
//animation->addFrame(new ESpriteFrame(L"atlas.png", 61, 982, 34, 24));
//animation->addFrame(new ESpriteFrame(L"atlas.png", 117, 982, 34, 24));
//animation->addFrame(new ESpriteFrame(L"atlas.png", 61, 982, 34, 24));
//bird->runAction(new EActionLoop(animation));
//bird->setPivot(0.5f, 0.5f);
//bird->setPos(EApp::getWidth() / 2, EApp::getHeight() / 2);
//scene2->add(bird);
//auto btnStart = new ESprite(L"atlas.png", 702, 234, 116, 70);
//auto btnStartSelected = new ESprite(L"atlas.png", 702, 234, 116, 70);
//btnStartSelected->setPosY(5);
//auto button = new EButton(btnStart, btnStartSelected, [=] {
// /*if (EApp::isPaused())
// {
// EApp::resume();
// }
// else
// {
// EApp::pause();
// }*/
// EApp::enterScene(scene, new ETransitionMove(1, ETransitionMove::RIGHT));
//});
//button->setPivot(0.5f, 0.5f);
//button->setPos(EApp::getWidth() / 2, EApp::getHeight() / 2 + 100);
//scene2->add(button);
//EMusicUtils::playMusic(L"music.wav", -1);
///*scene2->runAction(new EActionSequence(5,
// new EActionCallback([]() { EMusicUtils::playMusic(L"music.wav", -1); }),
// new EActionDelay(3),
// new EActionCallback([]() { EMusicUtils::pauseMusic(L"music.wav"); }),
// new EActionDelay(10),
// new EActionCallback([]() { EMusicUtils::resumeMusic(L"music.wav"); })));*/
//EApp::enterScene(scene2, new ETransitionMove(1, ETransitionMove::UP));
return EApp::run();
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,53 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26730.12
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Easy2D", "Easy2D\Easy2D.vcxproj", "{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Demo", "Demo\Demo.vcxproj", "{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ConsoleDemo", "ConsoleDemo\ConsoleDemo.vcxproj", "{70931955-FE2D-4A50-93C6-6955A730B0FE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x64.ActiveCfg = Debug|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x64.Build.0 = Debug|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x64.Deploy.0 = Debug|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x86.ActiveCfg = Debug|Win32
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x86.Build.0 = Debug|Win32
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x86.Deploy.0 = Debug|Win32
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x64.ActiveCfg = Release|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x64.Build.0 = Release|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x86.ActiveCfg = Release|Win32
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x86.Build.0 = Release|Win32
{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}.Debug|x64.ActiveCfg = Debug|x64
{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}.Debug|x64.Build.0 = Debug|x64
{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}.Debug|x86.ActiveCfg = Debug|Win32
{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}.Debug|x86.Build.0 = Debug|Win32
{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}.Release|x64.ActiveCfg = Release|x64
{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}.Release|x64.Build.0 = Release|x64
{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}.Release|x86.ActiveCfg = Release|Win32
{9D85A92F-BCCE-4EF0-BAD3-601C0086661C}.Release|x86.Build.0 = Release|Win32
{70931955-FE2D-4A50-93C6-6955A730B0FE}.Debug|x64.ActiveCfg = Debug|x64
{70931955-FE2D-4A50-93C6-6955A730B0FE}.Debug|x64.Build.0 = Debug|x64
{70931955-FE2D-4A50-93C6-6955A730B0FE}.Debug|x86.ActiveCfg = Debug|Win32
{70931955-FE2D-4A50-93C6-6955A730B0FE}.Debug|x86.Build.0 = Debug|Win32
{70931955-FE2D-4A50-93C6-6955A730B0FE}.Release|x64.ActiveCfg = Release|x64
{70931955-FE2D-4A50-93C6-6955A730B0FE}.Release|x64.Build.0 = Release|x64
{70931955-FE2D-4A50-93C6-6955A730B0FE}.Release|x86.ActiveCfg = Release|Win32
{70931955-FE2D-4A50-93C6-6955A730B0FE}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FAC2BE2F-19AF-477A-8DC6-4645E66868A4}
EndGlobalSection
EndGlobal

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

View File

@ -50,7 +50,7 @@ void e2d::EAction::stop()
void e2d::EAction::setInterval(LONGLONG milliSeconds) void e2d::EAction::setInterval(LONGLONG milliSeconds)
{ {
// 设置动作的时间间隔 // 设置动作的时间间隔
m_nAnimationInterval = milliSeconds; SetInterval(m_nAnimationInterval, milliSeconds);
} }
void e2d::EAction::setTarget(ENode * node) void e2d::EAction::setTarget(ENode * node)

View File

@ -3,12 +3,12 @@
e2d::EActionDelay::EActionDelay(float duration) e2d::EActionDelay::EActionDelay(float duration)
{ {
setInterval(LONGLONG(duration * 1000)); setInterval(static_cast<LONGLONG>(duration * 1000));
} }
e2d::EActionDelay * e2d::EActionDelay::clone() const e2d::EActionDelay * e2d::EActionDelay::clone() const
{ {
return new EActionDelay(m_nAnimationInterval / 1000.0f); return new EActionDelay(static_cast<float>(ToMilliseconds(m_nAnimationInterval.QuadPart)) / 1000.0f);
} }
void e2d::EActionDelay::_init() void e2d::EActionDelay::_init()
@ -20,7 +20,7 @@ void e2d::EActionDelay::_update()
{ {
EAction::_update(); EAction::_update();
// 判断时间间隔是否足够 // 判断时间间隔是否足够
if (GetInterval(m_tLast) > m_nAnimationInterval) if (IsIntervalFull(m_tLast, m_nAnimationInterval))
{ {
this->stop(); this->stop();
} }

View File

@ -17,7 +17,7 @@ void e2d::EActionGradual::_init()
{ {
EAction::_init(); EAction::_init();
} }
#include <iostream>
bool e2d::EActionGradual::_isDelayEnough() bool e2d::EActionGradual::_isDelayEnough()
{ {
// 判断时间间隔是否足够 // 判断时间间隔是否足够
@ -27,11 +27,12 @@ bool e2d::EActionGradual::_isDelayEnough()
return true; return true;
} }
if (GetInterval(m_tLast) > m_nAnimationInterval) if (IsIntervalFull(m_tLast, m_nAnimationInterval))
{ {
// 重新记录时间 // 重新记录时间
m_tLast += milliseconds(m_nAnimationInterval); m_tLast.QuadPart += m_nAnimationInterval.QuadPart;
m_fDuration += static_cast<float>(m_nAnimationInterval); m_fDuration += static_cast<float>(ToMilliseconds(m_nAnimationInterval.QuadPart));
std::cout << ToMilliseconds(m_nAnimationInterval.QuadPart) << std::endl;
// 计算动画进度 // 计算动画进度
m_fRateOfProgress = m_fDuration / m_fTotalDuration; m_fRateOfProgress = m_fDuration / m_fTotalDuration;
return true; return true;

View File

@ -21,9 +21,9 @@ e2d::EActionSequence::EActionSequence(int number, EAction * action1, ...) :
e2d::EActionSequence::~EActionSequence() e2d::EActionSequence::~EActionSequence()
{ {
for (auto action : m_vActions) for (auto action = m_vActions.begin(); action != m_vActions.end(); action++)
{ {
SafeRelease(&action); SafeRelease(&(*action));
} }
} }
@ -33,9 +33,9 @@ void e2d::EActionSequence::_init()
// 将所有动作与目标绑定 // 将所有动作与目标绑定
if (m_pTarget) if (m_pTarget)
{ {
for (auto action : m_vActions) for (auto action = m_vActions.begin(); action != m_vActions.end(); action++)
{ {
action->setTarget(m_pTarget); (*action)->setTarget(m_pTarget);
} }
} }
// 初始化第一个动作 // 初始化第一个动作
@ -66,18 +66,18 @@ void e2d::EActionSequence::_update()
void e2d::EActionSequence::_reset() void e2d::EActionSequence::_reset()
{ {
EAction::_reset(); EAction::_reset();
for (auto action : m_vActions) for (auto action = m_vActions.begin(); action != m_vActions.end(); action++)
{ {
action->_reset(); (*action)->_reset();
} }
m_nActionIndex = 0; m_nActionIndex = 0;
} }
void e2d::EActionSequence::_resetTime() void e2d::EActionSequence::_resetTime()
{ {
for (auto action : m_vActions) for (auto action = m_vActions.begin(); action != m_vActions.end(); action++)
{ {
action->_resetTime(); (*action)->_resetTime();
} }
} }
@ -93,9 +93,9 @@ void e2d::EActionSequence::addAction(EAction * action)
e2d::EActionSequence * e2d::EActionSequence::clone() const e2d::EActionSequence * e2d::EActionSequence::clone() const
{ {
auto a = new EActionSequence(); auto a = new EActionSequence();
for (auto action : m_vActions) for (auto action = m_vActions.begin(); action != m_vActions.end(); action++)
{ {
a->addAction(action->clone()); a->addAction((*action)->clone());
} }
return a; return a;
} }
@ -103,15 +103,15 @@ e2d::EActionSequence * e2d::EActionSequence::clone() const
e2d::EActionSequence * e2d::EActionSequence::reverse(bool actionReverse) const e2d::EActionSequence * e2d::EActionSequence::reverse(bool actionReverse) const
{ {
auto a = new EActionSequence(); auto a = new EActionSequence();
for (auto action : a->m_vActions) for (auto action = m_vActions.begin(); action != m_vActions.end(); action++)
{ {
if (actionReverse) if (actionReverse)
{ {
a->addAction(action->reverse()); a->addAction((*action)->reverse());
} }
else else
{ {
a->addAction(action->clone()); a->addAction((*action)->clone());
} }
} }
// 将动作顺序逆序排列 // 将动作顺序逆序排列

View File

@ -17,9 +17,9 @@ e2d::EAnimation::EAnimation(LONGLONG frameDelay) :
e2d::EAnimation::~EAnimation() e2d::EAnimation::~EAnimation()
{ {
for (auto frame : m_vFrames) for (auto frame = m_vFrames.begin(); frame != m_vFrames.end(); frame++)
{ {
SafeRelease(&frame); SafeRelease(&(*frame));
} }
} }
@ -39,10 +39,10 @@ void e2d::EAnimation::_update()
} }
// 判断时间间隔是否足够 // 判断时间间隔是否足够
while (GetInterval(m_tLast) > m_nAnimationInterval) while (IsIntervalFull(m_tLast, m_nAnimationInterval))
{ {
// 重新记录时间 // 重新记录时间
m_tLast += milliseconds(m_nAnimationInterval); m_tLast.QuadPart += m_nAnimationInterval.QuadPart;
// 加载精灵帧 // 加载精灵帧
reinterpret_cast<ESprite*>(m_pTarget)->loadFrom(m_vFrames[m_nFrameIndex]); reinterpret_cast<ESprite*>(m_pTarget)->loadFrom(m_vFrames[m_nFrameIndex]);
m_nFrameIndex++; m_nFrameIndex++;
@ -72,10 +72,10 @@ void e2d::EAnimation::addFrame(ESpriteFrame * frame)
e2d::EAnimation * e2d::EAnimation::clone() const e2d::EAnimation * e2d::EAnimation::clone() const
{ {
auto a = new EAnimation(this->m_nAnimationInterval); auto a = new EAnimation(ToMilliseconds(m_nAnimationInterval.QuadPart));
for (auto f : m_vFrames) for (auto frame = m_vFrames.begin(); frame != m_vFrames.end(); frame++)
{ {
a->addFrame(f); a->addFrame((*frame));
} }
return a; return a;
} }

View File

@ -5,12 +5,10 @@
#include "..\etransitions.h" #include "..\etransitions.h"
#include "..\etools.h" #include "..\etools.h"
#include <stack> #include <stack>
#include <thread>
#include <imm.h> #include <imm.h>
#pragma comment (lib ,"imm32.lib") #pragma comment (lib ,"imm32.lib")
#include <mmsystem.h>
using namespace std::this_thread; #pragma comment(lib, "winmm.lib")
using namespace std::chrono;
// 唯一实例指针 // 唯一实例指针
@ -18,7 +16,7 @@ static e2d::EApp * s_pInstance = nullptr;
// 场景栈 // 场景栈
static std::stack<e2d::EScene*> s_SceneStack; static std::stack<e2d::EScene*> s_SceneStack;
// 游戏开始时间 // 游戏开始时间
static steady_clock::time_point s_tStart; static LARGE_INTEGER s_tStart;
e2d::EApp::EApp() e2d::EApp::EApp()
@ -26,12 +24,19 @@ e2d::EApp::EApp()
, m_bPaused(false) , m_bPaused(false)
, m_bManualPaused(false) , m_bManualPaused(false)
, m_bShowConsole(false) , m_bShowConsole(false)
, m_nAnimationInterval(17LL) , m_nAnimationInterval()
, m_ClearColor(EColor::BLACK) , m_ClearColor(EColor::BLACK)
, m_pTransition(nullptr) , m_pTransition(nullptr)
, m_pCurrentScene(nullptr) , m_pCurrentScene(nullptr)
, m_pNextScene(nullptr) , m_pNextScene(nullptr)
{ {
CoInitialize(NULL);
// 获取时钟频率
LARGE_INTEGER tFreq;
QueryPerformanceFrequency(&tFreq);
// 默认帧率为 60
m_nAnimationInterval.QuadPart = static_cast<LONGLONG>(1.0 / 60 * tFreq.QuadPart);
} }
e2d::EApp::~EApp() e2d::EApp::~EApp()
@ -41,6 +46,7 @@ e2d::EApp::~EApp()
SafeReleaseInterface(&GetFactory()); SafeReleaseInterface(&GetFactory());
SafeReleaseInterface(&GetImagingFactory()); SafeReleaseInterface(&GetImagingFactory());
SafeReleaseInterface(&GetDirectWriteFactory()); SafeReleaseInterface(&GetDirectWriteFactory());
CoUninitialize();
} }
e2d::EApp * e2d::EApp::getInstance() e2d::EApp * e2d::EApp::getInstance()
@ -49,19 +55,18 @@ e2d::EApp * e2d::EApp::getInstance()
{ {
s_pInstance = new EApp(); s_pInstance = new EApp();
} }
return s_pInstance; // 获取 EApp 的唯一实例 return s_pInstance;
} }
bool e2d::EApp::init(const EString &title, UINT32 width, UINT32 height, const EWindowStyle &wStyle /* = nullptr */) bool e2d::EApp::init(const EString &title, UINT32 width, UINT32 height, const EWindowStyle &wStyle /* = nullptr */)
{ {
CoInitialize(NULL); EApp * pApp = EApp::getInstance();
HRESULT hr; HRESULT hr;
// 保存窗口样式 // 保存窗口样式
EApp::getInstance()->m_WindowStyle = wStyle; pApp->m_WindowStyle = wStyle;
// 保存窗口名称 // 保存窗口名称
EApp::getInstance()->m_sTitle = title; pApp->m_sTitle = title;
// 注册窗口类 // 注册窗口类
WNDCLASSEX wcex = { sizeof(WNDCLASSEX) }; WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };
@ -177,8 +182,24 @@ int e2d::EApp::run()
SetWindowPos(GetHWnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); SetWindowPos(GetHWnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
} }
// 挂起时长
LONG nWait = 0L;
// 时间间隔
LONGLONG nInterval;
// 上一帧画面绘制时间
LARGE_INTEGER tLast;
// 时钟频率
LARGE_INTEGER tFreq;
// 修改时间精度
timeBeginPeriod(1);
// 获取时钟频率
QueryPerformanceFrequency(&tFreq);
// 刷新当前时间
QueryPerformanceCounter(&GetNow());
// 记录开始时间 // 记录开始时间
s_tStart = steady_clock::now(); s_tStart = GetNow();
tLast = GetNow();
// 窗口消息 // 窗口消息
MSG msg; MSG msg;
@ -190,14 +211,38 @@ int e2d::EApp::run()
TranslateMessage(&msg); TranslateMessage(&msg);
DispatchMessage(&msg); DispatchMessage(&msg);
} }
// 执行主循环
pApp->_mainLoop(); // 刷新当前时间
QueryPerformanceCounter(&GetNow());
// 计算时间间隔
nInterval = GetNow().QuadPart - tLast.QuadPart;
// 判断间隔时间是否足够
if (nInterval >= pApp->m_nAnimationInterval.QuadPart)
{
// 记录当前时间
tLast.QuadPart += pApp->m_nAnimationInterval.QuadPart;
// 更新游戏内容
pApp->_update();
// 刷新游戏画面
pApp->_render();
}
else
{
// 计算挂起时长
nWait = static_cast<LONG>(ToMilliseconds(pApp->m_nAnimationInterval.QuadPart - nInterval) - 1LL);
// 挂起线程,释放 CPU 占用
if (nWait > 1L)
{
Sleep(nWait);
}
}
} }
// 关闭控制台 // 关闭控制台
EApp::showConsole(false); EApp::showConsole(false);
// 重置时间精度
timeEndPeriod(1);
CoUninitialize();
return 0; return 0;
} }
@ -289,41 +334,6 @@ bool e2d::EApp::onCloseWindow()
return true; return true;
} }
void e2d::EApp::_mainLoop()
{
// 挂起时长
static LONGLONG nWaitMS = 0L;
// 时间间隔
static LONGLONG nInterval;
// 上一帧画面绘制时间
static steady_clock::time_point tLast = steady_clock::now();
// 刷新当前时间
GetNow() = steady_clock::now();
// 计算时间间隔
nInterval = GetInterval(tLast);
// 判断间隔时间是否足够
if (nInterval >= m_nAnimationInterval)
{
// 记录当前时间
tLast += microseconds(m_nAnimationInterval);
// 游戏控制流程
_update();
// 刷新游戏画面
_render();
}
else
{
// 计算挂起时长
nWaitMS = m_nAnimationInterval - nInterval - 1;
// 挂起线程,释放 CPU 占用
if (nWaitMS > 1LL)
{
sleep_for(milliseconds(nWaitMS));
}
}
}
void e2d::EApp::_update() void e2d::EApp::_update()
{ {
if (isPaused()) if (isPaused())
@ -512,7 +522,11 @@ void e2d::EApp::clearScene()
void e2d::EApp::setFPS(UINT32 fps) void e2d::EApp::setFPS(UINT32 fps)
{ {
fps = min(max(fps, 30), 120); fps = min(max(fps, 30), 120);
s_pInstance->m_nAnimationInterval = 1000 / fps;
// 获取时钟频率
LARGE_INTEGER tFreq;
QueryPerformanceFrequency(&tFreq);
EApp::getInstance()->m_nAnimationInterval.QuadPart = static_cast<LONGLONG>(1.0 / fps * tFreq.QuadPart);
} }
e2d::EScene * e2d::EApp::getCurrentScene() e2d::EScene * e2d::EApp::getCurrentScene()
@ -570,7 +584,7 @@ e2d::EWindowStyle e2d::EApp::getWindowStyle()
LONGLONG e2d::EApp::getTotalDurationFromStart() LONGLONG e2d::EApp::getTotalDurationFromStart()
{ {
return GetInterval(s_tStart); return (s_tStart.QuadPart - GetNow().QuadPart) * 1000LL / GetFreq().QuadPart;
} }
void e2d::EApp::hideWindow() void e2d::EApp::hideWindow()
@ -614,7 +628,7 @@ void e2d::EApp::_enterNextScene()
void e2d::EApp::_updateTime() void e2d::EApp::_updateTime()
{ {
// 刷新当前时间 // 刷新当前时间
GetNow() = steady_clock::now(); QueryPerformanceCounter(&GetNow());
// 重置动画和定时器 // 重置动画和定时器
EActionManager::_resetAllActions(); EActionManager::_resetAllActions();
ETimerManager::_resetAllTimers(); ETimerManager::_resetAllTimers();

View File

@ -12,7 +12,12 @@ e2d::EFont::EFont()
} }
e2d::EFont::EFont(EString fontFamily, float fontSize /* = 22 */, UINT32 color /* = EColor::WHITE */, UINT32 fontWeight, bool italic /* = false */) e2d::EFont::EFont(EString fontFamily, float fontSize /* = 22 */, UINT32 color /* = EColor::WHITE */, UINT32 fontWeight, bool italic /* = false */)
: EFont() : m_pTextFormat(nullptr)
, m_Color(EColor::WHITE)
, m_fFontSize(22)
, m_FontWeight(EFontWeight::REGULAR)
, m_bItalic(false)
, m_bRecreateNeeded(true)
{ {
this->setFamily(fontFamily); this->setFamily(fontFamily);
this->setSize(fontSize); this->setSize(fontSize);

View File

@ -10,39 +10,63 @@ e2d::ESpriteFrame::ESpriteFrame()
} }
e2d::ESpriteFrame::ESpriteFrame(ETexture * texture) e2d::ESpriteFrame::ESpriteFrame(ETexture * texture)
: ESpriteFrame() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_fSourceClipWidth(0)
, m_fSourceClipHeight(0)
, m_pTexture(nullptr)
{ {
_setTexture(texture); _setTexture(texture);
} }
e2d::ESpriteFrame::ESpriteFrame(const EString & imageFileName) e2d::ESpriteFrame::ESpriteFrame(const EString & imageFileName)
: ESpriteFrame() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_fSourceClipWidth(0)
, m_fSourceClipHeight(0)
, m_pTexture(nullptr)
{ {
_setTexture(new ETexture(imageFileName)); _setTexture(new ETexture(imageFileName));
} }
e2d::ESpriteFrame::ESpriteFrame(LPCTSTR resourceName, LPCTSTR resourceType) e2d::ESpriteFrame::ESpriteFrame(LPCTSTR resourceName, LPCTSTR resourceType)
: ESpriteFrame() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_fSourceClipWidth(0)
, m_fSourceClipHeight(0)
, m_pTexture(nullptr)
{ {
_setTexture(new ETexture(resourceName, resourceType)); _setTexture(new ETexture(resourceName, resourceType));
} }
e2d::ESpriteFrame::ESpriteFrame(ETexture * texture, float x, float y, float width, float height) e2d::ESpriteFrame::ESpriteFrame(ETexture * texture, float x, float y, float width, float height)
: ESpriteFrame() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_fSourceClipWidth(0)
, m_fSourceClipHeight(0)
, m_pTexture(nullptr)
{ {
_setTexture(texture); _setTexture(texture);
_clipTexture(x, y, width, height); _clipTexture(x, y, width, height);
} }
e2d::ESpriteFrame::ESpriteFrame(const EString & imageFileName, float x, float y, float width, float height) e2d::ESpriteFrame::ESpriteFrame(const EString & imageFileName, float x, float y, float width, float height)
: ESpriteFrame() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_fSourceClipWidth(0)
, m_fSourceClipHeight(0)
, m_pTexture(nullptr)
{ {
_setTexture(new ETexture(imageFileName)); _setTexture(new ETexture(imageFileName));
_clipTexture(x, y, width, height); _clipTexture(x, y, width, height);
} }
e2d::ESpriteFrame::ESpriteFrame(LPCTSTR resourceName, LPCTSTR resourceType, float x, float y, float width, float height) e2d::ESpriteFrame::ESpriteFrame(LPCTSTR resourceName, LPCTSTR resourceType, float x, float y, float width, float height)
: ESpriteFrame() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_fSourceClipWidth(0)
, m_fSourceClipHeight(0)
, m_pTexture(nullptr)
{ {
_setTexture(new ETexture(resourceName, resourceType)); _setTexture(new ETexture(resourceName, resourceType));
_clipTexture(x, y, width, height); _clipTexture(x, y, width, height);

View File

@ -6,7 +6,8 @@ using namespace e2d;
EString::EString() EString::EString()
{ {
_size = 0; _size = 0;
_string = nullptr; _string = new wchar_t[1];
_string[0] = 0;
} }
e2d::EString::EString(const wchar_t ch) e2d::EString::EString(const wchar_t ch)

View File

@ -337,13 +337,13 @@ bool e2d::ETexture::preload(LPCTSTR resourceName, LPCTSTR resourceType)
void e2d::ETexture::clearCache() void e2d::ETexture::clearCache()
{ {
for (auto child : s_mBitmapsFromFile) for (auto child = s_mBitmapsFromFile.begin(); child != s_mBitmapsFromFile.end(); child++)
{ {
SafeReleaseInterface(&child.second); SafeReleaseInterface(&(*child).second);
} }
for (auto child : s_mBitmapsFromResource) for (auto child = s_mBitmapsFromFile.begin(); child != s_mBitmapsFromFile.end(); child++)
{ {
SafeReleaseInterface(&child.second); SafeReleaseInterface(&(*child).second);
} }
s_mBitmapsFromFile.clear(); s_mBitmapsFromFile.clear();
s_mBitmapsFromResource.clear(); s_mBitmapsFromResource.clear();

View File

@ -8,13 +8,13 @@ e2d::ECircle::ECircle()
} }
e2d::ECircle::ECircle(EPoint center, float radius) e2d::ECircle::ECircle(EPoint center, float radius)
: ECircle() : m_pD2dCircle(nullptr)
{ {
this->_setCircle(center, radius); this->_setCircle(center, radius);
} }
e2d::ECircle::ECircle(ENode * node) e2d::ECircle::ECircle(ENode * node)
: ECircle() : m_pD2dCircle(nullptr)
{ {
float minSide = min(node->getRealWidth(), node->getRealHeight()); float minSide = min(node->getRealWidth(), node->getRealHeight());
this->_setCircle( this->_setCircle(

View File

@ -8,13 +8,13 @@ e2d::EEllipse::EEllipse()
} }
e2d::EEllipse::EEllipse(EPoint center, float radiusX, float radiusY) e2d::EEllipse::EEllipse(EPoint center, float radiusX, float radiusY)
: EEllipse() : m_pD2dEllipse(nullptr)
{ {
this->_setEllipse(center, radiusX, radiusY); this->_setEllipse(center, radiusX, radiusY);
} }
e2d::EEllipse::EEllipse(ENode * node) e2d::EEllipse::EEllipse(ENode * node)
: EEllipse() : m_pD2dEllipse(nullptr)
{ {
this->_setEllipse( this->_setEllipse(
EPoint( EPoint(

View File

@ -91,7 +91,7 @@ e2d::EPhysicsMsg::INTERSECT_RELATION e2d::EGeometry::_intersectWith(EGeometry *
return EPhysicsMsg::INTERSECT_RELATION(relation); return EPhysicsMsg::INTERSECT_RELATION(relation);
} }
return EPhysicsMsg::INTERSECT_RELATION::UNKNOWN; return EPhysicsMsg::UNKNOWN;
} }
void e2d::EGeometry::_transform() void e2d::EGeometry::_transform()

View File

@ -8,13 +8,13 @@ e2d::ERectangle::ERectangle()
} }
e2d::ERectangle::ERectangle(float x, float y, float width, float height) e2d::ERectangle::ERectangle(float x, float y, float width, float height)
: ERectangle() : m_pD2dRectangle(nullptr)
{ {
this->_setRect(x, y, x + width, y + height); this->_setRect(x, y, x + width, y + height);
} }
e2d::ERectangle::ERectangle(ENode * node) e2d::ERectangle::ERectangle(ENode * node)
: ERectangle() : m_pD2dRectangle(nullptr)
{ {
this->_setRect( this->_setRect(
0, 0,

View File

@ -10,7 +10,10 @@ e2d::EListener::EListener()
} }
e2d::EListener::EListener(const EString & name) e2d::EListener::EListener(const EString & name)
: EListener() : m_bRunning(false)
, m_bAlways(false)
, m_pParentNode(nullptr)
, m_bSwallow(false)
{ {
m_sName = name; m_sName = name;
} }

View File

@ -22,7 +22,7 @@ e2d::EListenerKeyboardPress::EListenerKeyboardPress(const EString & name, const
void e2d::EListenerKeyboardPress::_callOn() void e2d::EListenerKeyboardPress::_callOn()
{ {
if (EKeyboardMsg::getMsg() == EKeyboardMsg::KEYBOARD_MSG::KEY_DOWN) if (EKeyboardMsg::getMsg() == EKeyboardMsg::KEY_DOWN)
{ {
if (m_Callback) if (m_Callback)
{ {

View File

@ -21,16 +21,16 @@ void e2d::EActionManager::startAllActionsBindedWith(ENode * pTargetNode)
{ {
if (pTargetNode) if (pTargetNode)
{ {
for (const auto &action : s_vActions) for (auto action = s_vActions.begin(); action != s_vActions.end(); action++)
{ {
if (action->getTarget() == pTargetNode) if ((*action)->getTarget() == pTargetNode)
{ {
action->start(); (*action)->start();
} }
} }
for (const auto &child : pTargetNode->getChildren()) for (auto child = pTargetNode->getChildren().begin(); child != pTargetNode->getChildren().end(); child++)
{ {
EActionManager::startAllActionsBindedWith(child); EActionManager::startAllActionsBindedWith((*child));
} }
} }
} }
@ -39,16 +39,16 @@ void e2d::EActionManager::pauseAllActionsBindedWith(ENode * pTargetNode)
{ {
if (pTargetNode) if (pTargetNode)
{ {
for (const auto &action : s_vActions) for (auto action = s_vActions.begin(); action != s_vActions.end(); action++)
{ {
if (action->getTarget() == pTargetNode) if ((*action)->getTarget() == pTargetNode)
{ {
action->pause(); (*action)->pause();
} }
} }
for (const auto &child : pTargetNode->getChildren()) for (auto child = pTargetNode->getChildren().begin(); child != pTargetNode->getChildren().end(); child++)
{ {
EActionManager::pauseAllActionsBindedWith(child); EActionManager::pauseAllActionsBindedWith((*child));
} }
} }
} }
@ -57,16 +57,16 @@ void e2d::EActionManager::stopAllActionsBindedWith(ENode * pTargetNode)
{ {
if (pTargetNode) if (pTargetNode)
{ {
for (const auto &action : s_vActions) for (auto action = s_vActions.begin(); action != s_vActions.end(); action++)
{ {
if (action->getTarget() == pTargetNode) if ((*action)->getTarget() == pTargetNode)
{ {
action->stop(); (*action)->stop();
} }
} }
for (const auto &child : pTargetNode->getChildren()) for (auto child = pTargetNode->getChildren().begin(); child != pTargetNode->getChildren().end(); child++)
{ {
EActionManager::stopAllActionsBindedWith(child); EActionManager::stopAllActionsBindedWith((*child));
} }
} }
} }
@ -93,25 +93,25 @@ void e2d::EActionManager::_clearAllActionsBindedWith(ENode * pTargetNode)
void e2d::EActionManager::startAllActions() void e2d::EActionManager::startAllActions()
{ {
for (auto child : EApp::getCurrentScene()->getChildren()) for (auto child = EApp::getCurrentScene()->getChildren().begin(); child != EApp::getCurrentScene()->getChildren().end(); child++)
{ {
EActionManager::startAllActionsBindedWith(child); EActionManager::startAllActionsBindedWith((*child));
} }
} }
void e2d::EActionManager::pauseAllActions() void e2d::EActionManager::pauseAllActions()
{ {
for (auto child : EApp::getCurrentScene()->getChildren()) for (auto child = EApp::getCurrentScene()->getChildren().begin(); child != EApp::getCurrentScene()->getChildren().end(); child++)
{ {
EActionManager::pauseAllActionsBindedWith(child); EActionManager::pauseAllActionsBindedWith((*child));
} }
} }
void e2d::EActionManager::stopAllActions() void e2d::EActionManager::stopAllActions()
{ {
for (auto child : EApp::getCurrentScene()->getChildren()) for (auto child = EApp::getCurrentScene()->getChildren().begin(); child != EApp::getCurrentScene()->getChildren().end(); child++)
{ {
EActionManager::stopAllActionsBindedWith(child); EActionManager::stopAllActionsBindedWith((*child));
} }
} }
@ -122,9 +122,9 @@ void e2d::EActionManager::_clearManager()
void e2d::EActionManager::_resetAllActions() void e2d::EActionManager::_resetAllActions()
{ {
for (const auto & action : s_vActions) for (auto action = s_vActions.begin(); action != s_vActions.end(); action++)
{ {
action->_resetTime(); (*action)->_resetTime();
} }
} }

View File

@ -110,22 +110,22 @@ void e2d::EMsgManager::bindListener(EListenerKeyboard * listener, ENode * pParen
void e2d::EMsgManager::startMouseListeners(const EString & name) void e2d::EMsgManager::startMouseListeners(const EString & name)
{ {
for (auto l : s_vMouseListeners) for (auto l = s_vMouseListeners.begin(); l != s_vMouseListeners.end(); l++)
{ {
if (l->getName() == name) if ((*l)->getName() == name)
{ {
l->start(); (*l)->start();
} }
} }
} }
void e2d::EMsgManager::stopMouseListeners(const EString & name) void e2d::EMsgManager::stopMouseListeners(const EString & name)
{ {
for (auto l : s_vMouseListeners) for (auto l = s_vMouseListeners.begin(); l != s_vMouseListeners.end(); l++)
{ {
if (l->getName() == name) if ((*l)->getName() == name)
{ {
l->stop(); (*l)->stop();
} }
} }
} }
@ -151,11 +151,11 @@ void e2d::EMsgManager::delMouseListeners(const EString & name)
void e2d::EMsgManager::startKeyboardListeners(const EString & name) void e2d::EMsgManager::startKeyboardListeners(const EString & name)
{ {
// 启动按键消息监听器 // 启动按键消息监听器
for (auto l : s_vKeyboardListeners) for (auto l = s_vKeyboardListeners.begin(); l != s_vKeyboardListeners.end(); l++)
{ {
if (l->getName() == name) if ((*l)->getName() == name)
{ {
l->start(); (*l)->start();
} }
} }
} }
@ -163,11 +163,11 @@ void e2d::EMsgManager::startKeyboardListeners(const EString & name)
void e2d::EMsgManager::stopKeyboardListeners(const EString & name) void e2d::EMsgManager::stopKeyboardListeners(const EString & name)
{ {
// 停止按键消息监听器 // 停止按键消息监听器
for (auto l : s_vKeyboardListeners) for (auto l = s_vKeyboardListeners.begin(); l != s_vKeyboardListeners.end(); l++)
{ {
if (l->getName() == name) if ((*l)->getName() == name)
{ {
l->stop(); (*l)->stop();
} }
} }
} }
@ -202,31 +202,31 @@ void e2d::EMsgManager::stopAllMouseListenersBindedWith(EScene * pParentScene)
void e2d::EMsgManager::startAllMouseListenersBindedWith(ENode * pParentNode) void e2d::EMsgManager::startAllMouseListenersBindedWith(ENode * pParentNode)
{ {
for (auto l : s_vMouseListeners) for (auto l = s_vMouseListeners.begin(); l != s_vMouseListeners.end(); l++)
{ {
if (l->getParentNode() == pParentNode) if ((*l)->getParentNode() == pParentNode)
{ {
l->start(); (*l)->start();
} }
} }
for (auto child : pParentNode->getChildren()) for (auto child = pParentNode->getChildren().begin(); child != pParentNode->getChildren().end(); child++)
{ {
EMsgManager::startAllMouseListenersBindedWith(child); EMsgManager::startAllMouseListenersBindedWith((*child));
} }
} }
void e2d::EMsgManager::stopAllMouseListenersBindedWith(ENode * pParentNode) void e2d::EMsgManager::stopAllMouseListenersBindedWith(ENode * pParentNode)
{ {
for (auto l : s_vMouseListeners) for (auto l = s_vMouseListeners.begin(); l != s_vMouseListeners.end(); l++)
{ {
if (l->getParentNode() == pParentNode) if ((*l)->getParentNode() == pParentNode)
{ {
l->stop(); (*l)->stop();
} }
} }
for (auto child : pParentNode->getChildren()) for (auto child = pParentNode->getChildren().begin(); child != pParentNode->getChildren().end(); child++)
{ {
EMsgManager::stopAllMouseListenersBindedWith(child); EMsgManager::stopAllMouseListenersBindedWith((*child));
} }
} }
@ -242,31 +242,31 @@ void e2d::EMsgManager::stopAllKeyboardListenersBindedWith(EScene * pParentScene)
void e2d::EMsgManager::startAllKeyboardListenersBindedWith(ENode * pParentNode) void e2d::EMsgManager::startAllKeyboardListenersBindedWith(ENode * pParentNode)
{ {
for (auto l : s_vKeyboardListeners) for (auto l = s_vKeyboardListeners.begin(); l != s_vKeyboardListeners.end(); l++)
{ {
if (l->getParentNode() == pParentNode) if ((*l)->getParentNode() == pParentNode)
{ {
l->start(); (*l)->start();
} }
} }
for (auto child : pParentNode->getChildren()) for (auto child = pParentNode->getChildren().begin(); child != pParentNode->getChildren().end(); child++)
{ {
EMsgManager::startAllKeyboardListenersBindedWith(child); EMsgManager::startAllKeyboardListenersBindedWith((*child));
} }
} }
void e2d::EMsgManager::stopAllKeyboardListenersBindedWith(ENode * pParentNode) void e2d::EMsgManager::stopAllKeyboardListenersBindedWith(ENode * pParentNode)
{ {
for (auto l : s_vKeyboardListeners) for (auto l = s_vKeyboardListeners.begin(); l != s_vKeyboardListeners.end(); l++)
{ {
if (l->getParentNode() == pParentNode) if ((*l)->getParentNode() == pParentNode)
{ {
l->stop(); (*l)->stop();
} }
} }
for (auto child : pParentNode->getChildren()) for (auto child = pParentNode->getChildren().begin(); child != pParentNode->getChildren().end(); child++)
{ {
EMsgManager::stopAllKeyboardListenersBindedWith(child); EMsgManager::stopAllKeyboardListenersBindedWith((*child));
} }
} }

View File

@ -17,8 +17,9 @@ void e2d::EPhysicsManager::PhysicsGeometryProc(EGeometry * pActiveGeometry)
// pActiveGeometry 为主动方 // pActiveGeometry 为主动方
EPhysicsMsg::s_pActiveGeometry = pActiveGeometry; EPhysicsMsg::s_pActiveGeometry = pActiveGeometry;
// 判断变化后的状态 // 判断变化后的状态
for (auto &pPassiveGeometry : s_vGeometries) for (UINT i = 0; i < s_vGeometries.size(); i++)
{ {
auto pPassiveGeometry = s_vGeometries[i];
// 不与其他场景的物体判断 // 不与其他场景的物体判断
if (!pPassiveGeometry->getParentNode() || if (!pPassiveGeometry->getParentNode() ||
(pPassiveGeometry->getParentNode()->getParentScene() != EApp::getCurrentScene())) (pPassiveGeometry->getParentNode()->getParentScene() != EApp::getCurrentScene()))
@ -100,7 +101,7 @@ void e2d::EPhysicsManager::_delGeometry(EGeometry * geometry)
{ {
if (geometry) if (geometry)
{ {
for (size_t i = 0; i < s_vGeometries.size(); i++) for (UINT i = 0; i < s_vGeometries.size(); i++)
{ {
if (s_vGeometries[i] == geometry) if (s_vGeometries[i] == geometry)
{ {
@ -114,22 +115,22 @@ void e2d::EPhysicsManager::_delGeometry(EGeometry * geometry)
void e2d::EPhysicsManager::startListeners(const EString & name) void e2d::EPhysicsManager::startListeners(const EString & name)
{ {
for (auto listener : s_vListeners) for (auto listener = s_vListeners.begin(); listener != s_vListeners.end(); listener++)
{ {
if (listener->getName() == name) if ((*listener)->getName() == name)
{ {
listener->start(); (*listener)->start();
} }
} }
} }
void e2d::EPhysicsManager::stopListeners(const EString & name) void e2d::EPhysicsManager::stopListeners(const EString & name)
{ {
for (auto listener : s_vListeners) for (auto listener = s_vListeners.begin(); listener != s_vListeners.end(); listener++)
{ {
if (listener->getName() == name) if ((*listener)->getName() == name)
{ {
listener->stop(); (*listener)->stop();
} }
} }
} }
@ -163,31 +164,31 @@ void e2d::EPhysicsManager::stopAllListenersBindedWith(EScene * pParentScene)
void e2d::EPhysicsManager::startAllListenersBindedWith(ENode * pParentNode) void e2d::EPhysicsManager::startAllListenersBindedWith(ENode * pParentNode)
{ {
for (auto listener : s_vListeners) for (auto listener = s_vListeners.begin(); listener != s_vListeners.end(); listener++)
{ {
if (listener->getParentNode() == pParentNode) if ((*listener)->getParentNode() == pParentNode)
{ {
listener->start(); (*listener)->start();
} }
} }
for (auto child : pParentNode->getChildren()) for (auto child = pParentNode->getChildren().begin(); child != pParentNode->getChildren().end(); child++)
{ {
EPhysicsManager::startAllListenersBindedWith(child); EPhysicsManager::startAllListenersBindedWith((*child));
} }
} }
void e2d::EPhysicsManager::stopAllListenersBindedWith(ENode * pParentNode) void e2d::EPhysicsManager::stopAllListenersBindedWith(ENode * pParentNode)
{ {
for (auto listener : s_vListeners) for (auto listener = s_vListeners.begin(); listener != s_vListeners.end(); listener++)
{ {
if (listener->getParentNode() == pParentNode) if ((*listener)->getParentNode() == pParentNode)
{ {
listener->stop(); (*listener)->stop();
} }
} }
for (auto child : pParentNode->getChildren()) for (auto child = pParentNode->getChildren().begin(); child != pParentNode->getChildren().end(); child++)
{ {
EPhysicsManager::stopAllListenersBindedWith(child); EPhysicsManager::stopAllListenersBindedWith((*child));
} }
} }
@ -208,7 +209,7 @@ void e2d::EPhysicsManager::_clearManager()
void e2d::EPhysicsManager::_clearAllListenersBindedWith(ENode * pParentNode) void e2d::EPhysicsManager::_clearAllListenersBindedWith(ENode * pParentNode)
{ {
for (size_t i = 0; i < s_vListeners.size();) for (UINT i = 0; i < s_vListeners.size();)
{ {
auto listener = s_vListeners[i]; auto listener = s_vListeners[i];
if (listener->getParentNode() == pParentNode) if (listener->getParentNode() == pParentNode)

View File

@ -47,22 +47,22 @@ void e2d::ETimerManager::bindTimer(ETimer * timer, ENode * pParentNode)
void e2d::ETimerManager::startTimers(const EString & name) void e2d::ETimerManager::startTimers(const EString & name)
{ {
for (auto t : s_vTimers) for (auto timer = s_vTimers.begin(); timer != s_vTimers.end(); timer++)
{ {
if (t->getName() == name) if ((*timer)->getName() == name)
{ {
t->start(); (*timer)->start();
} }
} }
} }
void e2d::ETimerManager::stopTimers(const EString & name) void e2d::ETimerManager::stopTimers(const EString & name)
{ {
for (auto t : s_vTimers) for (auto timer = s_vTimers.begin(); timer != s_vTimers.end(); timer++)
{ {
if (t->getName() == name) if ((*timer)->getName() == name)
{ {
t->stop(); (*timer)->stop();
} }
} }
} }
@ -96,31 +96,31 @@ void e2d::ETimerManager::stopAllTimersBindedWith(EScene * pParentScene)
void e2d::ETimerManager::startAllTimersBindedWith(ENode * pParentNode) void e2d::ETimerManager::startAllTimersBindedWith(ENode * pParentNode)
{ {
for (auto t : s_vTimers) for (auto timer = s_vTimers.begin(); timer != s_vTimers.end(); timer++)
{ {
if (t->getParentNode() == pParentNode) if ((*timer)->getParentNode() == pParentNode)
{ {
t->start(); (*timer)->start();
} }
} }
for (auto child : pParentNode->getChildren()) for (auto child = pParentNode->getChildren().begin(); child != pParentNode->getChildren().end(); child++)
{ {
ETimerManager::startAllTimersBindedWith(child); ETimerManager::startAllTimersBindedWith((*child));
} }
} }
void e2d::ETimerManager::stopAllTimersBindedWith(ENode * pParentNode) void e2d::ETimerManager::stopAllTimersBindedWith(ENode * pParentNode)
{ {
for (auto t : s_vTimers) for (auto timer = s_vTimers.begin(); timer != s_vTimers.end(); timer++)
{ {
if (t->getParentNode() == pParentNode) if ((*timer)->getParentNode() == pParentNode)
{ {
t->stop(); (*timer)->stop();
} }
} }
for (auto child : pParentNode->getChildren()) for (auto child = pParentNode->getChildren().begin(); child != pParentNode->getChildren().end(); child++)
{ {
ETimerManager::stopAllTimersBindedWith(child); ETimerManager::stopAllTimersBindedWith((*child));
} }
} }
@ -148,9 +148,9 @@ void e2d::ETimerManager::_clearManager()
void e2d::ETimerManager::_resetAllTimers() void e2d::ETimerManager::_resetAllTimers()
{ {
for (const auto & t : s_vTimers) for (auto timer = s_vTimers.begin(); timer != s_vTimers.end(); timer++)
{ {
t->m_tLast = GetNow(); (*timer)->m_tLast = GetNow();
} }
} }

View File

@ -1,6 +1,6 @@
#include "..\ecommon.h" #include "..\ecommon.h"
e2d::EPhysicsMsg::INTERSECT_RELATION e2d::EPhysicsMsg::s_nRelation = e2d::EPhysicsMsg::INTERSECT_RELATION::UNKNOWN; e2d::EPhysicsMsg::INTERSECT_RELATION e2d::EPhysicsMsg::s_nRelation = e2d::EPhysicsMsg::UNKNOWN;
e2d::EGeometry * e2d::EPhysicsMsg::s_pActiveGeometry = nullptr; e2d::EGeometry * e2d::EPhysicsMsg::s_pActiveGeometry = nullptr;
e2d::EGeometry * e2d::EPhysicsMsg::s_pPassiveGeometry = nullptr; e2d::EGeometry * e2d::EPhysicsMsg::s_pPassiveGeometry = nullptr;

View File

@ -5,7 +5,7 @@
e2d::EButton::EButton() e2d::EButton::EButton()
: m_Callback((const BUTTON_CLICK_CALLBACK &)nullptr) : m_Callback((const BUTTON_CLICK_CALLBACK &)nullptr)
, m_eStatus(STATUS::NORMAL) , m_eStatus(EButton::NORMAL)
, m_bEnable(true) , m_bEnable(true)
, m_bIsSelected(false) , m_bIsSelected(false)
, m_pNormal(nullptr) , m_pNormal(nullptr)
@ -20,14 +20,30 @@ e2d::EButton::EButton()
} }
e2d::EButton::EButton(ENode * normal, const BUTTON_CLICK_CALLBACK & callback) e2d::EButton::EButton(ENode * normal, const BUTTON_CLICK_CALLBACK & callback)
: EButton() : m_Callback((const BUTTON_CLICK_CALLBACK &)nullptr)
, m_eStatus(EButton::NORMAL)
, m_bEnable(true)
, m_bIsSelected(false)
, m_pNormal(nullptr)
, m_pMouseover(nullptr)
, m_pSelected(nullptr)
, m_pDisabled(nullptr)
, m_pListener(nullptr)
{ {
this->setNormal(normal); this->setNormal(normal);
this->setCallback(callback); this->setCallback(callback);
} }
e2d::EButton::EButton(ENode * normal, ENode * selected, const BUTTON_CLICK_CALLBACK & callback) e2d::EButton::EButton(ENode * normal, ENode * selected, const BUTTON_CLICK_CALLBACK & callback)
: EButton() : m_Callback((const BUTTON_CLICK_CALLBACK &)nullptr)
, m_eStatus(EButton::NORMAL)
, m_bEnable(true)
, m_bIsSelected(false)
, m_pNormal(nullptr)
, m_pMouseover(nullptr)
, m_pSelected(nullptr)
, m_pDisabled(nullptr)
, m_pListener(nullptr)
{ {
this->setNormal(normal); this->setNormal(normal);
this->setSelected(selected); this->setSelected(selected);
@ -35,7 +51,15 @@ e2d::EButton::EButton(ENode * normal, ENode * selected, const BUTTON_CLICK_CALLB
} }
e2d::EButton::EButton(ENode * normal, ENode * mouseover, ENode * selected, const BUTTON_CLICK_CALLBACK & callback) e2d::EButton::EButton(ENode * normal, ENode * mouseover, ENode * selected, const BUTTON_CLICK_CALLBACK & callback)
: EButton() : m_Callback((const BUTTON_CLICK_CALLBACK &)nullptr)
, m_eStatus(EButton::NORMAL)
, m_bEnable(true)
, m_bIsSelected(false)
, m_pNormal(nullptr)
, m_pMouseover(nullptr)
, m_pSelected(nullptr)
, m_pDisabled(nullptr)
, m_pListener(nullptr)
{ {
this->setNormal(normal); this->setNormal(normal);
this->setMouseOver(mouseover); this->setMouseOver(mouseover);
@ -44,7 +68,15 @@ e2d::EButton::EButton(ENode * normal, ENode * mouseover, ENode * selected, const
} }
e2d::EButton::EButton(ENode * normal, ENode * mouseover, ENode * selected, ENode * disabled, const BUTTON_CLICK_CALLBACK & callback) e2d::EButton::EButton(ENode * normal, ENode * mouseover, ENode * selected, ENode * disabled, const BUTTON_CLICK_CALLBACK & callback)
: EButton() : m_Callback((const BUTTON_CLICK_CALLBACK &)nullptr)
, m_eStatus(EButton::NORMAL)
, m_bEnable(true)
, m_bIsSelected(false)
, m_pNormal(nullptr)
, m_pMouseover(nullptr)
, m_pSelected(nullptr)
, m_pDisabled(nullptr)
, m_pListener(nullptr)
{ {
this->setNormal(normal); this->setNormal(normal);
this->setMouseOver(mouseover); this->setMouseOver(mouseover);
@ -207,11 +239,11 @@ void e2d::EButton::_updateVisiable()
if (m_bEnable) if (m_bEnable)
{ {
if (m_eStatus == STATUS::SELECTED && m_pSelected) if (m_eStatus == EButton::SELECTED && m_pSelected)
{ {
m_pSelected->setVisiable(true); m_pSelected->setVisiable(true);
} }
else if (m_eStatus == STATUS::MOUSEOVER && m_pMouseover) else if (m_eStatus == EButton::MOUSEOVER && m_pMouseover)
{ {
m_pMouseover->setVisiable(true); m_pMouseover->setVisiable(true);
} }
@ -258,7 +290,7 @@ void e2d::EButton::_updateStatus()
{ {
// 鼠标左键按下,且位于按钮内时,标记 m_bIsSelected 为 true // 鼠标左键按下,且位于按钮内时,标记 m_bIsSelected 为 true
m_bIsSelected = true; m_bIsSelected = true;
_setStatus(STATUS::SELECTED); _setStatus(EButton::SELECTED);
return; return;
} }
} }
@ -267,17 +299,17 @@ void e2d::EButton::_updateStatus()
{ {
if (pSelected->isPointIn(EMouseMsg::getPos())) if (pSelected->isPointIn(EMouseMsg::getPos()))
{ {
_setStatus(STATUS::SELECTED); _setStatus(EButton::SELECTED);
return; return;
} }
} }
else if (m_pNormal->isPointIn(EMouseMsg::getPos())) else if (m_pNormal->isPointIn(EMouseMsg::getPos()))
{ {
_setStatus(STATUS::MOUSEOVER); _setStatus(EButton::MOUSEOVER);
return; return;
} }
_setStatus(STATUS::NORMAL); _setStatus(EButton::NORMAL);
} }
} }

View File

@ -18,7 +18,16 @@ e2d::EButtonToggle::EButtonToggle()
} }
e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, const BUTTON_CLICK_CALLBACK & callback) e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, const BUTTON_CLICK_CALLBACK & callback)
: EButtonToggle() : EButton()
, m_bToggle(true)
, m_pNormalOn(nullptr)
, m_pMouseoverOn(nullptr)
, m_pSelectedOn(nullptr)
, m_pDisabledOn(nullptr)
, m_pNormalOff(nullptr)
, m_pMouseoverOff(nullptr)
, m_pSelectedOff(nullptr)
, m_pDisabledOff(nullptr)
{ {
this->setNormal(toggleOnNormal); this->setNormal(toggleOnNormal);
this->setNormalOff(toggleOffNormal); this->setNormalOff(toggleOffNormal);
@ -26,7 +35,16 @@ e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNorma
} }
e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, ENode * toggleOnSelected, ENode * toggleOffSelected, const BUTTON_CLICK_CALLBACK & callback) e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, ENode * toggleOnSelected, ENode * toggleOffSelected, const BUTTON_CLICK_CALLBACK & callback)
: EButtonToggle() : EButton()
, m_bToggle(true)
, m_pNormalOn(nullptr)
, m_pMouseoverOn(nullptr)
, m_pSelectedOn(nullptr)
, m_pDisabledOn(nullptr)
, m_pNormalOff(nullptr)
, m_pMouseoverOff(nullptr)
, m_pSelectedOff(nullptr)
, m_pDisabledOff(nullptr)
{ {
this->setNormal(toggleOnNormal); this->setNormal(toggleOnNormal);
this->setNormalOff(toggleOffNormal); this->setNormalOff(toggleOffNormal);
@ -36,7 +54,16 @@ e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNorma
} }
e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, ENode * toggleOnMouseOver, ENode * toggleOffMouseOver, ENode * toggleOnSelected, ENode * toggleOffSelected, const BUTTON_CLICK_CALLBACK & callback) e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, ENode * toggleOnMouseOver, ENode * toggleOffMouseOver, ENode * toggleOnSelected, ENode * toggleOffSelected, const BUTTON_CLICK_CALLBACK & callback)
: EButtonToggle() : EButton()
, m_bToggle(true)
, m_pNormalOn(nullptr)
, m_pMouseoverOn(nullptr)
, m_pSelectedOn(nullptr)
, m_pDisabledOn(nullptr)
, m_pNormalOff(nullptr)
, m_pMouseoverOff(nullptr)
, m_pSelectedOff(nullptr)
, m_pDisabledOff(nullptr)
{ {
this->setNormal(toggleOnNormal); this->setNormal(toggleOnNormal);
this->setNormalOff(toggleOffNormal); this->setNormalOff(toggleOffNormal);
@ -48,7 +75,16 @@ e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNorma
} }
e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, ENode * toggleOnMouseOver, ENode * toggleOffMouseOver, ENode * toggleOnSelected, ENode * toggleOffSelected, ENode * toggleOnDisabled, ENode * toggleOffDisabled, const BUTTON_CLICK_CALLBACK & callback) e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, ENode * toggleOnMouseOver, ENode * toggleOffMouseOver, ENode * toggleOnSelected, ENode * toggleOffSelected, ENode * toggleOnDisabled, ENode * toggleOffDisabled, const BUTTON_CLICK_CALLBACK & callback)
: EButtonToggle() : EButton()
, m_bToggle(true)
, m_pNormalOn(nullptr)
, m_pMouseoverOn(nullptr)
, m_pSelectedOn(nullptr)
, m_pDisabledOn(nullptr)
, m_pNormalOff(nullptr)
, m_pMouseoverOff(nullptr)
, m_pSelectedOff(nullptr)
, m_pDisabledOff(nullptr)
{ {
this->setNormal(toggleOnNormal); this->setNormal(toggleOnNormal);
this->setNormalOff(toggleOffNormal); this->setNormalOff(toggleOffNormal);

View File

@ -7,7 +7,7 @@ e2d::EMenu::EMenu()
} }
e2d::EMenu::EMenu(int number, EButton * button1, ...) e2d::EMenu::EMenu(int number, EButton * button1, ...)
: EMenu() : m_bEnable(true)
{ {
EButton ** ppButton = &button1; EButton ** ppButton = &button1;
@ -35,15 +35,15 @@ void e2d::EMenu::setEnable(bool enable)
{ {
m_bEnable = enable; m_bEnable = enable;
for (auto &button : m_vButtons) for (auto button = m_vButtons.begin(); button != m_vButtons.end(); button++)
{ {
if (enable) if (enable)
{ {
button->m_pListener->start(); (*button)->m_pListener->start();
} }
else else
{ {
button->m_pListener->stop(); (*button)->m_pListener->stop();
} }
} }
} }

View File

@ -35,7 +35,26 @@ e2d::ENode::ENode()
} }
e2d::ENode::ENode(const EString & name) e2d::ENode::ENode(const EString & name)
: ENode() : m_nOrder(0)
, m_fScaleX(1.0f)
, m_fScaleY(1.0f)
, m_fRotation(0)
, m_fSkewAngleX(0)
, m_fSkewAngleY(0)
, m_fDisplayOpacity(1.0f)
, m_fRealOpacity(1.0f)
, m_fPivotX(s_fDefaultPiovtX)
, m_fPivotY(s_fDefaultPiovtY)
, m_MatriInitial(D2D1::Matrix3x2F::Identity())
, m_MatriFinal(D2D1::Matrix3x2F::Identity())
, m_bVisiable(true)
, m_bDisplayedInScene(false)
, m_pGeometry(nullptr)
, m_pParent(nullptr)
, m_pParentScene(nullptr)
, m_nHashName(0)
, m_bSortChildrenNeeded(false)
, m_bTransformNeeded(false)
{ {
setName(name); setName(name);
} }
@ -48,9 +67,9 @@ e2d::ENode::~ENode()
EActionManager::_clearAllActionsBindedWith(this); EActionManager::_clearAllActionsBindedWith(this);
EPhysicsManager::_clearAllListenersBindedWith(this); EPhysicsManager::_clearAllListenersBindedWith(this);
EPhysicsManager::_delGeometry(m_pGeometry); EPhysicsManager::_delGeometry(m_pGeometry);
for (auto child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{ {
SafeRelease(&child); SafeRelease(&(*child));
} }
} }
@ -78,8 +97,8 @@ void e2d::ENode::_update()
{ {
this->_sortChildren(); this->_sortChildren();
size_t size = m_vChildren.size(); UINT size = m_vChildren.size();
size_t i; UINT i;
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
{ {
auto child = m_vChildren[i]; auto child = m_vChildren[i];
@ -123,9 +142,9 @@ void e2d::ENode::_drawGeometry()
} }
// 绘制所有子节点的几何形状 // 绘制所有子节点的几何形状
for (auto &child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{ {
child->_drawGeometry(); (*child)->_drawGeometry();
} }
} }
@ -136,9 +155,9 @@ void e2d::ENode::_onEnter()
this->m_bDisplayedInScene = true; this->m_bDisplayedInScene = true;
this->onEnter(); this->onEnter();
for (const auto &child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{ {
child->_onEnter(); (*child)->_onEnter();
} }
} }
} }
@ -150,9 +169,9 @@ void e2d::ENode::_onExit()
this->m_bDisplayedInScene = false; this->m_bDisplayedInScene = false;
this->onExit(); this->onExit();
for (const auto &child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{ {
child->_onExit(); (*child)->_onExit();
} }
} }
} }
@ -208,9 +227,9 @@ void e2d::ENode::_updateTransform()
void e2d::ENode::_updateChildrenTransform() void e2d::ENode::_updateChildrenTransform()
{ {
for (const auto &child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{ {
_updateTransform(child); _updateTransform((*child));
} }
} }
@ -231,9 +250,9 @@ void e2d::ENode::_updateTransform(ENode * node)
void e2d::ENode::_updateChildrenOpacity() void e2d::ENode::_updateChildrenOpacity()
{ {
for (const auto &child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{ {
_updateOpacity(child); _updateOpacity((*child));
} }
} }
@ -578,7 +597,7 @@ std::vector<e2d::ENode*>& e2d::ENode::getChildren()
return m_vChildren; return m_vChildren;
} }
size_t e2d::ENode::getChildrenCount() const UINT e2d::ENode::getChildrenCount() const
{ {
return m_vChildren.size(); return m_vChildren.size();
} }
@ -589,11 +608,11 @@ e2d::ENode * e2d::ENode::getChild(const EString & name)
unsigned int hash = name.hash(); unsigned int hash = name.hash();
for (const auto& child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{ {
// 不同的名称可能会有相同的 Hash 值,但是先比较 Hash 可以提升搜索速度 // 不同的名称可能会有相同的 Hash 值,但是先比较 Hash 可以提升搜索速度
if (child->m_nHashName == hash && child->m_sName == name) if ((*child)->m_nHashName == hash && (*child)->m_sName == name)
return child; return (*child);
} }
return nullptr; return nullptr;
} }
@ -617,8 +636,8 @@ bool e2d::ENode::removeChild(ENode * child)
if (child) if (child)
{ {
size_t size = m_vChildren.size(); UINT size = m_vChildren.size();
for (size_t i = 0; i < size; i++) for (UINT i = 0; i < size; i++)
{ {
if (m_vChildren[i] == child) if (m_vChildren[i] == child)
{ {
@ -649,8 +668,8 @@ void e2d::ENode::removeChild(const EString & childName)
// 计算名称 Hash 值 // 计算名称 Hash 值
unsigned int hash = childName.hash(); unsigned int hash = childName.hash();
size_t size = m_vChildren.size(); UINT size = m_vChildren.size();
for (size_t i = 0; i < size; i++) for (UINT i = 0; i < size; i++)
{ {
auto child = m_vChildren[i]; auto child = m_vChildren[i];
if (child->m_nHashName == hash && child->m_sName == childName) if (child->m_nHashName == hash && child->m_sName == childName)
@ -671,10 +690,10 @@ void e2d::ENode::removeChild(const EString & childName)
void e2d::ENode::clearAllChildren() void e2d::ENode::clearAllChildren()
{ {
// 所有节点的引用计数减一 // 所有节点的引用计数减一
for (auto child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{ {
child->_onExit(); (*child)->_onExit();
child->release(); (*child)->release();
} }
// 清空储存节点的容器 // 清空储存节点的容器
m_vChildren.clear(); m_vChildren.clear();
@ -733,8 +752,8 @@ bool e2d::ENode::isPointIn(EPoint point)
} }
else else
{ {
for (const auto & child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
if (child->isPointIn(point)) if ((*child)->isPointIn(point))
return true; return true;
} }
return false; return false;
@ -794,8 +813,8 @@ void e2d::ENode::setName(const EString & name)
void e2d::ENode::_setParentScene(EScene * scene) void e2d::ENode::_setParentScene(EScene * scene)
{ {
m_pParentScene = scene; m_pParentScene = scene;
for (const auto &child : m_vChildren) for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{ {
child->_setParentScene(scene); (*child)->_setParentScene(scene);
} }
} }

View File

@ -10,19 +10,25 @@ e2d::ESprite::ESprite()
} }
e2d::ESprite::ESprite(ETexture * texture) e2d::ESprite::ESprite(ETexture * texture)
: ESprite() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_pTexture(nullptr)
{ {
loadFrom(texture); loadFrom(texture);
} }
e2d::ESprite::ESprite(ESpriteFrame * spriteFrame) e2d::ESprite::ESprite(ESpriteFrame * spriteFrame)
: ESprite() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_pTexture(nullptr)
{ {
loadFrom(spriteFrame); loadFrom(spriteFrame);
} }
e2d::ESprite::ESprite(const EString & imageFileName) e2d::ESprite::ESprite(const EString & imageFileName)
: ESprite() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_pTexture(nullptr)
{ {
loadFrom(imageFileName); loadFrom(imageFileName);
} }
@ -34,7 +40,9 @@ e2d::ESprite::ESprite(const EString & imageFileName, float x, float y, float wid
} }
e2d::ESprite::ESprite(LPCTSTR resourceName, LPCTSTR resourceType) e2d::ESprite::ESprite(LPCTSTR resourceName, LPCTSTR resourceType)
: ESprite() : m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_pTexture(nullptr)
{ {
loadFrom(resourceName, resourceType); loadFrom(resourceName, resourceType);
} }

View File

@ -10,20 +10,26 @@ e2d::EText::EText()
} }
e2d::EText::EText(const EString & text) e2d::EText::EText(const EString & text)
: EText() : m_bWordWrapping(false)
, m_pFont(nullptr)
, m_fWordWrappingWidth(0)
{ {
this->setText(text); this->setText(text);
this->setFont(new EFont()); this->setFont(new EFont());
} }
e2d::EText::EText(EFont * font) e2d::EText::EText(EFont * font)
: EText() : m_bWordWrapping(false)
, m_pFont(nullptr)
, m_fWordWrappingWidth(0)
{ {
this->setFont(font); this->setFont(font);
} }
e2d::EText::EText(const EString & text, EFont * font) e2d::EText::EText(const EString & text, EFont * font)
: EText() : m_bWordWrapping(false)
, m_pFont(nullptr)
, m_fWordWrappingWidth(0)
{ {
this->setText(text); this->setText(text);
this->setFont(font); this->setFont(font);

View File

@ -127,24 +127,24 @@ bool e2d::EMusicUtils::stopMusic(const EString & musicName)
void e2d::EMusicUtils::pauseAllMusics() void e2d::EMusicUtils::pauseAllMusics()
{ {
for (auto& iter : getMciPlayerList()) for (auto iter = getMciPlayerList().begin(); iter != getMciPlayerList().end(); iter++)
{ {
iter.second->pause(); (*iter).second->pause();
} }
} }
void e2d::EMusicUtils::resumeAllMusics() void e2d::EMusicUtils::resumeAllMusics()
{ {
for (auto& iter : getMciPlayerList()) for (auto iter = getMciPlayerList().begin(); iter != getMciPlayerList().end(); iter++)
{ {
iter.second->resume(); (*iter).second->resume();
} }
} }
void e2d::EMusicUtils::stopAllMusics() void e2d::EMusicUtils::stopAllMusics()
{ {
for (auto& iter : getMciPlayerList()) for (auto iter = getMciPlayerList().begin(); iter != getMciPlayerList().end(); iter++)
{ {
iter.second->stop(); (*iter).second->stop();
} }
} }

View File

@ -8,14 +8,20 @@ e2d::ETimer::ETimer()
, m_nRunTimes(0) , m_nRunTimes(0)
, m_pParentNode(nullptr) , m_pParentNode(nullptr)
, m_Callback(nullptr) , m_Callback(nullptr)
, m_nInterval(0) , m_nInterval()
, m_nRepeatTimes(0) , m_nRepeatTimes(-1)
, m_bAtOnce(false) , m_bAtOnce(false)
{ {
} }
e2d::ETimer::ETimer(const TIMER_CALLBACK & callback, int repeatTimes /* = -1 */, LONGLONG interval /* = 0 */, bool atOnce /* = false */) e2d::ETimer::ETimer(const TIMER_CALLBACK & callback, int repeatTimes /* = -1 */, LONGLONG interval /* = 0 */, bool atOnce /* = false */)
: ETimer() : m_bRunning(false)
, m_nRunTimes(0)
, m_pParentNode(nullptr)
, m_Callback(nullptr)
, m_nInterval()
, m_nRepeatTimes(-1)
, m_bAtOnce(false)
{ {
this->setCallback(callback); this->setCallback(callback);
this->setRepeatTimes(repeatTimes); this->setRepeatTimes(repeatTimes);
@ -24,7 +30,13 @@ e2d::ETimer::ETimer(const TIMER_CALLBACK & callback, int repeatTimes /* = -1 */,
} }
e2d::ETimer::ETimer(const EString & name, const TIMER_CALLBACK & callback, int repeatTimes /* = -1 */, LONGLONG interval /* = 0 */, bool atOnce /* = false */) e2d::ETimer::ETimer(const EString & name, const TIMER_CALLBACK & callback, int repeatTimes /* = -1 */, LONGLONG interval /* = 0 */, bool atOnce /* = false */)
: ETimer() : m_bRunning(false)
, m_nRunTimes(0)
, m_pParentNode(nullptr)
, m_Callback(nullptr)
, m_nInterval()
, m_nRepeatTimes(-1)
, m_bAtOnce(false)
{ {
this->setName(name); this->setName(name);
this->setCallback(callback); this->setCallback(callback);
@ -41,7 +53,7 @@ bool e2d::ETimer::isRunning() const
void e2d::ETimer::start() void e2d::ETimer::start()
{ {
m_bRunning = true; m_bRunning = true;
m_tLast = steady_clock::now(); m_tLast = GetNow();
} }
void e2d::ETimer::stop() void e2d::ETimer::stop()
@ -66,7 +78,7 @@ void e2d::ETimer::setName(const EString & name)
void e2d::ETimer::setInterval(LONGLONG interval) void e2d::ETimer::setInterval(LONGLONG interval)
{ {
m_nInterval = max(interval, 0); SetInterval(m_nInterval, max(interval, 0));
} }
void e2d::ETimer::setCallback(const TIMER_CALLBACK & callback) void e2d::ETimer::setCallback(const TIMER_CALLBACK & callback)
@ -118,12 +130,12 @@ bool e2d::ETimer::_isReady()
if (m_bAtOnce && m_nRunTimes == 0) if (m_bAtOnce && m_nRunTimes == 0)
return true; return true;
if (m_nInterval == 0) if (m_nInterval.QuadPart == 0)
return true; return true;
if (GetInterval(m_tLast) >= m_nInterval) if (IsIntervalFull(m_tLast, m_nInterval))
{ {
m_tLast += milliseconds(m_nInterval); m_tLast.QuadPart += m_nInterval.QuadPart;
return true; return true;
} }
} }

View File

@ -25,11 +25,11 @@ bool e2d::ETransition::_isDelayEnough()
return true; return true;
} }
if (GetInterval(m_tLast) > 15) if (IsIntervalFull(m_tLast, m_nAnimationInterval))
{ {
// 重新记录时间 // 重新记录时间
m_tLast += milliseconds(15); m_tLast.QuadPart += m_nAnimationInterval.QuadPart;
m_fDuration += 15; m_fDuration += static_cast<float>(ToMilliseconds(m_nAnimationInterval.QuadPart));
// 计算动画进度 // 计算动画进度
m_fRateOfProgress = m_fDuration / m_fTotalDuration; m_fRateOfProgress = m_fDuration / m_fTotalDuration;
return true; return true;
@ -45,7 +45,7 @@ void e2d::ETransition::_stop()
void e2d::ETransition::_setTarget(EScene * prev, EScene * next) void e2d::ETransition::_setTarget(EScene * prev, EScene * next)
{ {
m_tLast = std::chrono::steady_clock::now(); m_tLast = GetNow();
m_pPrevScene = prev; m_pPrevScene = prev;
m_pNextScene = next; m_pNextScene = next;
_init(); _init();

View File

@ -23,22 +23,22 @@ void e2d::ETransitionMove::_update()
void e2d::ETransitionMove::_init() void e2d::ETransitionMove::_init()
{ {
if (m_Direct == MOVE_DIRECT::UP) if (m_Direct == ETransitionMove::UP)
{ {
m_Vec = EVec(0, -EApp::getHeight()); m_Vec = EVec(0, -EApp::getHeight());
m_NextPos = EPoint(0, EApp::getHeight()); m_NextPos = EPoint(0, EApp::getHeight());
} }
else if (m_Direct == MOVE_DIRECT::DOWN) else if (m_Direct == ETransitionMove::DOWN)
{ {
m_Vec = EVec(0, EApp::getHeight()); m_Vec = EVec(0, EApp::getHeight());
m_NextPos = EPoint(0, -EApp::getHeight()); m_NextPos = EPoint(0, -EApp::getHeight());
} }
else if (m_Direct == MOVE_DIRECT::LEFT) else if (m_Direct == ETransitionMove::LEFT)
{ {
m_Vec = EVec(-EApp::getWidth(), 0); m_Vec = EVec(-EApp::getWidth(), 0);
m_NextPos = EPoint(EApp::getWidth(), 0); m_NextPos = EPoint(EApp::getWidth(), 0);
} }
else if (m_Direct == MOVE_DIRECT::RIGHT) else if (m_Direct == ETransitionMove::RIGHT)
{ {
m_Vec = EVec(EApp::getWidth(), 0); m_Vec = EVec(EApp::getWidth(), 0);
m_NextPos = EPoint(-EApp::getWidth(), 0); m_NextPos = EPoint(-EApp::getWidth(), 0);

View File

@ -7,7 +7,8 @@ static ID2D1HwndRenderTarget * s_pRenderTarget = nullptr;
static ID2D1SolidColorBrush * s_pSolidBrush = nullptr; static ID2D1SolidColorBrush * s_pSolidBrush = nullptr;
static IWICImagingFactory * s_pIWICFactory = nullptr; static IWICImagingFactory * s_pIWICFactory = nullptr;
static IDWriteFactory * s_pDWriteFactory = nullptr; static IDWriteFactory * s_pDWriteFactory = nullptr;
static steady_clock::time_point s_tNow; static LARGE_INTEGER s_tNow;
static LARGE_INTEGER s_tFreq;
HWND &GetHWnd() HWND &GetHWnd()
@ -105,12 +106,31 @@ ID2D1SolidColorBrush * &GetSolidColorBrush()
return s_pSolidBrush; return s_pSolidBrush;
} }
steady_clock::time_point &GetNow() LARGE_INTEGER &GetFreq()
{
if (s_tFreq.QuadPart == 0)
{
QueryPerformanceFrequency(&s_tFreq); // »ñȡʱÖÓÆµÂÊ
}
return s_tFreq;
}
LARGE_INTEGER &GetNow()
{ {
return s_tNow; return s_tNow;
} }
long long GetInterval(steady_clock::time_point tLast) bool IsIntervalFull(const LARGE_INTEGER& tLast, const LARGE_INTEGER& tInterval)
{ {
return duration_cast<milliseconds>(s_tNow - tLast).count(); return (s_tNow.QuadPart - tLast.QuadPart) >= tInterval.QuadPart;
} }
LONGLONG ToMilliseconds(LONGLONG tLast)
{
return tLast * 1000LL / GetFreq().QuadPart;
}
void SetInterval(LARGE_INTEGER& nInterval, LONGLONG nIntervalMS)
{
nInterval.QuadPart = static_cast<LONGLONG>(GetFreq().QuadPart * nIntervalMS / 1000.0);
}

View File

@ -1,7 +1,5 @@
#pragma once #pragma once
#include "..\emacros.h" #include "..\emacros.h"
#include <chrono>
using namespace std::chrono;
#ifndef HINST_THISCOMPONENT #ifndef HINST_THISCOMPONENT
@ -22,9 +20,15 @@ IWICImagingFactory * &GetImagingFactory();
IDWriteFactory * &GetDirectWriteFactory(); IDWriteFactory * &GetDirectWriteFactory();
std::chrono::steady_clock::time_point &GetNow(); LARGE_INTEGER &GetFreq();
long long GetInterval(std::chrono::steady_clock::time_point tLast); LARGE_INTEGER &GetNow();
bool IsIntervalFull(const LARGE_INTEGER& tLast, const LARGE_INTEGER& tInterval);
LONGLONG ToMilliseconds(LONGLONG tLast);
void SetInterval(LARGE_INTEGER& nInterval, LONGLONG nIntervalMS);
template<class Interface> template<class Interface>

View File

@ -1,6 +1,5 @@
#pragma once #pragma once
#include "enodes.h" #include "enodes.h"
#include <chrono>
namespace e2d namespace e2d
{ {
@ -82,8 +81,8 @@ protected:
bool m_bInit; bool m_bInit;
ENode * m_pTarget; ENode * m_pTarget;
EScene * m_pParentScene; EScene * m_pParentScene;
LONGLONG m_nAnimationInterval; LARGE_INTEGER m_nAnimationInterval;
std::chrono::steady_clock::time_point m_tLast; LARGE_INTEGER m_tLast;
}; };

View File

@ -12,7 +12,7 @@
#error Easy2D is only for C++ #error Easy2D is only for C++
#endif #endif
#if _MSC_VER < 1900 #if _MSC_VER < 1600
#error Do Visual Studio 2015/2017 specific stuff #error Do Visual Studio 2015/2017 specific stuff
#endif #endif

View File

@ -144,22 +144,14 @@ private:
virtual ~EApp(); virtual ~EApp();
// 游戏主循环
void _mainLoop();
// 游戏控制流程
void _update(); void _update();
// 渲染游戏画面
void _render(); void _render();
// 进入下一场景
void _enterNextScene(); void _enterNextScene();
// 刷新游戏时间
void _updateTime(); void _updateTime();
// 窗口程序
static LRESULT CALLBACK WndProc( static LRESULT CALLBACK WndProc(
HWND hWnd, HWND hWnd,
UINT message, UINT message,
@ -175,7 +167,7 @@ private:
EString m_sTitle; EString m_sTitle;
EString m_sAppName; EString m_sAppName;
UINT32 m_ClearColor; UINT32 m_ClearColor;
LONGLONG m_nAnimationInterval; LARGE_INTEGER m_nAnimationInterval;
EScene * m_pCurrentScene; EScene * m_pCurrentScene;
EScene * m_pNextScene; EScene * m_pNextScene;
EWindowStyle m_WindowStyle; EWindowStyle m_WindowStyle;

View File

@ -506,7 +506,7 @@ public:
}; };
// 按键键值集合 // 按键键值集合
enum class KEY enum KEY
{ {
A = 'A', B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, // 字母键值 A = 'A', B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, // 字母键值
NUM0 = '0', NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, // 数字键值 NUM0 = '0', NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, // 数字键值

View File

@ -29,6 +29,7 @@
#include <assert.h> #include <assert.h>
// C RunTime Header Files // C RunTime Header Files
#include <stdio.h>
#include <wchar.h> #include <wchar.h>
#include <d2d1.h> #include <d2d1.h>
#include <d2d1helper.h> #include <d2d1helper.h>

View File

@ -1,6 +1,5 @@
#pragma once #pragma once
#include "ebase.h" #include "ebase.h"
#include <chrono>
#include <random> #include <random>
namespace e2d namespace e2d
@ -99,8 +98,8 @@ protected:
int m_nRepeatTimes; int m_nRepeatTimes;
ENode * m_pParentNode; ENode * m_pParentNode;
TIMER_CALLBACK m_Callback; TIMER_CALLBACK m_Callback;
LONGLONG m_nInterval; LARGE_INTEGER m_nInterval;
std::chrono::steady_clock::time_point m_tLast; LARGE_INTEGER m_tLast;
}; };

View File

@ -1,6 +1,5 @@
#pragma once #pragma once
#include "ebase.h" #include "ebase.h"
#include <chrono>
namespace e2d namespace e2d
{ {
@ -41,7 +40,8 @@ protected:
float m_fRateOfProgress; float m_fRateOfProgress;
EScene * m_pPrevScene; EScene * m_pPrevScene;
EScene * m_pNextScene; EScene * m_pNextScene;
std::chrono::steady_clock::time_point m_tLast; LARGE_INTEGER m_tLast;
LARGE_INTEGER m_nAnimationInterval;
}; };

20
project/vs2010/Easy2D.sln Normal file
View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Easy2D", "Easy2D.vcxproj", "{47AF11E1-8725-4ECA-B8CF-951ABC397B31}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{47AF11E1-8725-4ECA-B8CF-951ABC397B31}.Debug|Win32.ActiveCfg = Debug|Win32
{47AF11E1-8725-4ECA-B8CF-951ABC397B31}.Debug|Win32.Build.0 = Debug|Win32
{47AF11E1-8725-4ECA-B8CF-951ABC397B31}.Release|Win32.ActiveCfg = Release|Win32
{47AF11E1-8725-4ECA-B8CF-951ABC397B31}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{47AF11E1-8725-4ECA-B8CF-951ABC397B31}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>Easy2D</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetName>Easy2Dw</TargetName>
<OutDir>$(SolutionDir)$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetName>Easy2Ddw</TargetName>
<OutDir>$(SolutionDir)$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>
</DebugInformationFormat>
<MinimalRebuild>false</MinimalRebuild>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>
</DebugInformationFormat>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\core\eactions.h" />
<ClInclude Include="..\..\core\easy2d.h" />
<ClInclude Include="..\..\core\ebase.h" />
<ClInclude Include="..\..\core\ecommon.h" />
<ClInclude Include="..\..\core\egeometry.h" />
<ClInclude Include="..\..\core\elisteners.h" />
<ClInclude Include="..\..\core\emacros.h" />
<ClInclude Include="..\..\core\emanagers.h" />
<ClInclude Include="..\..\core\enodes.h" />
<ClInclude Include="..\..\core\etools.h" />
<ClInclude Include="..\..\core\etransitions.h" />
<ClInclude Include="..\..\core\Win\MciPlayer.h" />
<ClInclude Include="..\..\core\Win\winbase.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\core\Action\EAction.cpp" />
<ClCompile Include="..\..\core\Action\EActionCallback.cpp" />
<ClCompile Include="..\..\core\Action\EActionDelay.cpp" />
<ClCompile Include="..\..\core\Action\EActionGradual.cpp" />
<ClCompile Include="..\..\core\Action\EActionLoop.cpp" />
<ClCompile Include="..\..\core\Action\EActionMoveBy.cpp" />
<ClCompile Include="..\..\core\Action\EActionMoveTo.cpp" />
<ClCompile Include="..\..\core\Action\EActionOpacityBy.cpp" />
<ClCompile Include="..\..\core\Action\EActionOpacityTo.cpp" />
<ClCompile Include="..\..\core\Action\EActionRotateBy.cpp" />
<ClCompile Include="..\..\core\Action\EActionRotateTo.cpp" />
<ClCompile Include="..\..\core\Action\EActionScaleBy.cpp" />
<ClCompile Include="..\..\core\Action\EActionScaleTo.cpp" />
<ClCompile Include="..\..\core\Action\EActionSequence.cpp" />
<ClCompile Include="..\..\core\Action\EActionTwo.cpp" />
<ClCompile Include="..\..\core\Action\EActionTwoAtSameTime.cpp" />
<ClCompile Include="..\..\core\Action\EAnimation.cpp" />
<ClCompile Include="..\..\core\Base\EApp.cpp" />
<ClCompile Include="..\..\core\Base\EScene.cpp" />
<ClCompile Include="..\..\core\Common\EFont.cpp" />
<ClCompile Include="..\..\core\Common\EObject.cpp" />
<ClCompile Include="..\..\core\Common\ESpriteFrame.cpp" />
<ClCompile Include="..\..\core\Common\EString.cpp" />
<ClCompile Include="..\..\core\Common\ETexture.cpp" />
<ClCompile Include="..\..\core\Geometry\ECircle.cpp" />
<ClCompile Include="..\..\core\Geometry\EEllipse.cpp" />
<ClCompile Include="..\..\core\Geometry\EGeometry.cpp" />
<ClCompile Include="..\..\core\Geometry\ERectangle.cpp" />
<ClCompile Include="..\..\core\Listener\EListener.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerKeyboard.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerKeyboardPress.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMouse.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMouseClick.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMouseDoubleClick.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMouseDrag.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMousePress.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerPhysics.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerPhysicsCollision.cpp" />
<ClCompile Include="..\..\core\Manager\EActionManager.cpp" />
<ClCompile Include="..\..\core\Manager\EMsgManager.cpp" />
<ClCompile Include="..\..\core\Manager\EObjectManager.cpp" />
<ClCompile Include="..\..\core\Manager\EPhysicsManager.cpp" />
<ClCompile Include="..\..\core\Manager\ETimerManager.cpp" />
<ClCompile Include="..\..\core\Msg\EKeyboardMsg.cpp" />
<ClCompile Include="..\..\core\Msg\EMouseMsg.cpp" />
<ClCompile Include="..\..\core\Msg\EPhysicsMsg.cpp" />
<ClCompile Include="..\..\core\Node\EButton.cpp" />
<ClCompile Include="..\..\core\Node\EButtonToggle.cpp" />
<ClCompile Include="..\..\core\Node\EMenu.cpp" />
<ClCompile Include="..\..\core\Node\ENode.cpp" />
<ClCompile Include="..\..\core\Node\ESprite.cpp" />
<ClCompile Include="..\..\core\Node\EText.cpp" />
<ClCompile Include="..\..\core\Tool\EFileUtils.cpp" />
<ClCompile Include="..\..\core\Tool\EMusicUtils.cpp" />
<ClCompile Include="..\..\core\Tool\ERandom.cpp" />
<ClCompile Include="..\..\core\Tool\ETimer.cpp" />
<ClCompile Include="..\..\core\Transition\ETransition.cpp" />
<ClCompile Include="..\..\core\Transition\ETransitionEmerge.cpp" />
<ClCompile Include="..\..\core\Transition\ETransitionFade.cpp" />
<ClCompile Include="..\..\core\Transition\ETransitionMove.cpp" />
<ClCompile Include="..\..\core\Win\MciPlayer.cpp" />
<ClCompile Include="..\..\core\Win\winbase.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,275 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="源文件\Base">
<UniqueIdentifier>{d4a509dd-1bc0-4456-9554-d414de91b50c}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Msg">
<UniqueIdentifier>{3ff66c81-6040-4f84-a39a-d21b4bb54819}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Action">
<UniqueIdentifier>{5be538cb-a432-4f84-9678-bbf408eca288}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Transition">
<UniqueIdentifier>{6c760a81-9bc8-4fb0-a145-8e119b783365}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Manager">
<UniqueIdentifier>{7b102f67-5905-4c0e-8400-51c128da026a}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Node">
<UniqueIdentifier>{c536c42c-283d-4a10-b19b-0699b4f1e051}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Tool">
<UniqueIdentifier>{17bdc67b-1801-4b69-b79b-ffcbbee8dae0}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Win">
<UniqueIdentifier>{7454d212-5d2e-4b0b-865c-30fb02d2878c}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Listener">
<UniqueIdentifier>{c5f168c6-1403-486a-9cae-ab29495a723c}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Common">
<UniqueIdentifier>{c907d829-e510-472c-bd47-cf4eab6f9266}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\Geometry">
<UniqueIdentifier>{508b39c8-a430-45c3-9405-364fbc281220}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\core\eactions.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\easy2d.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\ebase.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\ecommon.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\egeometry.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\elisteners.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\emacros.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\emanagers.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\enodes.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\etools.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\etransitions.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\core\Win\MciPlayer.h">
<Filter>源文件\Win</Filter>
</ClInclude>
<ClInclude Include="..\..\core\Win\winbase.h">
<Filter>源文件\Win</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\core\Base\EApp.cpp">
<Filter>源文件\Base</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Base\EScene.cpp">
<Filter>源文件\Base</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Msg\EKeyboardMsg.cpp">
<Filter>源文件\Msg</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Msg\EMouseMsg.cpp">
<Filter>源文件\Msg</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Msg\EPhysicsMsg.cpp">
<Filter>源文件\Msg</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EAction.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionCallback.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionDelay.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionGradual.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionLoop.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionMoveBy.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionMoveTo.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionOpacityBy.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionOpacityTo.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionRotateBy.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionRotateTo.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionScaleBy.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionScaleTo.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionSequence.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionTwo.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EActionTwoAtSameTime.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Action\EAnimation.cpp">
<Filter>源文件\Action</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Manager\EActionManager.cpp">
<Filter>源文件\Manager</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Manager\EMsgManager.cpp">
<Filter>源文件\Manager</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Manager\EObjectManager.cpp">
<Filter>源文件\Manager</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Manager\EPhysicsManager.cpp">
<Filter>源文件\Manager</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Manager\ETimerManager.cpp">
<Filter>源文件\Manager</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListener.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListenerKeyboard.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListenerKeyboardPress.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListenerMouse.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListenerMouseClick.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListenerMouseDoubleClick.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListenerMouseDrag.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListenerMousePress.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListenerPhysics.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Listener\EListenerPhysicsCollision.cpp">
<Filter>源文件\Listener</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Common\EFont.cpp">
<Filter>源文件\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Common\EObject.cpp">
<Filter>源文件\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Common\ESpriteFrame.cpp">
<Filter>源文件\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Common\EString.cpp">
<Filter>源文件\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Common\ETexture.cpp">
<Filter>源文件\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Geometry\ECircle.cpp">
<Filter>源文件\Geometry</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Geometry\EEllipse.cpp">
<Filter>源文件\Geometry</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Geometry\EGeometry.cpp">
<Filter>源文件\Geometry</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Geometry\ERectangle.cpp">
<Filter>源文件\Geometry</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Win\MciPlayer.cpp">
<Filter>源文件\Win</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Win\winbase.cpp">
<Filter>源文件\Win</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Tool\EFileUtils.cpp">
<Filter>源文件\Tool</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Tool\EMusicUtils.cpp">
<Filter>源文件\Tool</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Tool\ERandom.cpp">
<Filter>源文件\Tool</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Tool\ETimer.cpp">
<Filter>源文件\Tool</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Node\EButton.cpp">
<Filter>源文件\Node</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Node\EButtonToggle.cpp">
<Filter>源文件\Node</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Node\EMenu.cpp">
<Filter>源文件\Node</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Node\ENode.cpp">
<Filter>源文件\Node</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Node\ESprite.cpp">
<Filter>源文件\Node</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Node\EText.cpp">
<Filter>源文件\Node</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Transition\ETransition.cpp">
<Filter>源文件\Transition</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Transition\ETransitionEmerge.cpp">
<Filter>源文件\Transition</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Transition\ETransitionFade.cpp">
<Filter>源文件\Transition</Filter>
</ClCompile>
<ClCompile Include="..\..\core\Transition\ETransitionMove.cpp">
<Filter>源文件\Transition</Filter>
</ClCompile>
</ItemGroup>
</Project>

33
project/vs2017/Easy2D.sln Normal file
View File

@ -0,0 +1,33 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26730.12
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Easy2D", "Easy2D.vcxproj", "{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x64.ActiveCfg = Debug|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x64.Build.0 = Debug|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x64.Deploy.0 = Debug|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x86.ActiveCfg = Debug|Win32
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x86.Build.0 = Debug|Win32
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x86.Deploy.0 = Debug|Win32
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x64.ActiveCfg = Release|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x64.Build.0 = Release|x64
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x86.ActiveCfg = Release|Win32
{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FAC2BE2F-19AF-477A-8DC6-4645E66868A4}
EndGlobalSection
EndGlobal

View File

@ -1,274 +1,272 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32"> <ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64"> <ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64"> <ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion> <VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}</ProjectGuid> <ProjectGuid>{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>Easy2D</RootNamespace> <RootNamespace>Easy2D</RootNamespace>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>false</WholeProgramOptimization>
<WholeProgramOptimization>false</WholeProgramOptimization> <CharacterSet>Unicode</CharacterSet>
<CharacterSet>Unicode</CharacterSet> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset> <CharacterSet>Unicode</CharacterSet>
<CharacterSet>Unicode</CharacterSet> </PropertyGroup>
</PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType>
<ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries>
<UseDebugLibraries>false</UseDebugLibraries> <WholeProgramOptimization>false</WholeProgramOptimization>
<PlatformToolset>v141</PlatformToolset> <CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization> </PropertyGroup>
<CharacterSet>Unicode</CharacterSet> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
</PropertyGroup> <ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> </ImportGroup>
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="Shared">
</ImportGroup> </ImportGroup>
<ImportGroup Label="Shared"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
</ImportGroup> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> </ImportGroup>
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
</ImportGroup> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> </ImportGroup>
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
</ImportGroup> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> </ImportGroup>
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
</ImportGroup> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> </ImportGroup>
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <PropertyGroup Label="UserMacros" />
</ImportGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PropertyGroup Label="UserMacros" /> <LinkIncremental>true</LinkIncremental>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <TargetName>Easy2Ddw</TargetName>
<LinkIncremental>true</LinkIncremental> <OutDir>$(SolutionDir)$(Platform)\</OutDir>
<TargetName>Easy2Ddw</TargetName> <IntDir>$(Configuration)\$(Platform)\</IntDir>
<OutDir>$(SolutionDir)$(Platform)\</OutDir> </PropertyGroup>
<IntDir>$(Platform)\$(Configuration)\</IntDir> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PropertyGroup> <LinkIncremental>true</LinkIncremental>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <TargetName>Easy2Ddw</TargetName>
<LinkIncremental>true</LinkIncremental> <OutDir>$(SolutionDir)$(Platform)\</OutDir>
<TargetName>Easy2Ddw</TargetName> <IntDir>$(Configuration)\$(Platform)\</IntDir>
<OutDir>$(SolutionDir)$(Platform)\</OutDir> </PropertyGroup>
<IntDir>$(Platform)\$(Configuration)\</IntDir> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PropertyGroup> <LinkIncremental>false</LinkIncremental>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <TargetName>Easy2Dw</TargetName>
<LinkIncremental>false</LinkIncremental> <OutDir>$(SolutionDir)$(Platform)\</OutDir>
<TargetName>Easy2Dw</TargetName> <IntDir>$(Configuration)\$(Platform)\</IntDir>
<OutDir>$(SolutionDir)$(Platform)\</OutDir> </PropertyGroup>
<IntDir>$(Platform)\$(Configuration)\</IntDir> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PropertyGroup> <LinkIncremental>false</LinkIncremental>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <TargetName>Easy2Dw</TargetName>
<LinkIncremental>false</LinkIncremental> <OutDir>$(SolutionDir)$(Platform)\</OutDir>
<TargetName>Easy2Dw</TargetName> <IntDir>$(Configuration)\$(Platform)\</IntDir>
<OutDir>$(SolutionDir)$(Platform)\</OutDir> </PropertyGroup>
<IntDir>$(Platform)\$(Configuration)\</IntDir> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PropertyGroup> <ClCompile>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <PrecompiledHeader>NotUsing</PrecompiledHeader>
<ClCompile> <WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <Optimization>Disabled</Optimization>
<WarningLevel>Level3</WarningLevel> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>Disabled</Optimization> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DebugInformationFormat>None</DebugInformationFormat>
<SDLCheck>true</SDLCheck> <MinimalRebuild>false</MinimalRebuild>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> </ClCompile>
<MinimalRebuild>false</MinimalRebuild> <Link>
</ClCompile> <SubSystem>Console</SubSystem>
<Link> <GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem> </Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <Lib>
</Link> <AdditionalDependencies>
<Lib> </AdditionalDependencies>
<AdditionalDependencies> <IgnoreAllDefaultLibraries>
</AdditionalDependencies> </IgnoreAllDefaultLibraries>
<IgnoreAllDefaultLibraries> <AdditionalLibraryDirectories>
</IgnoreAllDefaultLibraries> </AdditionalLibraryDirectories>
<AdditionalLibraryDirectories> </Lib>
</AdditionalLibraryDirectories> <ProjectReference>
</Lib> <LinkLibraryDependencies>false</LinkLibraryDependencies>
<ProjectReference> </ProjectReference>
<LinkLibraryDependencies>false</LinkLibraryDependencies> </ItemDefinitionGroup>
</ProjectReference> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</ItemDefinitionGroup> <ClCompile>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PrecompiledHeader>NotUsing</PrecompiledHeader>
<ClCompile> <WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <Optimization>Disabled</Optimization>
<WarningLevel>Level3</WarningLevel> <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>Disabled</Optimization> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DebugInformationFormat>None</DebugInformationFormat>
<SDLCheck>true</SDLCheck> <MinimalRebuild>false</MinimalRebuild>
<DebugInformationFormat>None</DebugInformationFormat> </ClCompile>
<MinimalRebuild>false</MinimalRebuild> <Link>
</ClCompile> <SubSystem>Console</SubSystem>
<Link> <GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem> </Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <Lib>
</Link> <AdditionalDependencies>
<Lib> </AdditionalDependencies>
<AdditionalDependencies> <AdditionalLibraryDirectories>
</AdditionalDependencies> </AdditionalLibraryDirectories>
<AdditionalLibraryDirectories> </Lib>
</AdditionalLibraryDirectories> </ItemDefinitionGroup>
</Lib> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</ItemDefinitionGroup> <ClCompile>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PrecompiledHeader>NotUsing</PrecompiledHeader>
<ClCompile> <WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <Optimization>MaxSpeed</Optimization>
<WarningLevel>Level3</WarningLevel> <IntrinsicFunctions>true</IntrinsicFunctions>
<Optimization>MaxSpeed</Optimization> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<IntrinsicFunctions>true</IntrinsicFunctions> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DebugInformationFormat>None</DebugInformationFormat>
<SDLCheck>true</SDLCheck> </ClCompile>
<DebugInformationFormat>None</DebugInformationFormat> <Link>
</ClCompile> <SubSystem>Console</SubSystem>
<Link> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<SubSystem>Console</SubSystem> <OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <GenerateDebugInformation>true</GenerateDebugInformation>
<OptimizeReferences>true</OptimizeReferences> </Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <Lib>
</Link> <AdditionalDependencies>
<Lib> </AdditionalDependencies>
<AdditionalDependencies> <AdditionalLibraryDirectories>
</AdditionalDependencies> </AdditionalLibraryDirectories>
<AdditionalLibraryDirectories> <IgnoreSpecificDefaultLibraries>
</AdditionalLibraryDirectories> </IgnoreSpecificDefaultLibraries>
<IgnoreSpecificDefaultLibraries> </Lib>
</IgnoreSpecificDefaultLibraries> </ItemDefinitionGroup>
</Lib> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</ItemDefinitionGroup> <ClCompile>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PrecompiledHeader>NotUsing</PrecompiledHeader>
<ClCompile> <WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <Optimization>MaxSpeed</Optimization>
<WarningLevel>Level3</WarningLevel> <IntrinsicFunctions>true</IntrinsicFunctions>
<Optimization>MaxSpeed</Optimization> <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<IntrinsicFunctions>true</IntrinsicFunctions> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DebugInformationFormat>None</DebugInformationFormat>
<SDLCheck>true</SDLCheck> </ClCompile>
<DebugInformationFormat>None</DebugInformationFormat> <Link>
</ClCompile> <SubSystem>Console</SubSystem>
<Link> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<SubSystem>Console</SubSystem> <OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <GenerateDebugInformation>true</GenerateDebugInformation>
<OptimizeReferences>true</OptimizeReferences> </Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <Lib>
</Link> <AdditionalDependencies>
<Lib> </AdditionalDependencies>
<AdditionalDependencies> <AdditionalLibraryDirectories>
</AdditionalDependencies> </AdditionalLibraryDirectories>
<AdditionalLibraryDirectories> </Lib>
</AdditionalLibraryDirectories> </ItemDefinitionGroup>
</Lib> <ItemGroup>
</ItemDefinitionGroup> <ClCompile Include="..\..\core\Action\EAction.cpp" />
<ItemGroup> <ClCompile Include="..\..\core\Action\EActionCallback.cpp" />
<ClCompile Include="Action\EAction.cpp" /> <ClCompile Include="..\..\core\Action\EActionDelay.cpp" />
<ClCompile Include="Action\EActionCallback.cpp" /> <ClCompile Include="..\..\core\Action\EAnimation.cpp" />
<ClCompile Include="Action\EActionDelay.cpp" /> <ClCompile Include="..\..\core\Action\EActionMoveBy.cpp" />
<ClCompile Include="Action\EAnimation.cpp" /> <ClCompile Include="..\..\core\Action\EActionMoveTo.cpp" />
<ClCompile Include="Action\EActionMoveBy.cpp" /> <ClCompile Include="..\..\core\Action\EActionLoop.cpp" />
<ClCompile Include="Action\EActionMoveTo.cpp" /> <ClCompile Include="..\..\core\Action\EActionOpacityBy.cpp" />
<ClCompile Include="Action\EActionLoop.cpp" /> <ClCompile Include="..\..\core\Action\EActionOpacityTo.cpp" />
<ClCompile Include="Action\EActionOpacityBy.cpp" /> <ClCompile Include="..\..\core\Action\EActionRotateBy.cpp" />
<ClCompile Include="Action\EActionOpacityTo.cpp" /> <ClCompile Include="..\..\core\Action\EActionRotateTo.cpp" />
<ClCompile Include="Action\EActionRotateBy.cpp" /> <ClCompile Include="..\..\core\Action\EActionScaleBy.cpp" />
<ClCompile Include="Action\EActionRotateTo.cpp" /> <ClCompile Include="..\..\core\Action\EActionScaleTo.cpp" />
<ClCompile Include="Action\EActionScaleBy.cpp" /> <ClCompile Include="..\..\core\Action\EActionSequence.cpp" />
<ClCompile Include="Action\EActionScaleTo.cpp" /> <ClCompile Include="..\..\core\Action\EActionTwo.cpp" />
<ClCompile Include="Action\EActionSequence.cpp" /> <ClCompile Include="..\..\core\Action\EActionTwoAtSameTime.cpp" />
<ClCompile Include="Action\EActionTwo.cpp" /> <ClCompile Include="..\..\core\Action\EActionGradual.cpp" />
<ClCompile Include="Action\EActionTwoAtSameTime.cpp" /> <ClCompile Include="..\..\core\Base\EApp.cpp" />
<ClCompile Include="Action\EActionGradual.cpp" /> <ClCompile Include="..\..\core\Base\EScene.cpp" />
<ClCompile Include="Base\EApp.cpp" /> <ClCompile Include="..\..\core\Common\EFont.cpp" />
<ClCompile Include="Base\EScene.cpp" /> <ClCompile Include="..\..\core\Common\EObject.cpp" />
<ClCompile Include="Common\EFont.cpp" /> <ClCompile Include="..\..\core\Common\ESpriteFrame.cpp" />
<ClCompile Include="Common\EObject.cpp" /> <ClCompile Include="..\..\core\Common\EString.cpp" />
<ClCompile Include="Common\ESpriteFrame.cpp" /> <ClCompile Include="..\..\core\Common\ETexture.cpp" />
<ClCompile Include="Common\EString.cpp" /> <ClCompile Include="..\..\core\Geometry\ECircle.cpp" />
<ClCompile Include="Common\ETexture.cpp" /> <ClCompile Include="..\..\core\Geometry\EEllipse.cpp" />
<ClCompile Include="Geometry\ECircle.cpp" /> <ClCompile Include="..\..\core\Geometry\EGeometry.cpp" />
<ClCompile Include="Geometry\EEllipse.cpp" /> <ClCompile Include="..\..\core\Geometry\ERectangle.cpp" />
<ClCompile Include="Geometry\EGeometry.cpp" /> <ClCompile Include="..\..\core\Listener\EListenerPhysicsCollision.cpp" />
<ClCompile Include="Geometry\ERectangle.cpp" /> <ClCompile Include="..\..\core\Listener\EListenerKeyboard.cpp" />
<ClCompile Include="Listener\EListenerPhysicsCollision.cpp" /> <ClCompile Include="..\..\core\Listener\EListenerKeyboardPress.cpp" />
<ClCompile Include="Listener\EListenerKeyboard.cpp" /> <ClCompile Include="..\..\core\Listener\EListener.cpp" />
<ClCompile Include="Listener\EListenerKeyboardPress.cpp" /> <ClCompile Include="..\..\core\Listener\EListenerMouseClick.cpp" />
<ClCompile Include="Listener\EListener.cpp" /> <ClCompile Include="..\..\core\Listener\EListenerMouseDoubleClick.cpp" />
<ClCompile Include="Listener\EListenerMouseClick.cpp" /> <ClCompile Include="..\..\core\Listener\EListenerMouseDrag.cpp" />
<ClCompile Include="Listener\EListenerMouseDoubleClick.cpp" /> <ClCompile Include="..\..\core\Listener\EListenerMouse.cpp" />
<ClCompile Include="Listener\EListenerMouseDrag.cpp" /> <ClCompile Include="..\..\core\Listener\EListenerMousePress.cpp" />
<ClCompile Include="Listener\EListenerMouse.cpp" /> <ClCompile Include="..\..\core\Listener\EListenerPhysics.cpp" />
<ClCompile Include="Listener\EListenerMousePress.cpp" /> <ClCompile Include="..\..\core\Manager\EActionManager.cpp" />
<ClCompile Include="Listener\EListenerPhysics.cpp" /> <ClCompile Include="..\..\core\Manager\EMsgManager.cpp" />
<ClCompile Include="Manager\EActionManager.cpp" /> <ClCompile Include="..\..\core\Manager\EObjectManager.cpp" />
<ClCompile Include="Manager\EMsgManager.cpp" /> <ClCompile Include="..\..\core\Manager\EPhysicsManager.cpp" />
<ClCompile Include="Manager\EObjectManager.cpp" /> <ClCompile Include="..\..\core\Manager\ETimerManager.cpp" />
<ClCompile Include="Manager\EPhysicsManager.cpp" /> <ClCompile Include="..\..\core\Msg\EKeyboardMsg.cpp" />
<ClCompile Include="Manager\ETimerManager.cpp" /> <ClCompile Include="..\..\core\Msg\EMouseMsg.cpp" />
<ClCompile Include="Msg\EKeyboardMsg.cpp" /> <ClCompile Include="..\..\core\Msg\EPhysicsMsg.cpp" />
<ClCompile Include="Msg\EMouseMsg.cpp" /> <ClCompile Include="..\..\core\Node\EButton.cpp" />
<ClCompile Include="Msg\EPhysicsMsg.cpp" /> <ClCompile Include="..\..\core\Node\EButtonToggle.cpp" />
<ClCompile Include="Node\EButton.cpp" /> <ClCompile Include="..\..\core\Node\EMenu.cpp" />
<ClCompile Include="Node\EButtonToggle.cpp" /> <ClCompile Include="..\..\core\Node\ENode.cpp" />
<ClCompile Include="Node\EMenu.cpp" /> <ClCompile Include="..\..\core\Node\ESprite.cpp" />
<ClCompile Include="Node\ENode.cpp" /> <ClCompile Include="..\..\core\Node\EText.cpp" />
<ClCompile Include="Node\ESprite.cpp" /> <ClCompile Include="..\..\core\Tool\EFileUtils.cpp" />
<ClCompile Include="Node\EText.cpp" /> <ClCompile Include="..\..\core\Tool\EMusicUtils.cpp" />
<ClCompile Include="Tool\EFileUtils.cpp" /> <ClCompile Include="..\..\core\Tool\ERandom.cpp" />
<ClCompile Include="Tool\EMusicUtils.cpp" /> <ClCompile Include="..\..\core\Tool\ETimer.cpp" />
<ClCompile Include="Tool\ERandom.cpp" /> <ClCompile Include="..\..\core\Transition\ETransition.cpp" />
<ClCompile Include="Tool\ETimer.cpp" /> <ClCompile Include="..\..\core\Transition\ETransitionEmerge.cpp" />
<ClCompile Include="Transition\ETransition.cpp" /> <ClCompile Include="..\..\core\Transition\ETransitionFade.cpp" />
<ClCompile Include="Transition\ETransitionEmerge.cpp" /> <ClCompile Include="..\..\core\Transition\ETransitionMove.cpp" />
<ClCompile Include="Transition\ETransitionFade.cpp" /> <ClCompile Include="..\..\core\Win\MciPlayer.cpp" />
<ClCompile Include="Transition\ETransitionMove.cpp" /> <ClCompile Include="..\..\core\Win\winbase.cpp" />
<ClCompile Include="Win\MciPlayer.cpp" /> </ItemGroup>
<ClCompile Include="Win\winbase.cpp" /> <ItemGroup>
</ItemGroup> <ClInclude Include="..\..\core\eactions.h" />
<ItemGroup> <ClInclude Include="..\..\core\easy2d.h" />
<ClInclude Include="eactions.h" /> <ClInclude Include="..\..\core\ebase.h" />
<ClInclude Include="easy2d.h" /> <ClInclude Include="..\..\core\ecommon.h" />
<ClInclude Include="ebase.h" /> <ClInclude Include="..\..\core\egeometry.h" />
<ClInclude Include="ecommon.h" /> <ClInclude Include="..\..\core\elisteners.h" />
<ClInclude Include="egeometry.h" /> <ClInclude Include="..\..\core\emacros.h" />
<ClInclude Include="elisteners.h" /> <ClInclude Include="..\..\core\emanagers.h" />
<ClInclude Include="emacros.h" /> <ClInclude Include="..\..\core\enodes.h" />
<ClInclude Include="emanagers.h" /> <ClInclude Include="..\..\core\etools.h" />
<ClInclude Include="enodes.h" /> <ClInclude Include="..\..\core\etransitions.h" />
<ClInclude Include="etools.h" /> <ClInclude Include="..\..\core\Win\MciPlayer.h" />
<ClInclude Include="etransitions.h" /> <ClInclude Include="..\..\core\Win\winbase.h" />
<ClInclude Include="Win\MciPlayer.h" /> </ItemGroup>
<ClInclude Include="Win\winbase.h" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</ItemGroup> <ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> </ImportGroup>
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project> </Project>

View File

@ -1,245 +1,245 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Win"> <Filter Include="Win">
<UniqueIdentifier>{2f0f3d30-bfc2-4aea-a170-258bbaacaa79}</UniqueIdentifier> <UniqueIdentifier>{2f0f3d30-bfc2-4aea-a170-258bbaacaa79}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Tool"> <Filter Include="Tool">
<UniqueIdentifier>{42d46a92-c043-4667-8c20-358319e5c313}</UniqueIdentifier> <UniqueIdentifier>{42d46a92-c043-4667-8c20-358319e5c313}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Node"> <Filter Include="Node">
<UniqueIdentifier>{51864c81-02ee-4043-bf09-9ce3cbe5b6da}</UniqueIdentifier> <UniqueIdentifier>{51864c81-02ee-4043-bf09-9ce3cbe5b6da}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Base"> <Filter Include="Base">
<UniqueIdentifier>{261633d3-3814-40c7-bd6d-201ede6c6ade}</UniqueIdentifier> <UniqueIdentifier>{261633d3-3814-40c7-bd6d-201ede6c6ade}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Action"> <Filter Include="Action">
<UniqueIdentifier>{50293f38-87fe-4dde-b938-cf1b7a2921f8}</UniqueIdentifier> <UniqueIdentifier>{50293f38-87fe-4dde-b938-cf1b7a2921f8}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Transition"> <Filter Include="Transition">
<UniqueIdentifier>{563b19f2-4c5e-4362-983a-94d2ae724550}</UniqueIdentifier> <UniqueIdentifier>{563b19f2-4c5e-4362-983a-94d2ae724550}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Manager"> <Filter Include="Manager">
<UniqueIdentifier>{9031e36b-fa85-4b4e-8e80-657c7e68f283}</UniqueIdentifier> <UniqueIdentifier>{9031e36b-fa85-4b4e-8e80-657c7e68f283}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Listener"> <Filter Include="Listener">
<UniqueIdentifier>{b9bb1728-5106-4574-998e-8564b49cb4a1}</UniqueIdentifier> <UniqueIdentifier>{b9bb1728-5106-4574-998e-8564b49cb4a1}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Geometry"> <Filter Include="Geometry">
<UniqueIdentifier>{d5f86335-f3a0-450d-92a3-7edd9348d995}</UniqueIdentifier> <UniqueIdentifier>{d5f86335-f3a0-450d-92a3-7edd9348d995}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Common"> <Filter Include="Common">
<UniqueIdentifier>{be5d9314-b00a-4f11-bd2a-1f720dc32407}</UniqueIdentifier> <UniqueIdentifier>{be5d9314-b00a-4f11-bd2a-1f720dc32407}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Msg"> <Filter Include="Msg">
<UniqueIdentifier>{3c524aef-fb91-4f44-a3dc-bff34de229eb}</UniqueIdentifier> <UniqueIdentifier>{3c524aef-fb91-4f44-a3dc-bff34de229eb}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="Win\winbase.cpp"> <ClCompile Include="..\..\core\Win\winbase.cpp">
<Filter>Win</Filter> <Filter>Win</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Base\EApp.cpp"> <ClCompile Include="..\..\core\Base\EApp.cpp">
<Filter>Base</Filter> <Filter>Base</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Node\ENode.cpp"> <ClCompile Include="..\..\core\Node\ENode.cpp">
<Filter>Node</Filter> <Filter>Node</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Base\EScene.cpp"> <ClCompile Include="..\..\core\Base\EScene.cpp">
<Filter>Base</Filter> <Filter>Base</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Node\ESprite.cpp"> <ClCompile Include="..\..\core\Node\ESprite.cpp">
<Filter>Node</Filter> <Filter>Node</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Node\EText.cpp"> <ClCompile Include="..\..\core\Node\EText.cpp">
<Filter>Node</Filter> <Filter>Node</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EAction.cpp"> <ClCompile Include="..\..\core\Action\EAction.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionCallback.cpp"> <ClCompile Include="..\..\core\Action\EActionCallback.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionDelay.cpp"> <ClCompile Include="..\..\core\Action\EActionDelay.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionMoveBy.cpp"> <ClCompile Include="..\..\core\Action\EActionMoveBy.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionMoveTo.cpp"> <ClCompile Include="..\..\core\Action\EActionMoveTo.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionOpacityBy.cpp"> <ClCompile Include="..\..\core\Action\EActionOpacityBy.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionOpacityTo.cpp"> <ClCompile Include="..\..\core\Action\EActionOpacityTo.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionScaleBy.cpp"> <ClCompile Include="..\..\core\Action\EActionScaleBy.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionScaleTo.cpp"> <ClCompile Include="..\..\core\Action\EActionScaleTo.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionSequence.cpp"> <ClCompile Include="..\..\core\Action\EActionSequence.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionTwo.cpp"> <ClCompile Include="..\..\core\Action\EActionTwo.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionRotateBy.cpp"> <ClCompile Include="..\..\core\Action\EActionRotateBy.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionRotateTo.cpp"> <ClCompile Include="..\..\core\Action\EActionRotateTo.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Tool\EFileUtils.cpp"> <ClCompile Include="..\..\core\Tool\EFileUtils.cpp">
<Filter>Tool</Filter> <Filter>Tool</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Tool\ERandom.cpp"> <ClCompile Include="..\..\core\Tool\ERandom.cpp">
<Filter>Tool</Filter> <Filter>Tool</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionTwoAtSameTime.cpp"> <ClCompile Include="..\..\core\Action\EActionTwoAtSameTime.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionGradual.cpp"> <ClCompile Include="..\..\core\Action\EActionGradual.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EAnimation.cpp"> <ClCompile Include="..\..\core\Action\EAnimation.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Transition\ETransitionFade.cpp"> <ClCompile Include="..\..\core\Transition\ETransitionFade.cpp">
<Filter>Transition</Filter> <Filter>Transition</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Action\EActionLoop.cpp"> <ClCompile Include="..\..\core\Action\EActionLoop.cpp">
<Filter>Action</Filter> <Filter>Action</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Manager\EActionManager.cpp"> <ClCompile Include="..\..\core\Manager\EActionManager.cpp">
<Filter>Manager</Filter> <Filter>Manager</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Manager\EMsgManager.cpp"> <ClCompile Include="..\..\core\Manager\EMsgManager.cpp">
<Filter>Manager</Filter> <Filter>Manager</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Manager\EObjectManager.cpp"> <ClCompile Include="..\..\core\Manager\EObjectManager.cpp">
<Filter>Manager</Filter> <Filter>Manager</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Manager\ETimerManager.cpp"> <ClCompile Include="..\..\core\Manager\ETimerManager.cpp">
<Filter>Manager</Filter> <Filter>Manager</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListener.cpp"> <ClCompile Include="..\..\core\Listener\EListener.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Node\EButton.cpp"> <ClCompile Include="..\..\core\Node\EButton.cpp">
<Filter>Node</Filter> <Filter>Node</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Transition\ETransitionEmerge.cpp"> <ClCompile Include="..\..\core\Transition\ETransitionEmerge.cpp">
<Filter>Transition</Filter> <Filter>Transition</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Transition\ETransitionMove.cpp"> <ClCompile Include="..\..\core\Transition\ETransitionMove.cpp">
<Filter>Transition</Filter> <Filter>Transition</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Tool\ETimer.cpp"> <ClCompile Include="..\..\core\Tool\ETimer.cpp">
<Filter>Tool</Filter> <Filter>Tool</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Tool\EMusicUtils.cpp"> <ClCompile Include="..\..\core\Tool\EMusicUtils.cpp">
<Filter>Tool</Filter> <Filter>Tool</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Geometry\ERectangle.cpp"> <ClCompile Include="..\..\core\Geometry\ERectangle.cpp">
<Filter>Geometry</Filter> <Filter>Geometry</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Geometry\EGeometry.cpp"> <ClCompile Include="..\..\core\Geometry\EGeometry.cpp">
<Filter>Geometry</Filter> <Filter>Geometry</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Geometry\ECircle.cpp"> <ClCompile Include="..\..\core\Geometry\ECircle.cpp">
<Filter>Geometry</Filter> <Filter>Geometry</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Geometry\EEllipse.cpp"> <ClCompile Include="..\..\core\Geometry\EEllipse.cpp">
<Filter>Geometry</Filter> <Filter>Geometry</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Manager\EPhysicsManager.cpp"> <ClCompile Include="..\..\core\Manager\EPhysicsManager.cpp">
<Filter>Manager</Filter> <Filter>Manager</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListenerMouse.cpp"> <ClCompile Include="..\..\core\Listener\EListenerMouse.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListenerKeyboard.cpp"> <ClCompile Include="..\..\core\Listener\EListenerKeyboard.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListenerKeyboardPress.cpp"> <ClCompile Include="..\..\core\Listener\EListenerKeyboardPress.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListenerMouseClick.cpp"> <ClCompile Include="..\..\core\Listener\EListenerMouseClick.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListenerMouseDoubleClick.cpp"> <ClCompile Include="..\..\core\Listener\EListenerMouseDoubleClick.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListenerMouseDrag.cpp"> <ClCompile Include="..\..\core\Listener\EListenerMouseDrag.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListenerMousePress.cpp"> <ClCompile Include="..\..\core\Listener\EListenerMousePress.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListenerPhysics.cpp"> <ClCompile Include="..\..\core\Listener\EListenerPhysics.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Common\EFont.cpp"> <ClCompile Include="..\..\core\Common\EFont.cpp">
<Filter>Common</Filter> <Filter>Common</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Common\EObject.cpp"> <ClCompile Include="..\..\core\Common\EObject.cpp">
<Filter>Common</Filter> <Filter>Common</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Common\ETexture.cpp"> <ClCompile Include="..\..\core\Common\ETexture.cpp">
<Filter>Common</Filter> <Filter>Common</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Listener\EListenerPhysicsCollision.cpp"> <ClCompile Include="..\..\core\Listener\EListenerPhysicsCollision.cpp">
<Filter>Listener</Filter> <Filter>Listener</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Node\EButtonToggle.cpp"> <ClCompile Include="..\..\core\Node\EButtonToggle.cpp">
<Filter>Node</Filter> <Filter>Node</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Node\EMenu.cpp"> <ClCompile Include="..\..\core\Node\EMenu.cpp">
<Filter>Node</Filter> <Filter>Node</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Common\ESpriteFrame.cpp"> <ClCompile Include="..\..\core\Common\ESpriteFrame.cpp">
<Filter>Common</Filter> <Filter>Common</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Win\MciPlayer.cpp"> <ClCompile Include="..\..\core\Win\MciPlayer.cpp">
<Filter>Win</Filter> <Filter>Win</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Transition\ETransition.cpp"> <ClCompile Include="..\..\core\Transition\ETransition.cpp">
<Filter>Transition</Filter> <Filter>Transition</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Msg\EKeyboardMsg.cpp"> <ClCompile Include="..\..\core\Msg\EKeyboardMsg.cpp">
<Filter>Msg</Filter> <Filter>Msg</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Msg\EMouseMsg.cpp"> <ClCompile Include="..\..\core\Msg\EMouseMsg.cpp">
<Filter>Msg</Filter> <Filter>Msg</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Msg\EPhysicsMsg.cpp"> <ClCompile Include="..\..\core\Msg\EPhysicsMsg.cpp">
<Filter>Msg</Filter> <Filter>Msg</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Common\EString.cpp"> <ClCompile Include="..\..\core\Common\EString.cpp">
<Filter>Common</Filter> <Filter>Common</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="Win\winbase.h"> <ClInclude Include="..\..\core\Win\winbase.h">
<Filter>Win</Filter> <Filter>Win</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="etools.h" /> <ClInclude Include="..\..\core\etools.h" />
<ClInclude Include="enodes.h" /> <ClInclude Include="..\..\core\enodes.h" />
<ClInclude Include="emacros.h" /> <ClInclude Include="..\..\core\emacros.h" />
<ClInclude Include="ecommon.h" /> <ClInclude Include="..\..\core\ecommon.h" />
<ClInclude Include="ebase.h" /> <ClInclude Include="..\..\core\ebase.h" />
<ClInclude Include="easy2d.h" /> <ClInclude Include="..\..\core\easy2d.h" />
<ClInclude Include="eactions.h" /> <ClInclude Include="..\..\core\eactions.h" />
<ClInclude Include="etransitions.h" /> <ClInclude Include="..\..\core\etransitions.h" />
<ClInclude Include="egeometry.h" /> <ClInclude Include="..\..\core\egeometry.h" />
<ClInclude Include="elisteners.h" /> <ClInclude Include="..\..\core\elisteners.h" />
<ClInclude Include="emanagers.h" /> <ClInclude Include="..\..\core\emanagers.h" />
<ClInclude Include="Win\MciPlayer.h"> <ClInclude Include="..\..\core\Win\MciPlayer.h">
<Filter>Win</Filter> <Filter>Win</Filter>
</ClInclude> </ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>