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
Easy2D/Win32/
Easy2D/x64/
/Win32/
/x64/
Win32/
x64/
Debug/
Release/
backup/
# vs2010
ipch/
*.opensdf
*.sdf
*.user
*.lnk
.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)
{
// 设置动作的时间间隔
m_nAnimationInterval = milliSeconds;
SetInterval(m_nAnimationInterval, milliSeconds);
}
void e2d::EAction::setTarget(ENode * node)

View File

@ -3,12 +3,12 @@
e2d::EActionDelay::EActionDelay(float duration)
{
setInterval(LONGLONG(duration * 1000));
setInterval(static_cast<LONGLONG>(duration * 1000));
}
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()
@ -20,7 +20,7 @@ void e2d::EActionDelay::_update()
{
EAction::_update();
// 判断时间间隔是否足够
if (GetInterval(m_tLast) > m_nAnimationInterval)
if (IsIntervalFull(m_tLast, m_nAnimationInterval))
{
this->stop();
}

View File

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

View File

@ -21,9 +21,9 @@ e2d::EActionSequence::EActionSequence(int number, EAction * action1, ...) :
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)
{
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()
{
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;
}
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
{
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;
}
@ -103,15 +103,15 @@ e2d::EActionSequence * e2d::EActionSequence::clone() const
e2d::EActionSequence * e2d::EActionSequence::reverse(bool actionReverse) const
{
auto a = new EActionSequence();
for (auto action : a->m_vActions)
for (auto action = m_vActions.begin(); action != m_vActions.end(); action++)
{
if (actionReverse)
{
a->addAction(action->reverse());
a->addAction((*action)->reverse());
}
else
{
a->addAction(action->clone());
a->addAction((*action)->clone());
}
}
// 将动作顺序逆序排列

View File

@ -17,9 +17,9 @@ e2d::EAnimation::EAnimation(LONGLONG frameDelay) :
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]);
m_nFrameIndex++;
@ -72,10 +72,10 @@ void e2d::EAnimation::addFrame(ESpriteFrame * frame)
e2d::EAnimation * e2d::EAnimation::clone() const
{
auto a = new EAnimation(this->m_nAnimationInterval);
for (auto f : m_vFrames)
auto a = new EAnimation(ToMilliseconds(m_nAnimationInterval.QuadPart));
for (auto frame = m_vFrames.begin(); frame != m_vFrames.end(); frame++)
{
a->addFrame(f);
a->addFrame((*frame));
}
return a;
}

View File

