Skip to content

Commit b917944

Browse files
authored
Merge pull request #28 from lr8soft/dev-y
v0.32-release
2 parents 923bc32 + 8a35a0d commit b917944

22 files changed

Lines changed: 103 additions & 72 deletions

.idea/workspace.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

PythonSTG/XCCore/Boss/Boss.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,6 @@ void Boss::taskSubWork()
7070
if (bossFinishMovement) {
7171
(*spellCardBegin)->SpellCardWork();
7272
}
73-
74-
7573
}
7674
if ((*spellCardBegin)->getIsFinish() || bossRenderObject->getSpellCardHitPointClear()) {
7775
(*spellCardBegin)->SpellCardRelease();

PythonSTG/XCCore/Boss/SpellCard.cpp

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -69,23 +69,13 @@ void SpellCard::SpellCardRelease()
6969
std::vector<Task*>::iterator taskEnd = taskGroup.end();
7070
for (auto task = taskBegin; task != taskEnd; task++) {
7171
(*task)->TaskRelease();
72-
delete *task;
73-
if (std::next(task) == taskGroup.end()) {
74-
taskGroup.erase(task);
75-
break;
76-
}
77-
else {
78-
task = taskGroup.erase(task);
79-
taskEnd = taskGroup.end();
80-
}
8172
}
73+
taskGroup.clear();
8274
}
83-
if (!taskUUIDGroup.empty()) {
84-
auto uuidEnd = taskUUIDGroup.end();
85-
for (auto uuiditer = taskUUIDGroup.begin(); uuiditer != uuidEnd; uuiditer++) {
86-
TaskManager::getInstance()->CleanTaskAsync(*uuiditer);
87-
}
75+
for (auto uuid : taskUUIDGroup) {
76+
TaskManager::getInstance()->CleanTaskAsync(uuid);
8877
}
78+
taskUUIDGroup.clear();
8979
isInit = false;
9080
}
9181
}

