Skip to content

Commit 1c01f72

Browse files
authored
Merge pull request #15 from lr8soft/dev-y
dev-y
2 parents 5a223ea + 4e4fa8c commit 1c01f72

36 files changed

Lines changed: 440 additions & 374 deletions

.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/Python2D.vcxproj

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,16 @@
134134
<ClCompile Include="XCCore\Background\BackgroundHelper.cpp" />
135135
<ClCompile Include="XCCore\Background\Lake.cpp" />
136136
<ClCompile Include="XCCore\Bullet\BulletHelper.cpp" />
137-
<ClCompile Include="XCCore\Bullet\CircleBullet.cpp" />
138-
<ClCompile Include="XCCore\Bullet\HugeBullet.cpp" />
139-
<ClCompile Include="XCCore\Bullet\RiceBullet.cpp" />
137+
<ClCompile Include="XCCore\Bullet\CircleTypeBullet.cpp" />
138+
<ClCompile Include="XCCore\Bullet\RectangleTypeBullet.cpp" />
140139
<ClCompile Include="XCCore\Task\Task.cpp" />
141140
<ClCompile Include="XCCore\Task\TaskDispatcher.cpp" />
142141
<ClCompile Include="XCCore\Task\TaskHelper.cpp" />
143142
<ClCompile Include="XCCore\Task\TaskInsideUnit.cpp" />
144143
<ClCompile Include="XCCore\UserInterface\GameInfoInterface.cpp" />
145-
<ClCompile Include="XCCore\XCFont\XCFont.cpp" />
144+
<ClCompile Include="XCCore\XCCollide\CollideHelper.cpp" />
145+
<ClCompile Include="XCCore\XCCollide\CollideInfo.cpp" />
146+
<ClCompile Include="XCCore\XCRender\XCFont.cpp" />
146147
<ClCompile Include="XCCore\Item\Item.cpp" />
147148
<ClCompile Include="XCCore\Item\Player.cpp" />
148149
<ClCompile Include="XCCore\XCRender\DecisionPointSE.cpp" />
@@ -169,16 +170,17 @@
169170
<ClInclude Include="XCCore\Background\Lake.h" />
170171
<ClInclude Include="XCCore\Bullet\Bullet.h" />
171172
<ClInclude Include="XCCore\Bullet\BulletHelper.h" />
172-
<ClInclude Include="XCCore\Bullet\CircleBullet.h" />
173-
<ClInclude Include="XCCore\Bullet\HugeBullet.h" />
174-
<ClInclude Include="XCCore\Bullet\RiceBullet.h" />
173+
<ClInclude Include="XCCore\Bullet\CircleTypeBullet.h" />
174+
<ClInclude Include="XCCore\Bullet\RectangleTypeBullet.h" />
175175
<ClInclude Include="XCCore\Task\Task.h" />
176176
<ClInclude Include="XCCore\Task\TaskDispatcher.h" />
177177
<ClInclude Include="XCCore\Task\TaskHelper.h" />
178178
<ClInclude Include="XCCore\Task\TaskInsideUnit.h" />
179179
<ClInclude Include="XCCore\UserInterface\GameInfoInterface.h" />
180180
<ClInclude Include="XCCore\UserInterface\IUserInterface.h" />
181-
<ClInclude Include="XCCore\XCFont\XCFont.h" />
181+
<ClInclude Include="XCCore\XCCollide\CollideHelper.h" />
182+
<ClInclude Include="XCCore\XCCollide\CollideInfo.h" />
183+
<ClInclude Include="XCCore\XCRender\XCFont.h" />
182184
<ClInclude Include="XCCore\Item\Item.h" />
183185
<ClInclude Include="XCCore\Item\Player.h" />
184186
<ClInclude Include="XCCore\XCRender\BlendHelper.h" />

Python2D/Python2D.vcxproj.filters

