Skip to content

Commit b50f1ca

Browse files
authored
Merge pull request #18 from lr8soft/dev-y
dev-y
2 parents 33a1cc9 + dec5c10 commit b50f1ca

43 files changed

Lines changed: 737 additions & 175 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
x64
1+
22
.vs
33
Debug
44
Release

.idea/workspace.xml

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python2D/3DCamera.txt

Lines changed: 0 additions & 11 deletions
This file was deleted.

Python2D/Python2D.vcxproj

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,20 @@
8080
<AdditionalIncludeDirectories>C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
8181
</ClCompile>
8282
<Link>
83-
<AdditionalDependencies>glfw3.lib;freetype.lib;..\libs\x86\python36.lib;..\libs\x86\python36_d.lib;..\libs\x86\python3.lib;%(AdditionalDependencies)</AdditionalDependencies>
83+
<AdditionalDependencies>glfw3.lib;freetype.lib;..\libs\x86\OpenAL32.lib;..\libs\x86\python36.lib;..\libs\x86\python36_d.lib;..\libs\x86\python3.lib;%(AdditionalDependencies)</AdditionalDependencies>
8484
</Link>
8585
</ItemDefinitionGroup>
8686
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
8787
<ClCompile>
8888
<WarningLevel>Level3</WarningLevel>
89-
<Optimization>Disabled</Optimization>
89+
<Optimization>
90+
</Optimization>
9091
<SDLCheck>true</SDLCheck>
9192
<ConformanceMode>true</ConformanceMode>
9293
<AdditionalIncludeDirectories>C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\include;D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
9394
</ClCompile>
9495
<Link>
95-
<AdditionalDependencies>glfw3.lib;freetype.lib;..\libs\x64\python36_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
96+
<AdditionalDependencies>glfw3.lib;freetype.lib;..\libs\x64\OpenAL32.lib;..\libs\x64\python36_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
9697
</Link>
9798
</ItemDefinitionGroup>
9899
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -108,7 +109,7 @@
108109
<Link>
109110
<EnableCOMDATFolding>true</EnableCOMDATFolding>
110111
<OptimizeReferences>true</OptimizeReferences>
111-
<AdditionalDependencies>glfw3.lib;freetype.lib;..\libs\x86\python36.lib;..\libs\x86\python3.lib;%(AdditionalDependencies)</AdditionalDependencies>
112+
<AdditionalDependencies>glfw3.lib;freetype.lib;..\libs\x86\OpenAL32.lib;..\libs\x86\python36.lib;..\libs\x86\python3.lib;%(AdditionalDependencies)</AdditionalDependencies>
112113
</Link>
113114
</ItemDefinitionGroup>
114115
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -124,7 +125,7 @@
124125
<Link>
125126
<EnableCOMDATFolding>true</EnableCOMDATFolding>
126127
<OptimizeReferences>true</OptimizeReferences>
127-
<AdditionalDependencies>glfw3.lib;freetype.lib;..\libs\x64\python36.lib;..\libs\x64\python36_d.lib;..\libs\x64\python3.lib;%(AdditionalDependencies)</AdditionalDependencies>
128+
<AdditionalDependencies>glfw3.lib;freetype.lib;..\libs\x64\OpenAL32.lib;..\libs\x64\python36.lib;..\libs\x64\python36_d.lib;..\libs\x64\python3.lib;%(AdditionalDependencies)</AdditionalDependencies>
128129
</Link>
129130
</ItemDefinitionGroup>
130131
<ItemGroup>
@@ -134,7 +135,9 @@
134135
<ClCompile Include="util\ImageLoader.cpp" />
135136
<ClCompile Include="util\ShaderReader.cpp" />
136137
<ClCompile Include="XCCore\Background\BackgroundHelper.cpp" />
138+
<ClCompile Include="XCCore\Background\Camera.cpp" />
137139
<ClCompile Include="XCCore\Background\Lake.cpp" />
140+
<ClCompile Include="XCCore\Background\MagicForest.cpp" />
138141
<ClCompile Include="XCCore\Bullet\BulletHelper.cpp" />
139142
<ClCompile Include="XCCore\Bullet\CircleTypeBullet.cpp" />
140143
<ClCompile Include="XCCore\Bullet\RectangleTypeBullet.cpp" />
@@ -144,9 +147,11 @@
144147
<ClCompile Include="XCCore\Task\TaskInsideUnit.cpp" />
145148
<ClCompile Include="XCCore\UserInterface\CoverInterface.cpp" />
146149
<ClCompile Include="XCCore\UserInterface\GameInfoInterface.cpp" />
150+
<ClCompile Include="XCCore\XCAudio\AudioHelper.cpp" />
147151
<ClCompile Include="XCCore\XCCollide\CollideHelper.cpp" />
148152
<ClCompile Include="XCCore\XCCollide\CollideInfo.cpp" />
149153
<ClCompile Include="XCCore\XCRender\SpecialEffect\ExplodeParticleGroupSE.cpp" />
154+
<ClCompile Include="XCCore\XCRender\FlexibleParticleGenerater.cpp" />
150155
<ClCompile Include="XCCore\XCRender\SpecialEffect\XCParticle.cpp" />
151156
<ClCompile Include="XCCore\XCRender\XCFont.cpp" />
152157
<ClCompile Include="XCCore\Item\Item.cpp" />
@@ -172,7 +177,9 @@
172177
<ClInclude Include="util\stb_image.h" />
173178
<ClInclude Include="XCCore\Background\Background.h" />
174179
<ClInclude Include="XCCore\Background\BackgroundHelper.h" />
180+
<ClInclude Include="XCCore\Background\Camera.h" />
175181
<ClInclude Include="XCCore\Background\Lake.h" />
182+
<ClInclude Include="XCCore\Background\MagicForest.h" />
176183
<ClInclude Include="XCCore\Bullet\Bullet.h" />
177184
<ClInclude Include="XCCore\Bullet\BulletHelper.h" />
178185
<ClInclude Include="XCCore\Bullet\CircleTypeBullet.h" />
@@ -184,9 +191,11 @@
184191
<ClInclude Include="XCCore\UserInterface\CoverInterface.h" />
185192
<ClInclude Include="XCCore\UserInterface\GameInfoInterface.h" />
186193
<ClInclude Include="XCCore\UserInterface\IUserInterface.h" />
194+
<ClInclude Include="XCCore\XCAudio\AudioHelper.h" />
187195
<ClInclude Include="XCCore\XCCollide\CollideHelper.h" />
188196
<ClInclude Include="XCCore\XCCollide\CollideInfo.h" />
189197
<ClInclude Include="XCCore\XCRender\SpecialEffect\ExplodeParticleGroupSE.h" />
198+
<ClInclude Include="XCCore\XCRender\FlexibleParticleGenerater.h" />
190199
<ClInclude Include="XCCore\XCRender\SpecialEffect\XCParticle.h" />
191200
<ClInclude Include="XCCore\XCRender\XCFont.h" />
192201
<ClInclude Include="XCCore\Item\Item.h" />