@ -5,12 +5,10 @@
#include "..\etransitions.h"
#include "..\etools.h"
#include <stack>
#include <thread>
#include <imm.h>
#pragma comment (lib ,"imm32.lib")
using namespace std::this_thread;
using namespace std::chrono;
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
// 唯一实例指针
@ -18,7 +16,7 @@ static e2d::EApp * s_pInstance = nullptr;
// 场景栈
static std::stack<e2d::EScene*> s_SceneStack;
// 游戏开始时间
static steady_clock::time_point s_tStart;
static LARGE_INTEGER s_tStart;
e2d::EApp::EApp()
@ -26,12 +24,19 @@ e2d::EApp::EApp()
, m_bPaused(false)
, m_bManualPaused(false)
, m_bShowConsole(false)
, m_nAnimationInterval(17LL)
, m_nAnimationInterval()
, m_ClearColor(EColor::BLACK)
, m_pTransition(nullptr)
, m_pCurrentScene(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()
@ -41,6 +46,7 @@ e2d::EApp::~EApp()
SafeReleaseInterface(&GetFactory());
SafeReleaseInterface(&GetImagingFactory());
SafeReleaseInterface(&GetDirectWriteFactory());
CoUninitialize();
}
e2d::EApp * e2d::EApp::getInstance()
@ -49,19 +55,18 @@ e2d::EApp * e2d::EApp::getInstance()
{
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 */)
{
CoInitialize(NULL);
EApp * pApp = EApp::getInstance();
HRESULT hr;
// 保存窗口样式
EApp::getInstance()->m_WindowStyle = wStyle;
pApp->m_WindowStyle = wStyle;
// 保存窗口名称
EApp::getInstance()->m_sTitle = title;
pApp->m_sTitle = title;
// 注册窗口类
WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };
@ -177,8 +182,24 @@ int e2d::EApp::run()
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;
@ -190,14 +211,38 @@ int e2d::EApp::run()
TranslateMessage(&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);
// 重置时间精度
timeEndPeriod(1);
CoUninitialize();
return 0;
}
@ -289,41 +334,6 @@ bool e2d::EApp::onCloseWindow()
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()
{
if (isPaused())
@ -512,7 +522,11 @@ void e2d::EApp::clearScene()
void e2d::EApp::setFPS(UINT32 fps)
{
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()
@ -570,7 +584,7 @@ e2d::EWindowStyle e2d::EApp::getWindowStyle()
LONGLONG e2d::EApp::getTotalDurationFromStart()
{
return GetInterval(s_tStart);
return (s_tStart.QuadPart - GetNow().QuadPart) * 1000LL / GetFreq().QuadPart;
}
void e2d::EApp::hideWindow()
@ -614,7 +628,7 @@ void e2d::EApp::_enterNextScene()
void e2d::EApp::_updateTime()
{
// 刷新当前时间
GetNow() = steady_clock::now();
QueryPerformanceCounter(&GetNow());
// 重置动画和定时器
EActionManager::_resetAllActions();
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 */)
: 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->setSize(fontSize);

View File

@ -10,39 +10,63 @@ e2d::ESpriteFrame::ESpriteFrame()
}
e2d::ESpriteFrame::ESpriteFrame(ETexture * texture)
: ESpriteFrame()
: m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_fSourceClipWidth(0)
, m_fSourceClipHeight(0)
, m_pTexture(nullptr)
{
_setTexture(texture);
}
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));
}
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));
}
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);
_clipTexture(x, y, width, 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));
_clipTexture(x, y, width, 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));
_clipTexture(x, y, width, height);

View File