Lines changed: 39 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@
1919
<Filter Include="XCCore\Item">
2020
<UniqueIdentifier>{43fd9bff-7c18-403e-a0c5-5ca4cf4aaad0}</UniqueIdentifier>
2121
</Filter>
22-
<Filter Include="XCCore\XCFont">
23-
<UniqueIdentifier>{beb81aae-aa63-4b86-81c8-01dff3d0b01f}</UniqueIdentifier>
24-
</Filter>
2522
<Filter Include="XCCore\Stage">
2623
<UniqueIdentifier>{ac940bd2-e2a1-4200-bd83-f5234c0035c6}</UniqueIdentifier>
2724
</Filter>
@@ -34,6 +31,12 @@
3431
<Filter Include="XCCore\UserInterface">
3532
<UniqueIdentifier>{c8b2abf1-a953-43b3-8388-b6e26ad868b9}</UniqueIdentifier>
3633
</Filter>
34+
<Filter Include="XCCore\XCCollide">
35+
<UniqueIdentifier>{fd61ee80-385b-46d4-8ae2-7fb9175b62b3}</UniqueIdentifier>
36+
</Filter>
37+
<Filter Include="XCCore\XCRender\SpecialEffect">
38+
<UniqueIdentifier>{45914d97-27d5-4885-8ac8-35dc9da4f6f6}</UniqueIdentifier>
39+
</Filter>
3740
</ItemGroup>
3841
<ItemGroup>
3942
<ClCompile Include="util\ConfigManager.cpp">
@@ -49,9 +52,6 @@
4952
<Filter>util</Filter>
5053
</ClCompile>
5154
<ClCompile Include="XCFrame.cpp" />
52-
<ClCompile Include="XCCore\XCFont\XCFont.cpp">
53-
<Filter>XCCore\XCFont</Filter>
54-
</ClCompile>
5555
<ClCompile Include="util\ShaderReader.cpp">
5656
<Filter>util</Filter>
5757
</ClCompile>
@@ -72,9 +72,6 @@
7272
</ClCompile>
7373
<ClCompile Include="XCFrameInfo.cpp" />
7474
<ClCompile Include="python2d.cpp" />
75-
<ClCompile Include="XCCore\XCRender\DecisionPointSE.cpp">
76-
<Filter>XCCore\XCRender</Filter>
77-
</ClCompile>
7875
<ClCompile Include="XCCore\Item\Item.cpp">
7976
<Filter>XCCore\Item</Filter>
8077
</ClCompile>
@@ -87,9 +84,6 @@
8784
<ClCompile Include="XCCore\Bullet\BulletHelper.cpp">
8885
<Filter>XCCore\Bullet</Filter>
8986
</ClCompile>
90-
<ClCompile Include="XCCore\Bullet\CircleBullet.cpp">
91-
<Filter>XCCore\Bullet</Filter>
92-
</ClCompile>
9387
<ClCompile Include="XCCore\Task\Task.cpp">
9488
<Filter>XCCore\Task</Filter>
9589
</ClCompile>
@@ -114,14 +108,26 @@
114108
<ClCompile Include="XCCore\XCRender\IRenderHelper.cpp">
115109
<Filter>XCCore\XCRender</Filter>
116110
</ClCompile>
117-
<ClCompile Include="XCCore\Bullet\RiceBullet.cpp">
111+
<ClCompile Include="XCCore\UserInterface\GameInfoInterface.cpp">
112+
<Filter>XCCore\UserInterface</Filter>
113+
</ClCompile>
114+
<ClCompile Include="XCCore\Bullet\CircleTypeBullet.cpp">
118115
<Filter>XCCore\Bullet</Filter>
119116
</ClCompile>
120-
<ClCompile Include="XCCore\Bullet\HugeBullet.cpp">
117+
<ClCompile Include="XCCore\Bullet\RectangleTypeBullet.cpp">
121118
<Filter>XCCore\Bullet</Filter>
122119
</ClCompile>
123-
<ClCompile Include="XCCore\UserInterface\GameInfoInterface.cpp">
124-
<Filter>XCCore\UserInterface</Filter>
120+
<ClCompile Include="XCCore\XCRender\XCFont.cpp">
121+
<Filter>XCCore\XCRender</Filter>
122+
</ClCompile>
123+
<ClCompile Include="XCCore\XCRender\DecisionPointSE.cpp">
124+
<Filter>XCCore\XCRender\SpecialEffect</Filter>
125+
</ClCompile>
126+
<ClCompile Include="XCCore\XCCollide\CollideHelper.cpp">
127+
<Filter>XCCore\XCCollide</Filter>
128+
</ClCompile>
129+
<ClCompile Include="XCCore\XCCollide\CollideInfo.cpp">
130+
<Filter>XCCore\XCCollide</Filter>
125131
</ClCompile>
126132
</ItemGroup>
127133
<ItemGroup>
@@ -141,9 +147,6 @@
141147
<Filter>util</Filter>
142148
</ClInclude>
143149
<ClInclude Include="XCFrame.h" />
144-
<ClInclude Include="XCCore\XCFont\XCFont.h">
145-
<Filter>XCCore\XCFont</Filter>
146-
</ClInclude>
147150
<ClInclude Include="XCInterpreter\XCInterpreter.h">
148151
<Filter>XCInterpreter</Filter>
149152
</ClInclude>
@@ -163,12 +166,6 @@
163166
<Filter>XCCore\XCRender</Filter>
164167
</ClInclude>
165168
<ClInclude Include="XCFrameInfo.h" />
166-
<ClInclude Include="XCCore\XCRender\ISpecialEffect.h">
167-
<Filter>XCCore\XCRender</Filter>
168-
</ClInclude>
169-
<ClInclude Include="XCCore\XCRender\DecisionPointSE.h">
170-
<Filter>XCCore\XCRender</Filter>
171-
</ClInclude>
172169
<ClInclude Include="XCCore\Bullet\Bullet.h">
173170
<Filter>XCCore\Bullet</Filter>
174171
</ClInclude>
@@ -184,9 +181,6 @@
184181
<ClInclude Include="XCCore\Bullet\BulletHelper.h">
185182
<Filter>XCCore\Bullet</Filter>
186183
</ClInclude>
187-
<ClInclude Include="XCCore\Bullet\CircleBullet.h">
188-
<Filter>XCCore\Bullet</Filter>
189-
</ClInclude>
190184
<ClInclude Include="XCCore\Task\Task.h">
191185
<Filter>XCCore\Task</Filter>
192186
</ClInclude>
@@ -220,11 +214,26 @@
220214
<ClInclude Include="XCCore\UserInterface\GameInfoInterface.h">
221215
<Filter>XCCore\UserInterface</Filter>
222216
</ClInclude>
223-
<ClInclude Include="XCCore\Bullet\RiceBullet.h">
217+
<ClInclude Include="XCCore\Bullet\CircleTypeBullet.h">
224218
<Filter>XCCore\Bullet</Filter>
225219
</ClInclude>
226-
<ClInclude Include="XCCore\Bullet\HugeBullet.h">
220+
<ClInclude Include="XCCore\Bullet\RectangleTypeBullet.h">
227221
<Filter>XCCore\Bullet</Filter>
228222
</ClInclude>
223+
<ClInclude Include="XCCore\XCRender\XCFont.h">
224+
<Filter>XCCore\XCRender</Filter>
225+
</ClInclude>
226+
<ClInclude Include="XCCore\XCCollide\CollideHelper.h">
227+
<Filter>XCCore\XCCollide</Filter>
228+
</ClInclude>
229+
<ClInclude Include="XCCore\XCRender\ISpecialEffect.h">
230+
<Filter>XCCore\XCRender\SpecialEffect</Filter>
231+
</ClInclude>
232+
<ClInclude Include="XCCore\XCRender\DecisionPointSE.h">
233+
<Filter>XCCore\XCRender\SpecialEffect</Filter>
234+
</ClInclude>
235+
<ClInclude Include="XCCore\XCCollide\CollideInfo.h">
236+
<Filter>XCCore\XCCollide</Filter>
237+
</ClInclude>
229238
</ItemGroup>
230239
</Project>