PythonSTG/XCCore/Bullet/CircleTypeBullet.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ void CircleTypeBullet::Release()
8989
bool CircleTypeBullet::BulletCollideWithPoint(float x, float y,bool &haveGraze)
9090
{
9191
bool value = false;
92-
if (isInit && timer.getAccumlateTime() >=0.4f) {
92+
if (isInit && timer.getAccumlateTime() >=0.1f) {
9393
float distance = (x - NowPosition[0])*(x - NowPosition[0]) + (y - NowPosition[1])*(y - NowPosition[1]);
9494
float parameter = collideSize[0] * collideSize[0];
9595

PythonSTG/XCCore/Bullet/OvalTypeBullet.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ void OvalTypeBullet::Release()
9292
bool OvalTypeBullet::BulletCollideWithPoint(float x, float y, bool &haveGraze)
9393
{
9494
bool value = false;
95-
if (isInit && timer.getAccumlateTime() >= 0.4f) {
95+
if (isInit && timer.getAccumlateTime() >= 0.1f) {
9696
x -= NowPosition[0];
9797
y -= NowPosition[1];
9898

PythonSTG/XCCore/Stage/Stage.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
#include "../Bullet/BulletHelper.h"
88
#include "../Boss/BossHelper.h"
99
#include <GL3/gl3w.h>
10+
11+
#include "../UserInterface/GameInfoInterface.h"
1012
Stage::Stage(std::string uuid, PyObject* item)
1113
{
1214
itemStage = item;
@@ -42,10 +44,13 @@ void Stage::stageInit()
4244
MultiThreadDefine
4345
PyObject* taskSizeObj = PyObject_CallMethod(itemStage, "_cpp_getTaskSize", NULL);
4446
PyObject* bossSizeObj = PyObject_CallMethod(itemStage, "_cpp_getBossSize", NULL);
45-
PyObject* backgroundIdObj = PyObject_CallMethod(itemStage, "_cpp_getBackground", NULL);
47+
PyObject* stageInfoObj = PyObject_CallMethod(itemStage, "_cpp_getStageInfo", NULL);
4648
int taskSize = ScriptLoader::getSingleArg<int>(taskSizeObj);
4749
int bossSize = ScriptLoader::getSingleArg<int>(bossSizeObj);
48-
stageBackgroundID = ScriptLoader::getSingleArg<int>(backgroundIdObj);
50+
51+
const char* stageName;
52+
PyArg_ParseTuple(stageInfoObj, "sii", &stageName, &stageRank, &stageBackgroundID);
53+
4954
if (taskSize > 0) {
5055

5156
for (int i = 0; i < taskSize; i++) {
@@ -82,6 +87,7 @@ void Stage::stageWork()
8287
if (isStageInit) {
8388
timer.Tick();
8489
bool allTaskWaitTarget = true;
90+
GameInfoInterface::getInstance()->setRank(stageRank);
8591
for (auto task = stageTaskGroup.begin(); task != stageTaskGroup.end(); task++) {
8692
if (!task->second->getTaskInit())
8793
task->second->TaskInit();

PythonSTG/XCCore/Stage/Stage.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include "../Background/BackgroundHelper.h"
1313
class Stage {
1414
private:
15-
int stageBackgroundID = 0;
15+
int stageBackgroundID = 0, stageRank = 2;
1616
Background* stageBackground;
1717

1818
std::string stageUuid;

PythonSTG/XCCore/Task/Task.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,10 @@ void Task::TaskRelease()
109109
(*unit)->UnitRelease();
110110
delete (*unit);
111111
}
112-
RenderManager::getInstance()->CleanRenderObject(taskUUID);
113112
subUnitGroup.clear();
113+
RenderManager::getInstance()->CleanRenderObject(taskUUID);
114+
115+
haveInitCoord = false;
114116
taskIsInit = false;
115117
}
116118

PythonSTG/XCCore/Task/TaskInsideUnit.cpp

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,42 +7,47 @@ TaskInsideUnit::TaskInsideUnit(std::string uuid, int wFrame, int rTime): parentU
77

88
void TaskInsideUnit::UnitInit()
99
{
10+
if (!isInit) {
11+
isInit = true;
12+
}
1013
}
1114

1215
void TaskInsideUnit::UnitWork()
1316
{
14-
if (nowFrame > 0) {
15-
nowFrame--;
16-
}
17-
else {
18-
if (repeatTime > 0) {
19-
if (!haveAddToQueue) {
20-
auto iterBegin = renderObjectGroup.begin();
21-
auto iterEnd = renderObjectGroup.end();
22-
for (auto object = iterBegin; object != iterEnd; object++) {
23-
RenderManager::getInstance()->AddRenderObject(parentUuid, *object);
24-
}
25-
renderObjectGroup.clear();
17+
if (isInit) {
18+
if (nowFrame > 0) {
19+
nowFrame--;
20+
}
21+
else {
22+
if (repeatTime > 0) {
23+
if (!haveAddToQueue) {
24+
auto iterBegin = renderObjectGroup.begin();
25+
auto iterEnd = renderObjectGroup.end();
26+
for (auto object = iterBegin; object != iterEnd; object++) {
27+
RenderManager::getInstance()->AddRenderObject(parentUuid, *object);
28+
}
29+
renderObjectGroup.clear();
2630

27-
/*Refill render object*/
28-
auto groupBegin = renderGroupManager.begin();
29-
if (groupBegin != renderGroupManager.end()) {
30-
std::list<RenderObject*> list = *groupBegin;
31-
renderObjectGroup.assign(list.begin(), list.end());
32-
renderGroupManager.erase(groupBegin);
33-
}
34-
else {
35-
haveAddToQueue = true;
36-
}
31+
/*Refill render object*/
32+
auto groupBegin = renderGroupManager.begin();
33+
if (groupBegin != renderGroupManager.end()) {
34+
std::list<RenderObject*> list = *groupBegin;
35+
renderObjectGroup.assign(list.begin(), list.end());
36+
renderGroupManager.erase(groupBegin);
37+
}
38+
else {
39+
haveAddToQueue = true;
40+
}
3741

38-
repeatTime--;
39-
nowFrame = waitFrame;
42+
repeatTime--;
43+
nowFrame = waitFrame;
44+
}
45+
}
46+
else {
47+
haveAddToQueue = true;
4048
}
41-
}
42-
else {
43-
haveAddToQueue = true;
44-
}
4549

50+
}
4651
}
4752
}
4853

@@ -68,6 +73,7 @@ void TaskInsideUnit::UnitRelease()
6873
}
6974
renderGroupManager.clear();
7075
}
76+
isInit = false;
7177
}
7278

7379
void TaskInsideUnit::addRenderObject(RenderObject * pObject)

PythonSTG/XCCore/Task/TaskInsideUnit.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
class TaskInsideUnit {
1010
protected:
1111
int waitFrame, repeatTime = 0, nowFrame = 0;
12-
bool haveAddToQueue = false, isFinish = false;
12+
bool haveAddToQueue = false, isFinish = false, isInit =false;
1313
std::list<RenderObject*> renderObjectGroup;
1414
std::list<std::list<RenderObject*>> renderGroupManager;
1515

0 commit comments

Comments
 (0)