Python2D/Python2D.vcxproj.filters

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
<Filter Include="XCCore\XCRender\SpecialEffect">
3838
<UniqueIdentifier>{45914d97-27d5-4885-8ac8-35dc9da4f6f6}</UniqueIdentifier>
3939
</Filter>
40+
<Filter Include="XCCore\XCAudio">
41+
<UniqueIdentifier>{d0df81fa-abea-42c1-a3d3-a689a213969e}</UniqueIdentifier>
42+
</Filter>
4043
</ItemGroup>
4144
<ItemGroup>
4245
<ClCompile Include="util\ConfigManager.cpp">
@@ -138,6 +141,18 @@
138141
<ClCompile Include="XCCore\UserInterface\CoverInterface.cpp">
139142
<Filter>XCCore\UserInterface</Filter>
140143
</ClCompile>
144+
<ClCompile Include="XCCore\Background\MagicForest.cpp">
145+
<Filter>XCCore\Background</Filter>
146+
</ClCompile>
147+
<ClCompile Include="XCCore\Background\Camera.cpp">
148+
<Filter>XCCore\Background</Filter>
149+
</ClCompile>
150+
<ClCompile Include="XCCore\XCAudio\AudioHelper.cpp">
151+
<Filter>XCCore\XCAudio</Filter>
152+
</ClCompile>
153+
<ClCompile Include="XCCore\XCRender\FlexibleParticleGenerater.cpp">
154+
<Filter>XCCore\XCRender</Filter>
155+
</ClCompile>
141156
</ItemGroup>
142157
<ItemGroup>
143158
<ClInclude Include="util\ConfigManager.h">
@@ -253,5 +268,17 @@
253268
<ClInclude Include="XCCore\UserInterface\CoverInterface.h">
254269
<Filter>XCCore\UserInterface</Filter>
255270
</ClInclude>
271+
<ClInclude Include="XCCore\Background\MagicForest.h">
272+
<Filter>XCCore\Background</Filter>
273+
</ClInclude>
274+
<ClInclude Include="XCCore\Background\Camera.h">
275+
<Filter>XCCore\Background</Filter>
276+
</ClInclude>
277+
<ClInclude Include="XCCore\XCAudio\AudioHelper.h">
278+
<Filter>XCCore\XCAudio</Filter>
279+
</ClInclude>
280+
<ClInclude Include="XCCore\XCRender\FlexibleParticleGenerater.h">
281+
<Filter>XCCore\XCRender</Filter>
282+
</ClInclude>
256283
</ItemGroup>
257284
</Project>