Python2D/XCCore/Bullet/Bullet.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class Bullet {
1010

1111
bool isWorkFinish = false;
1212

13-
void checkReboundOrOverflow(int *reBoundTimePointer, float *angle)
13+
void checkReboundOrOverflow(int *reBoundTimePointer, float *angle, float scaleX, float scaleY)
1414
{
1515
float frameWidth = XCFrameInfo::FrameRight;
1616
float frameHeight = XCFrameInfo::FrameTop;
@@ -62,7 +62,13 @@ class Bullet {
6262
(*reBoundTimePointer)--;
6363
}
6464
else {
65-
isWorkFinish = true;
65+
float renderWidth = scaleX * XCFrameInfo::FrameRight;
66+
float renderHeight = scaleY * XCFrameInfo::FrameTop;
67+
if (renderY + renderHeight > frameHeight || renderY + renderHeight< -frameHeight
68+
|| renderX + renderWidth > frameWidth || renderX + renderWidth < -frameWidth) {
69+
isWorkFinish = true;
70+
}
71+
6672
}
6773
}
6874
}
@@ -71,6 +77,7 @@ class Bullet {
7177
virtual void BulletRender() = 0;
7278
virtual void BulletRelease() = 0;
7379

80+
virtual bool BulletCollideWithPoint(float x, float y) = 0;
7481
bool getIsFinish() {
7582
return isWorkFinish;
7683
}

Python2D/XCCore/Bullet/BulletHelper.cpp

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
11
#include "BulletHelper.h"
2-
#include "HugeBullet.h"
3-
#include "CircleBullet.h"
4-
#include "RiceBullet.h"
2+
#include "CircleTypeBullet.h"
53
#include "../../XCInterpreter/ScriptLoader.h"
6-
Bullet * BulletHelper::getNewBulletObject(std::string bulletType, int bulletColor, glm::vec4 divideInfo, glm::vec3 scaleInfo, glm::vec3 initCoord
4+
Bullet * BulletHelper::getNewBulletObject(std::string bulletImage,std::string bulletType, glm::vec4 divideInfo, glm::vec3 scaleInfo, glm::vec3 initCoord
75
, float velocity, float acceleration, float angle, float increateAngle, int reboundTime, bool aimPlayer)
86
{
97
Bullet *bullet = nullptr;
10-
if (bulletType == "circleBullet") {
11-
bullet = new CircleBullet(bulletColor, divideInfo, scaleInfo, initCoord, velocity, acceleration, angle, increateAngle, reboundTime, aimPlayer);
12-
}
13-
else if (bulletType == "riceBullet") {
14-
bullet = new RiceBullet(bulletColor, divideInfo, scaleInfo, initCoord, velocity, acceleration, angle, increateAngle, reboundTime, aimPlayer);
15-
}
16-
else if (bulletType == "hugeBullet") {
17-
bullet = new HugeBullet(bulletColor, divideInfo, scaleInfo, initCoord, velocity, acceleration, angle, increateAngle, reboundTime, aimPlayer);
8+
if (bulletType == "circleTypeBullet") {
9+
bullet = new CircleTypeBullet(bulletImage, divideInfo, scaleInfo, initCoord, velocity, acceleration, angle, increateAngle, reboundTime, aimPlayer);
1810
}
1911
return bullet;
2012
}
@@ -25,23 +17,20 @@ Bullet * BulletHelper::parseBulletObject(PyObject * bulletObject)
2517

2618
if (bulletObject != nullptr) {
2719
auto imageInfo = PyObject_CallMethod(bulletObject, "_cpp_getInitRenderInfo", NULL);
28-
auto bulletColorInfo = PyObject_CallMethod(bulletObject, "_cpp_getBulletColor", NULL);
2920
auto bulletGenerateInfo = PyObject_CallMethod(bulletObject, "_cpp_getGenerateInfo", NULL);
3021
auto bulletCoordInfo = PyObject_CallMethod(bulletObject, "_cpp_getInitCoord", NULL);
3122

32-
const char* bulletType; int divideInfo[4]; float scaleInfo[3];
33-
PyArg_ParseTuple(imageInfo, "s(iiii)(fff)", &bulletType, &divideInfo[0], &divideInfo[1], &divideInfo[2], &divideInfo[3], &scaleInfo[0], &scaleInfo[1], &scaleInfo[2]);
23+
const char* bulletImage, *bulletType; int divideInfo[4]; float scaleInfo[3];
24+
PyArg_ParseTuple(imageInfo, "ss(iiii)(fff)", &bulletImage, &bulletType, &divideInfo[0], &divideInfo[1], &divideInfo[2], &divideInfo[3], &scaleInfo[0], &scaleInfo[1], &scaleInfo[2]);
3425

35-
int bulletColor;
36-
PyArg_Parse(bulletColorInfo, "i", &bulletColor);
3726

3827
float velocity, acceleration, angle, increaseAngle; int aimPlayer, reboundTime;
3928
PyArg_ParseTuple(bulletGenerateInfo, "ffffip", &velocity, &acceleration, &angle, &increaseAngle, &reboundTime, &aimPlayer);
4029

4130
float initCoord[3];
4231
PyArg_ParseTuple(bulletCoordInfo, "fff", &initCoord[0], &initCoord[1], &initCoord[2]);
4332

44-
bullet = BulletHelper::getNewBulletObject(bulletType, bulletColor, glm::vec4(divideInfo[0], divideInfo[1], divideInfo[2], divideInfo[3])
33+
bullet = BulletHelper::getNewBulletObject(bulletImage, bulletType, glm::vec4(divideInfo[0], divideInfo[1], divideInfo[2], divideInfo[3])
4534
, glm::vec3(scaleInfo[0], scaleInfo[1], scaleInfo[2]), glm::vec3(initCoord[0], initCoord[1], initCoord[2])
4635
, velocity, acceleration, angle, increaseAngle, reboundTime, aimPlayer);
4736
if (bullet != nullptr) {

Python2D/XCCore/Bullet/BulletHelper.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include <Python.h>
66
class BulletHelper {
77
private:
8-
static Bullet* getNewBulletObject(std::string bulletType, int bulletColor, glm::vec4 divideInfo, glm::vec3 scaleInfo, glm::vec3 initCoord
8+
static Bullet* getNewBulletObject(std::string bulletImage,std::string bulletType, glm::vec4 divideInfo, glm::vec3 scaleInfo, glm::vec3 initCoord
99
, float velocity, float acceleration, float angle, float increateAngle, int reboundTime, bool aimPlayer);
1010
public:
1111
static Bullet* parseBulletObject(PyObject* taskUnitItem);

Python2D/XCCore/Bullet/CircleBullet.cpp

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

0 commit comments

Comments
 (0)