@ -6,7 +6,8 @@ using namespace e2d;
EString::EString()
{
_size = 0;
_string = nullptr;
_string = new wchar_t[1];
_string[0] = 0;
}
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()
{
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_mBitmapsFromResource.clear();

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -21,16 +21,16 @@ void e2d::EActionManager::startAllActionsBindedWith(ENode * 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)
{
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)
{
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()
{
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()
{
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()
{
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()
{
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)
{
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)
{
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)
{
// 启动按键消息监听器
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)
{
// 停止按键消息监听器
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)
{
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)
{
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)
{
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)
{
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 为主动方
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() ||
(pPassiveGeometry->getParentNode()->getParentScene() != EApp::getCurrentScene()))
@ -100,7 +101,7 @@ void e2d::EPhysicsManager::_delGeometry(EGeometry * 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)
{
@ -114,22 +115,22 @@ void e2d::EPhysicsManager::_delGeometry(EGeometry * geometry)
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)
{
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)
{
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)
{
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)
{
for (size_t i = 0; i < s_vListeners.size();)
for (UINT i = 0; i < s_vListeners.size();)
{
auto listener = s_vListeners[i];
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)
{
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)
{
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)
{
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)
{
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()
{
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"
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_pPassiveGeometry = nullptr;

View File

@ -5,7 +5,7 @@
e2d::EButton::EButton()
: m_Callback((const BUTTON_CLICK_CALLBACK &)nullptr)
, m_eStatus(STATUS::NORMAL)
, m_eStatus(EButton::NORMAL)
, m_bEnable(true)
, m_bIsSelected(false)
, m_pNormal(nullptr)
@ -20,14 +20,30 @@ e2d::EButton::EButton()
}
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->setCallback(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->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)
: 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->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)
: 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->setMouseOver(mouseover);
@ -207,11 +239,11 @@ void e2d::EButton::_updateVisiable()
if (m_bEnable)
{
if (m_eStatus == STATUS::SELECTED && m_pSelected)
if (m_eStatus == EButton::SELECTED && m_pSelected)
{
m_pSelected->setVisiable(true);
}
else if (m_eStatus == STATUS::MOUSEOVER && m_pMouseover)
else if (m_eStatus == EButton::MOUSEOVER && m_pMouseover)
{
m_pMouseover->setVisiable(true);
}
@ -258,7 +290,7 @@ void e2d::EButton::_updateStatus()
{
// 鼠标左键按下,且位于按钮内时,标记 m_bIsSelected 为 true
m_bIsSelected = true;
_setStatus(STATUS::SELECTED);
_setStatus(EButton::SELECTED);
return;
}
}
@ -267,17 +299,17 @@ void e2d::EButton::_updateStatus()
{
if (pSelected->isPointIn(EMouseMsg::getPos()))
{
_setStatus(STATUS::SELECTED);
_setStatus(EButton::SELECTED);
return;
}
}
else if (m_pNormal->isPointIn(EMouseMsg::getPos()))
{
_setStatus(STATUS::MOUSEOVER);
_setStatus(EButton::MOUSEOVER);
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)
: 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->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)
: 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->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)
: 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->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)
: 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->setNormalOff(toggleOffNormal);

View File

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

View File

@ -35,7 +35,26 @@ e2d::ENode::ENode()
}
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);
}
@ -48,9 +67,9 @@ e2d::ENode::~ENode()
EActionManager::_clearAllActionsBindedWith(this);
EPhysicsManager::_clearAllListenersBindedWith(this);
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();
size_t size = m_vChildren.size();
size_t i;
UINT size = m_vChildren.size();
UINT i;
for (i = 0; i < size; 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->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->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()
{
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()
{
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;
}
size_t e2d::ENode::getChildrenCount() const
UINT e2d::ENode::getChildrenCount() const
{
return m_vChildren.size();
}
@ -589,11 +608,11 @@ e2d::ENode * e2d::ENode::getChild(const EString & name)
unsigned int hash = name.hash();
for (const auto& child : m_vChildren)
for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{
// 不同的名称可能会有相同的 Hash 值,但是先比较 Hash 可以提升搜索速度
if (child->m_nHashName == hash && child->m_sName == name)
return child;
if ((*child)->m_nHashName == hash && (*child)->m_sName == name)
return (*child);
}
return nullptr;
}
@ -617,8 +636,8 @@ bool e2d::ENode::removeChild(ENode * child)
if (child)
{
size_t size = m_vChildren.size();
for (size_t i = 0; i < size; i++)
UINT size = m_vChildren.size();
for (UINT i = 0; i < size; i++)
{
if (m_vChildren[i] == child)
{
@ -649,8 +668,8 @@ void e2d::ENode::removeChild(const EString & childName)
// 计算名称 Hash 值
unsigned int hash = childName.hash();
size_t size = m_vChildren.size();
for (size_t i = 0; i < size; i++)
UINT size = m_vChildren.size();
for (UINT i = 0; i < size; i++)
{
auto child = m_vChildren[i];
if (child->m_nHashName == hash && child->m_sName == childName)
@ -671,10 +690,10 @@ void e2d::ENode::removeChild(const EString & childName)
void e2d::ENode::clearAllChildren()
{
// 所有节点的引用计数减一
for (auto child : m_vChildren)
for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
{
child->_onExit();
child->release();
(*child)->_onExit();
(*child)->release();
}
// 清空储存节点的容器
m_vChildren.clear();
@ -733,8 +752,8 @@ bool e2d::ENode::isPointIn(EPoint point)
}
else
{
for (const auto & child : m_vChildren)
if (child->isPointIn(point))
for (auto child = m_vChildren.begin(); child != m_vChildren.end(); child++)
if ((*child)->isPointIn(point))
return true;
}
return false;
@ -794,8 +813,8 @@ void e2d::ENode::setName(const EString & name)
void e2d::ENode::_setParentScene(EScene * 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)
: ESprite()
: m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_pTexture(nullptr)
{
loadFrom(texture);
}
e2d::ESprite::ESprite(ESpriteFrame * spriteFrame)
: ESprite()
: m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_pTexture(nullptr)
{
loadFrom(spriteFrame);
}
e2d::ESprite::ESprite(const EString & imageFileName)
: ESprite()
: m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_pTexture(nullptr)
{
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)
: ESprite()
: m_fSourceClipX(0)
, m_fSourceClipY(0)
, m_pTexture(nullptr)
{
loadFrom(resourceName, resourceType);
}

View File

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

View File

@ -127,24 +127,24 @@ bool e2d::EMusicUtils::stopMusic(const EString & musicName)
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()
{
for (auto& iter : getMciPlayerList())
for (auto iter = getMciPlayerList().begin(); iter != getMciPlayerList().end(); iter++)
{
iter.second->resume();
(*iter).second->resume();
}
}
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_pParentNode(nullptr)
, m_Callback(nullptr)
, m_nInterval(0)
, m_nRepeatTimes(0)
, m_nInterval()
, m_nRepeatTimes(-1)
, m_bAtOnce(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->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 */)
: 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->setCallback(callback);
@ -41,7 +53,7 @@ bool e2d::ETimer::isRunning() const
void e2d::ETimer::start()
{
m_bRunning = true;
m_tLast = steady_clock::now();
m_tLast = GetNow();
}
void e2d::ETimer::stop()
@ -66,7 +78,7 @@ void e2d::ETimer::setName(const EString & name)
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)
@ -118,12 +130,12 @@ bool e2d::ETimer::_isReady()
if (m_bAtOnce && m_nRunTimes == 0)
return true;
if (m_nInterval == 0)
if (m_nInterval.QuadPart == 0)
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;
}
}

View File

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

View File

@ -23,22 +23,22 @@ void e2d::ETransitionMove::_update()
void e2d::ETransitionMove::_init()
{
if (m_Direct == MOVE_DIRECT::UP)
if (m_Direct == ETransitionMove::UP)
{
m_Vec = EVec(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_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_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_NextPos = EPoint(-EApp::getWidth(), 0);

View File

@ -7,7 +7,8 @@ static ID2D1HwndRenderTarget * s_pRenderTarget = nullptr;
static ID2D1SolidColorBrush * s_pSolidBrush = nullptr;
static IWICImagingFactory * s_pIWICFactory = 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()
@ -105,12 +106,31 @@ ID2D1SolidColorBrush * &GetSolidColorBrush()
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;
}
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
#include "..\emacros.h"
#include <chrono>
using namespace std::chrono;
#ifndef HINST_THISCOMPONENT
@ -22,9 +20,15 @@ IWICImagingFactory * &GetImagingFactory();
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>

View File

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

View File

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

View File

@ -144,22 +144,14 @@ private:
virtual ~EApp();
// 游戏主循环
void _mainLoop();
// 游戏控制流程
void _update();
// 渲染游戏画面
void _render();
// 进入下一场景
void _enterNextScene();
// 刷新游戏时间
void _updateTime();
// 窗口程序
static LRESULT CALLBACK WndProc(
HWND hWnd,
UINT message,
@ -175,7 +167,7 @@ private:
EString m_sTitle;
EString m_sAppName;
UINT32 m_ClearColor;
LONGLONG m_nAnimationInterval;
LARGE_INTEGER m_nAnimationInterval;
EScene * m_pCurrentScene;
EScene * m_pNextScene;
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, // 字母键值
NUM0 = '0', NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, // 数字键值

View File

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

View File

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

View File

@ -1,6 +1,5 @@
#pragma once
#include "ebase.h"
#include <chrono>
namespace e2d
{
@ -41,7 +40,8 @@ protected:
float m_fRateOfProgress;
EScene * m_pPrevScene;
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

@ -35,20 +35,18 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@ -74,25 +72,25 @@
<LinkIncremental>true</LinkIncremental>
<TargetName>Easy2Ddw</TargetName>
<OutDir>$(SolutionDir)$(Platform)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<TargetName>Easy2Ddw</TargetName>
<OutDir>$(SolutionDir)$(Platform)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<TargetName>Easy2Dw</TargetName>
<OutDir>$(SolutionDir)$(Platform)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>Easy2Dw</TargetName>
<OutDir>$(SolutionDir)$(Platform)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
@ -101,7 +99,7 @@
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<DebugInformationFormat>None</DebugInformationFormat>
<MinimalRebuild>false</MinimalRebuild>
</ClCompile>
<Link>
@ -190,83 +188,83 @@
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="Action\EAction.cpp" />
<ClCompile Include="Action\EActionCallback.cpp" />
<ClCompile Include="Action\EActionDelay.cpp" />
<ClCompile Include="Action\EAnimation.cpp" />
<ClCompile Include="Action\EActionMoveBy.cpp" />
<ClCompile Include="Action\EActionMoveTo.cpp" />
<ClCompile Include="Action\EActionLoop.cpp" />
<ClCompile Include="Action\EActionOpacityBy.cpp" />
<ClCompile Include="Action\EActionOpacityTo.cpp" />
<ClCompile Include="Action\EActionRotateBy.cpp" />
<ClCompile Include="Action\EActionRotateTo.cpp" />
<ClCompile Include="Action\EActionScaleBy.cpp" />
<ClCompile Include="Action\EActionScaleTo.cpp" />
<ClCompile Include="Action\EActionSequence.cpp" />
<ClCompile Include="Action\EActionTwo.cpp" />
<ClCompile Include="Action\EActionTwoAtSameTime.cpp" />
<ClCompile Include="Action\EActionGradual.cpp" />
<ClCompile Include="Base\EApp.cpp" />
<ClCompile Include="Base\EScene.cpp" />
<ClCompile Include="Common\EFont.cpp" />
<ClCompile Include="Common\EObject.cpp" />
<ClCompile Include="Common\ESpriteFrame.cpp" />
<ClCompile Include="Common\EString.cpp" />
<ClCompile Include="Common\ETexture.cpp" />
<ClCompile Include="Geometry\ECircle.cpp" />
<ClCompile Include="Geometry\EEllipse.cpp" />
<ClCompile Include="Geometry\EGeometry.cpp" />
<ClCompile Include="Geometry\ERectangle.cpp" />
<ClCompile Include="Listener\EListenerPhysicsCollision.cpp" />
<ClCompile Include="Listener\EListenerKeyboard.cpp" />
<ClCompile Include="Listener\EListenerKeyboardPress.cpp" />
<ClCompile Include="Listener\EListener.cpp" />
<ClCompile Include="Listener\EListenerMouseClick.cpp" />
<ClCompile Include="Listener\EListenerMouseDoubleClick.cpp" />
<ClCompile Include="Listener\EListenerMouseDrag.cpp" />
<ClCompile Include="Listener\EListenerMouse.cpp" />
<ClCompile Include="Listener\EListenerMousePress.cpp" />
<ClCompile Include="Listener\EListenerPhysics.cpp" />
<ClCompile Include="Manager\EActionManager.cpp" />
<ClCompile Include="Manager\EMsgManager.cpp" />
<ClCompile Include="Manager\EObjectManager.cpp" />
<ClCompile Include="Manager\EPhysicsManager.cpp" />
<ClCompile Include="Manager\ETimerManager.cpp" />
<ClCompile Include="Msg\EKeyboardMsg.cpp" />
<ClCompile Include="Msg\EMouseMsg.cpp" />
<ClCompile Include="Msg\EPhysicsMsg.cpp" />
<ClCompile Include="Node\EButton.cpp" />
<ClCompile Include="Node\EButtonToggle.cpp" />
<ClCompile Include="Node\EMenu.cpp" />
<ClCompile Include="Node\ENode.cpp" />
<ClCompile Include="Node\ESprite.cpp" />
<ClCompile Include="Node\EText.cpp" />
<ClCompile Include="Tool\EFileUtils.cpp" />
<ClCompile Include="Tool\EMusicUtils.cpp" />
<ClCompile Include="Tool\ERandom.cpp" />
<ClCompile Include="Tool\ETimer.cpp" />
<ClCompile Include="Transition\ETransition.cpp" />
<ClCompile Include="Transition\ETransitionEmerge.cpp" />
<ClCompile Include="Transition\ETransitionFade.cpp" />
<ClCompile Include="Transition\ETransitionMove.cpp" />
<ClCompile Include="Win\MciPlayer.cpp" />
<ClCompile Include="Win\winbase.cpp" />
<ClCompile Include="..\..\core\Action\EAction.cpp" />
<ClCompile Include="..\..\core\Action\EActionCallback.cpp" />
<ClCompile Include="..\..\core\Action\EActionDelay.cpp" />
<ClCompile Include="..\..\core\Action\EAnimation.cpp" />
<ClCompile Include="..\..\core\Action\EActionMoveBy.cpp" />
<ClCompile Include="..\..\core\Action\EActionMoveTo.cpp" />
<ClCompile Include="..\..\core\Action\EActionLoop.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\EActionGradual.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\EListenerPhysicsCollision.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerKeyboard.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerKeyboardPress.cpp" />
<ClCompile Include="..\..\core\Listener\EListener.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMouseClick.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMouseDoubleClick.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMouseDrag.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMouse.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerMousePress.cpp" />
<ClCompile Include="..\..\core\Listener\EListenerPhysics.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>
<ItemGroup>
<ClInclude Include="eactions.h" />
<ClInclude Include="easy2d.h" />
<ClInclude Include="ebase.h" />
<ClInclude Include="ecommon.h" />
<ClInclude Include="egeometry.h" />
<ClInclude Include="elisteners.h" />
<ClInclude Include="emacros.h" />
<ClInclude Include="emanagers.h" />
<ClInclude Include="enodes.h" />
<ClInclude Include="etools.h" />
<ClInclude Include="etransitions.h" />
<ClInclude Include="Win\MciPlayer.h" />
<ClInclude Include="Win\winbase.h" />
<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>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@ -36,209 +36,209 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="Win\winbase.cpp">
<ClCompile Include="..\..\core\Win\winbase.cpp">
<Filter>Win</Filter>
</ClCompile>
<ClCompile Include="Base\EApp.cpp">
<ClCompile Include="..\..\core\Base\EApp.cpp">
<Filter>Base</Filter>
</ClCompile>
<ClCompile Include="Node\ENode.cpp">
<ClCompile Include="..\..\core\Node\ENode.cpp">
<Filter>Node</Filter>
</ClCompile>
<ClCompile Include="Base\EScene.cpp">
<ClCompile Include="..\..\core\Base\EScene.cpp">
<Filter>Base</Filter>
</ClCompile>
<ClCompile Include="Node\ESprite.cpp">
<ClCompile Include="..\..\core\Node\ESprite.cpp">
<Filter>Node</Filter>
</ClCompile>
<ClCompile Include="Node\EText.cpp">
<ClCompile Include="..\..\core\Node\EText.cpp">
<Filter>Node</Filter>
</ClCompile>
<ClCompile Include="Action\EAction.cpp">
<ClCompile Include="..\..\core\Action\EAction.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionCallback.cpp">
<ClCompile Include="..\..\core\Action\EActionCallback.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionDelay.cpp">
<ClCompile Include="..\..\core\Action\EActionDelay.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionMoveBy.cpp">
<ClCompile Include="..\..\core\Action\EActionMoveBy.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionMoveTo.cpp">
<ClCompile Include="..\..\core\Action\EActionMoveTo.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionOpacityBy.cpp">
<ClCompile Include="..\..\core\Action\EActionOpacityBy.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionOpacityTo.cpp">
<ClCompile Include="..\..\core\Action\EActionOpacityTo.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionScaleBy.cpp">
<ClCompile Include="..\..\core\Action\EActionScaleBy.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionScaleTo.cpp">
<ClCompile Include="..\..\core\Action\EActionScaleTo.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionSequence.cpp">
<ClCompile Include="..\..\core\Action\EActionSequence.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionTwo.cpp">
<ClCompile Include="..\..\core\Action\EActionTwo.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionRotateBy.cpp">
<ClCompile Include="..\..\core\Action\EActionRotateBy.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionRotateTo.cpp">
<ClCompile Include="..\..\core\Action\EActionRotateTo.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Tool\EFileUtils.cpp">
<ClCompile Include="..\..\core\Tool\EFileUtils.cpp">
<Filter>Tool</Filter>
</ClCompile>
<ClCompile Include="Tool\ERandom.cpp">
<ClCompile Include="..\..\core\Tool\ERandom.cpp">
<Filter>Tool</Filter>
</ClCompile>
<ClCompile Include="Action\EActionTwoAtSameTime.cpp">
<ClCompile Include="..\..\core\Action\EActionTwoAtSameTime.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EActionGradual.cpp">
<ClCompile Include="..\..\core\Action\EActionGradual.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Action\EAnimation.cpp">
<ClCompile Include="..\..\core\Action\EAnimation.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Transition\ETransitionFade.cpp">
<ClCompile Include="..\..\core\Transition\ETransitionFade.cpp">
<Filter>Transition</Filter>
</ClCompile>
<ClCompile Include="Action\EActionLoop.cpp">
<ClCompile Include="..\..\core\Action\EActionLoop.cpp">
<Filter>Action</Filter>
</ClCompile>
<ClCompile Include="Manager\EActionManager.cpp">
<ClCompile Include="..\..\core\Manager\EActionManager.cpp">
<Filter>Manager</Filter>
</ClCompile>
<ClCompile Include="Manager\EMsgManager.cpp">
<ClCompile Include="..\..\core\Manager\EMsgManager.cpp">
<Filter>Manager</Filter>
</ClCompile>
<ClCompile Include="Manager\EObjectManager.cpp">
<ClCompile Include="..\..\core\Manager\EObjectManager.cpp">
<Filter>Manager</Filter>
</ClCompile>
<ClCompile Include="Manager\ETimerManager.cpp">
<ClCompile Include="..\..\core\Manager\ETimerManager.cpp">
<Filter>Manager</Filter>
</ClCompile>
<ClCompile Include="Listener\EListener.cpp">
<ClCompile Include="..\..\core\Listener\EListener.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Node\EButton.cpp">
<ClCompile Include="..\..\core\Node\EButton.cpp">
<Filter>Node</Filter>
</ClCompile>
<ClCompile Include="Transition\ETransitionEmerge.cpp">
<ClCompile Include="..\..\core\Transition\ETransitionEmerge.cpp">
<Filter>Transition</Filter>
</ClCompile>
<ClCompile Include="Transition\ETransitionMove.cpp">
<ClCompile Include="..\..\core\Transition\ETransitionMove.cpp">
<Filter>Transition</Filter>
</ClCompile>
<ClCompile Include="Tool\ETimer.cpp">
<ClCompile Include="..\..\core\Tool\ETimer.cpp">
<Filter>Tool</Filter>
</ClCompile>
<ClCompile Include="Tool\EMusicUtils.cpp">
<ClCompile Include="..\..\core\Tool\EMusicUtils.cpp">
<Filter>Tool</Filter>
</ClCompile>
<ClCompile Include="Geometry\ERectangle.cpp">
<ClCompile Include="..\..\core\Geometry\ERectangle.cpp">
<Filter>Geometry</Filter>
</ClCompile>
<ClCompile Include="Geometry\EGeometry.cpp">
<ClCompile Include="..\..\core\Geometry\EGeometry.cpp">
<Filter>Geometry</Filter>
</ClCompile>
<ClCompile Include="Geometry\ECircle.cpp">
<ClCompile Include="..\..\core\Geometry\ECircle.cpp">
<Filter>Geometry</Filter>
</ClCompile>
<ClCompile Include="Geometry\EEllipse.cpp">
<ClCompile Include="..\..\core\Geometry\EEllipse.cpp">
<Filter>Geometry</Filter>
</ClCompile>
<ClCompile Include="Manager\EPhysicsManager.cpp">
<ClCompile Include="..\..\core\Manager\EPhysicsManager.cpp">
<Filter>Manager</Filter>
</ClCompile>
<ClCompile Include="Listener\EListenerMouse.cpp">
<ClCompile Include="..\..\core\Listener\EListenerMouse.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Listener\EListenerKeyboard.cpp">
<ClCompile Include="..\..\core\Listener\EListenerKeyboard.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Listener\EListenerKeyboardPress.cpp">
<ClCompile Include="..\..\core\Listener\EListenerKeyboardPress.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Listener\EListenerMouseClick.cpp">
<ClCompile Include="..\..\core\Listener\EListenerMouseClick.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Listener\EListenerMouseDoubleClick.cpp">
<ClCompile Include="..\..\core\Listener\EListenerMouseDoubleClick.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Listener\EListenerMouseDrag.cpp">
<ClCompile Include="..\..\core\Listener\EListenerMouseDrag.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Listener\EListenerMousePress.cpp">
<ClCompile Include="..\..\core\Listener\EListenerMousePress.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Listener\EListenerPhysics.cpp">
<ClCompile Include="..\..\core\Listener\EListenerPhysics.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Common\EFont.cpp">
<ClCompile Include="..\..\core\Common\EFont.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="Common\EObject.cpp">
<ClCompile Include="..\..\core\Common\EObject.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="Common\ETexture.cpp">
<ClCompile Include="..\..\core\Common\ETexture.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="Listener\EListenerPhysicsCollision.cpp">
<ClCompile Include="..\..\core\Listener\EListenerPhysicsCollision.cpp">
<Filter>Listener</Filter>
</ClCompile>
<ClCompile Include="Node\EButtonToggle.cpp">
<ClCompile Include="..\..\core\Node\EButtonToggle.cpp">
<Filter>Node</Filter>
</ClCompile>
<ClCompile Include="Node\EMenu.cpp">
<ClCompile Include="..\..\core\Node\EMenu.cpp">
<Filter>Node</Filter>
</ClCompile>
<ClCompile Include="Common\ESpriteFrame.cpp">
<ClCompile Include="..\..\core\Common\ESpriteFrame.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="Win\MciPlayer.cpp">
<ClCompile Include="..\..\core\Win\MciPlayer.cpp">
<Filter>Win</Filter>
</ClCompile>
<ClCompile Include="Transition\ETransition.cpp">
<ClCompile Include="..\..\core\Transition\ETransition.cpp">
<Filter>Transition</Filter>
</ClCompile>
<ClCompile Include="Msg\EKeyboardMsg.cpp">
<ClCompile Include="..\..\core\Msg\EKeyboardMsg.cpp">
<Filter>Msg</Filter>
</ClCompile>
<ClCompile Include="Msg\EMouseMsg.cpp">
<ClCompile Include="..\..\core\Msg\EMouseMsg.cpp">
<Filter>Msg</Filter>
</ClCompile>
<ClCompile Include="Msg\EPhysicsMsg.cpp">
<ClCompile Include="..\..\core\Msg\EPhysicsMsg.cpp">
<Filter>Msg</Filter>
</ClCompile>
<ClCompile Include="Common\EString.cpp">
<ClCompile Include="..\..\core\Common\EString.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Win\winbase.h">
<ClInclude Include="..\..\core\Win\winbase.h">
<Filter>Win</Filter>
</ClInclude>
<ClInclude Include="etools.h" />
<ClInclude Include="enodes.h" />
<ClInclude Include="emacros.h" />
<ClInclude Include="ecommon.h" />
<ClInclude Include="ebase.h" />
<ClInclude Include="easy2d.h" />
<ClInclude Include="eactions.h" />
<ClInclude Include="etransitions.h" />
<ClInclude Include="egeometry.h" />
<ClInclude Include="elisteners.h" />
<ClInclude Include="emanagers.h" />
<ClInclude Include="Win\MciPlayer.h">
<ClInclude Include="..\..\core\etools.h" />
<ClInclude Include="..\..\core\enodes.h" />
<ClInclude Include="..\..\core\emacros.h" />
<ClInclude Include="..\..\core\ecommon.h" />
<ClInclude Include="..\..\core\ebase.h" />
<ClInclude Include="..\..\core\easy2d.h" />
<ClInclude Include="..\..\core\eactions.h" />
<ClInclude Include="..\..\core\etransitions.h" />
<ClInclude Include="..\..\core\egeometry.h" />
<ClInclude Include="..\..\core\elisteners.h" />
<ClInclude Include="..\..\core\emanagers.h" />
<ClInclude Include="..\..\core\Win\MciPlayer.h">
<Filter>Win</Filter>
</ClInclude>
</ItemGroup>