Python2D/XCCore/Background/BackgroundHelper.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
#include "BackgroundHelper.h"
2+
#include "MagicForest.h"
23
#include "Lake.h"
34
Background * BackgroundHelper::getBackgroundByID(int id)
45
{
56
Background *pBackground = nullptr;
67
switch (id) {
78
case 0:
89
pBackground = new LakeBackground; break;
9-
10-
10+
case 1:
11+
pBackground = new MagicForest; break;
1112

1213
default:
1314
pBackground = new LakeBackground;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#include "Camera.h"
2+
#include <glm/gtc/matrix_transform.hpp>
3+
#include <glm/gtc/type_ptr.hpp>
4+
#include "../../XCFrameInfo.h"
5+
glm::mat4 Camera::getViewMatrix()
6+
{
7+
return glm::lookAt(pos, target, up);
8+
}
9+
10+
glm::mat4 Camera::getProjectionMatrix()
11+
{
12+
return glm::perspective(glm::radians(fovy), (float)XCFrameInfo::ScreenWidth / XCFrameInfo::ScreenHeight, zNear, zFar);
13+
}
14+
15+
void Camera::setPosition(glm::vec3 p)
16+
{
17+
pos = p;
18+
}
19+
20+
void Camera::setTarget(glm::vec3 t)
21+
{
22+
target = t;
23+
}
24+
25+
void Camera::setUp(glm::vec3 u)
26+
{
27+
up = u;
28+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#pragma once
2+
#ifndef _Camera_h_
3+
#define _Camera_h_
4+
#include <glm/glm.hpp>
5+
class Camera {
6+
private:
7+
glm::vec3 pos = glm::vec3(0.0f, 0.0f, 2.0f);
8+
glm::vec3 target = glm::vec3(0.0f, 0.0f, 0.0f);
9+
glm::vec3 up = glm::vec3(0.0f, 1.0f, 0.0f);
10+
11+
float fovy = 45.0f;
12+
float zNear = 0.1f, zFar = 1000.0f;
13+
public:
14+
glm::mat4 getViewMatrix();
15+
glm::mat4 getProjectionMatrix();
16+
17+
void setPosition(glm::vec3 pos);
18+
void setTarget(glm::vec3 target);
19+
void setUp(glm::vec3 up);
20+
};
21+
#endif
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
#include "MagicForest.h"
2+
#include "../XCRender/IRenderHelper.h"
3+
#include "../../XCFrameInfo.h"
4+
5+
#include <glm/gtc/matrix_transform.hpp>
6+
#include <glm/gtc/type_ptr.hpp>
7+
#include "../XCRender/BlendHelper.h"
8+
9+
10+
void MagicForest::BackgroundInit()
11+
{
12+
if (!isInit) {
13+
mask = new XCAdvImageHelper("assets/Background/magicforest/mask.png");
14+
ground = new XCAdvImageHelper("assets/Background/magicforest/ground.png");
15+
16+
float offset = 1.5f;
17+
camera.setPosition(glm::vec3(0.0f, 0.0f - offset, 2.0f));
18+
camera.setTarget(glm::vec3(0.0f, 1.155f - offset,0.0f));
19+
camera.setUp(glm::vec3(0.0f,2.0f - offset, 3.155f));
20+
isInit = true;
21+
}
22+
}
23+
24+
void MagicForest::BackgroundRender()
25+
{
26+
if (isInit) {
27+
BlendNormalStart
28+
renderGroundImage();
29+
renderMaskImage();
30+
BlendEnd
31+
32+
if (renderY < 1.0f) {
33+
renderY += 0.0006f;
34+
}
35+
else {
36+
renderY = 0.0f;
37+
}
38+
}
39+
}
40+
41+
void MagicForest::renderGroundImage()
42+
{
43+
glm::vec3 reshape = glm::vec3(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1.0f);
44+
45+
glm::mat4 projecetion = camera.getProjectionMatrix();
46+
glm::mat4 view = camera.getViewMatrix();
47+
48+
{
49+
glm::mat4 model;
50+
model = glm::translate(model, glm::vec3(3.0f, 1.0f, 0.0f) * reshape);
51+
model = glm::scale(model, glm::vec3(1.0f));
52+
ground->setMvpMatrix(projecetion* view * model);
53+
ground->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
54+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
55+
}
56+
{
57+
glm::mat4 model;
58+
model = glm::translate(model, glm::vec3(-3.0f, 1.0f, 0.0f) * reshape);
59+
model = glm::scale(model, glm::vec3(1.0f));
60+
ground->setMvpMatrix(projecetion* view * model);
61+
ground->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
62+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
63+
}
64+
{
65+
glm::mat4 model;
66+
model = glm::translate(model, glm::vec3(1.0f, 1.0f, 0.0f) * reshape);
67+
model = glm::scale(model, glm::vec3(1.0f));
68+
ground->setMvpMatrix(projecetion* view * model);
69+
ground->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
70+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
71+
}
72+
{
73+
glm::mat4 model;
74+
model = glm::translate(model, glm::vec3(-1.0f, 1.0f, 0.0f) * reshape);
75+
model = glm::scale(model, glm::vec3(1.0f));
76+
ground->setMvpMatrix(projecetion* view * model);
77+
ground->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
78+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
79+
}
80+
{
81+
glm::mat4 model;
82+
model = glm::translate(model, glm::vec3(-1.0f, -1.0f, 0.0f) * reshape);
83+
model = glm::scale(model, glm::vec3(1.0f));
84+
ground->setMvpMatrix(projecetion* view * model);
85+
ground->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
86+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
87+
}
88+
{
89+
glm::mat4 model;
90+
model = glm::translate(model, glm::vec3(1.0f, -1.0f, 0.0f) * reshape);
91+
model = glm::scale(model, glm::vec3(1.0f));
92+
ground->setMvpMatrix(projecetion* view * model);
93+
ground->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
94+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
95+
}
96+
}
97+
98+
void MagicForest::renderMaskImage()
99+
{
100+
glm::vec3 reshape = glm::vec3(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1.0f);
101+
102+
glm::mat4 projecetion = camera.getProjectionMatrix();
103+
glm::mat4 view = camera.getViewMatrix();
104+
{
105+
glm::mat4 model;
106+
model = glm::translate(model, glm::vec3(3.0f, 1.0f, 0.0f) * reshape);
107+
model = glm::scale(model, glm::vec3(1.0f));
108+
mask->setMvpMatrix(projecetion* view * model);
109+
mask->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
110+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
111+
}
112+
{
113+
glm::mat4 model;
114+
model = glm::translate(model, glm::vec3(-3.0f, 1.0f, 0.0f) * reshape);
115+
model = glm::scale(model, glm::vec3(1.0f));
116+
mask->setMvpMatrix(projecetion* view * model);
117+
mask->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
118+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
119+
}
120+
{
121+
glm::mat4 model;
122+
model = glm::translate(model, glm::vec3(1.0f, 1.0f, 0.0f) * reshape);
123+
model = glm::scale(model, glm::vec3(1.0f));
124+
mask->setMvpMatrix(projecetion* view * model);
125+
mask->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
126+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
127+
}
128+
{
129+
glm::mat4 model;
130+
model = glm::translate(model, glm::vec3(-1.0f, 1.0f, 0.0f) * reshape);
131+
model = glm::scale(model, glm::vec3(1.0f));
132+
mask->setMvpMatrix(projecetion* view * model);
133+
mask->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
134+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
135+
}
136+
{
137+
glm::mat4 model;
138+
model = glm::translate(model, glm::vec3(-1.0f, -1.0f, 0.0f) * reshape);
139+
model = glm::scale(model, glm::vec3(1.0f));
140+
mask->setMvpMatrix(projecetion* view * model);
141+
mask->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
142+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
143+
}
144+
{
145+
glm::mat4 model;
146+
model = glm::translate(model, glm::vec3(1.0f, -1.0f, 0.0f) * reshape);
147+
model = glm::scale(model, glm::vec3(1.0f));
148+
mask->setMvpMatrix(projecetion* view * model);
149+
mask->Render(glm::vec3(), glm::vec4(1.0f), 0.0f, glm::vec3(), glm::vec3(),
150+
IRenderHelper::GetSpecificTexWithRatef(XCFrameInfo::FrameRight, XCFrameInfo::FrameTop, 1, 1, 1.0f, renderY));
151+
}
152+
}
153+
154+
void MagicForest::BackgroundRelease()
155+
{
156+
}

0 commit comments

Comments
 (0)