cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
1
|
//
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
2
|
// ToyActionSequenceHandler.cpp
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
3
4
5
6
7
8
9
|
// SteveMaggieCpp
//
// Created by Katarzyna Kalinowska-Górska on 29.06.2017.
//
//
#include <stdio.h>
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
10
11
12
|
#include "ToyActionSequenceHandler.h"
#include "ToyResourceUtilities.h"
#include "ToyValueStorage.h"
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
13
|
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
14
|
ToyActionSequenceHandler::ToyActionSequenceHandler(ToyScenarioObject* containerNode, const rapidjson::Value& actionsArray)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
{
_containerNode = containerNode;
_JSONDataStorage = new (std::nothrow) rapidjson::Document();
_actions = new (std::nothrow) rapidjson::Value();
_actions->CopyFrom(actionsArray, _JSONDataStorage->GetAllocator());
static int valueStorageKeyNumber = 0;
valueStorageKeyNumber = (valueStorageKeyNumber + 1)%100;
_valueStorageContainerName = "ActionSequenceHandlerValues" + std::to_string(valueStorageKeyNumber);
_lastActionIndex = -1;
_onLastActionFinished = [](){};
_currentAction = nullptr;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
29
|
ToyActionSequenceHandler::~ToyActionSequenceHandler()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
30
31
32
33
34
|
{
delete _JSONDataStorage;
delete _actions;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
35
|
void ToyActionSequenceHandler::runNext()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
36
37
38
39
40
41
42
43
44
45
|
{
auto i = _lastActionIndex+1;
auto actionsArray = _actions->GetArray();
if(i >= actionsArray.Size()){
return;
}
const auto& currentAction = actionsArray[i];
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
46
|
auto parsedAction = ToyActionParser::getInstance().parseJSONAction(currentAction, this);
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
47
48
49
50
51
52
53
54
55
56
57
58
|
_lastActionIndex = i;
if(parsedAction){
this->runAction(parsedAction);
} else {
this->actionFinished(currentAction);
}
_currentAction = parsedAction;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
59
|
void ToyActionSequenceHandler::reset()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
60
61
62
63
64
|
{
_lastActionIndex = -1;
_currentAction = nullptr;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
65
|
void ToyActionSequenceHandler::stop()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
66
67
68
69
70
71
72
|
{
if(_currentAction){
auto containerNode = dynamic_cast<cocos2d::Node*>(_containerNode);
if(containerNode){
containerNode->stopAction(_currentAction);
}
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
73
|
ToyActionParser::getInstance().cleanUp(this);
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
74
75
76
77
78
|
this->reset();
}
// methods for parseDelegate
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
79
|
ToyScenarioObject* ToyActionSequenceHandler::getObjectByName (std::string objectName)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
80
|
{
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
81
|
return _containerNode->getToyScenarioObjectByName(objectName);
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
82
83
|
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
84
|
ToyScenarioObject* ToyActionSequenceHandler::getDefaultObjectForAction(std::string actionType)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
85
|
{
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
86
|
return dynamic_cast<ToyScenarioObject*>(_containerNode);
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
87
88
|
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
89
|
ToyScenarioObject* ToyActionSequenceHandler::getDefaultObjectForConditionCheck()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
90
|
{
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
91
|
return dynamic_cast<ToyScenarioObject*>(_containerNode);
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
92
93
|
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
94
|
void ToyActionSequenceHandler::addNewObject(std::string objectName, ToyScenarioObject* newObject)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
95
96
97
98
|
{
// do nothing
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
99
|
std::string ToyActionSequenceHandler::getDefaultSoundsPath()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
100
|
{
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
101
|
return ToyResourceUtilities::getInstance().getDownloadedResourcesPath(false);
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
102
103
|
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
104
|
std::string ToyActionSequenceHandler::getAlternativeSoundsPath()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
105
|
{
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
106
|
return ToyResourceUtilities::getInstance().getDownloadedResourcesPath(false);
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
107
108
|
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
109
|
std::string ToyActionSequenceHandler::getToyValueStorageContainerName()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
110
111
112
113
|
{
return _valueStorageContainerName;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
114
|
void ToyActionSequenceHandler::runAction(cocos2d::Action* action)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
115
116
117
118
119
120
121
|
{
auto containerNode = dynamic_cast<cocos2d::Node*>(_containerNode);
if(containerNode){
containerNode->runAction(action);
}
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
122
|
void ToyActionSequenceHandler::actionFinished(const rapidjson::Value& jsonActionObject)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
123
124
125
126
127
|
{
if(_lastActionIndex < _actions->GetArray().Size() - 1){
this->runNext();
} else {
_onLastActionFinished();
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
128
|
ToyActionParser::getInstance().cleanUp(this);
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
129
130
131
|
}
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
132
|
void ToyActionSequenceHandler::runInstantly(std::function<void()> actionFunction)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
133
134
135
136
|
{
actionFunction();
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
137
|
void ToyActionSequenceHandler::runCompletingAction(cocos2d::Action* action)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
138
139
140
141
|
{
// do nothing
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
142
|
void ToyActionSequenceHandler::cancelAllCompletingActions()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
143
144
145
146
|
{
// do nothing
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
147
|
void ToyActionSequenceHandler::schedule(std::function<void(float)> callback, std::string key, float delay)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
148
149
150
151
152
153
154
|
{
auto containerNode = dynamic_cast<cocos2d::Node*>(_containerNode);
if(containerNode){
containerNode->schedule(callback, delay, key);
}
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
155
|
void ToyActionSequenceHandler::scheduleOnce(const std::function<void(float)> callback, float delay, std::string key)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
156
157
158
159
160
161
162
|
{
auto containerNode = dynamic_cast<cocos2d::Node*>(_containerNode);
if(containerNode){
containerNode->scheduleOnce(callback, delay, key);
}
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
163
|
void ToyActionSequenceHandler::unschedule(std::string key)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
164
165
166
167
168
169
170
|
{
auto containerNode = dynamic_cast<cocos2d::Node*>(_containerNode);
if(containerNode){
containerNode->unschedule(key);
}
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
171
|
void ToyActionSequenceHandler::newTouchHandler(std::string key, TouchHandlerFunction touchHandler, TouchHandlerType touchType)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
172
173
174
175
|
{
// do nothing
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
176
|
void ToyActionSequenceHandler::removeTouchHandler(std::string key, TouchHandlerType touchHandlerType)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
177
178
179
180
|
{
// do nothing
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
181
|
long long ToyActionSequenceHandler::getLastScreenTouchTime()
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
182
183
184
185
|
{
return 0;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
186
|
int ToyActionSequenceHandler::getLoopActionCounter(std::string loopId)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
187
188
189
190
|
{
return 0;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
191
|
int ToyActionSequenceHandler::addNewLoopActionCounter(std::string loopId, int timesRepeated)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
192
193
194
195
|
{
return 0;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
196
|
int ToyActionSequenceHandler::decrementLoopActionCounter(std::string loopId)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
197
198
199
200
|
{
return 0;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
201
|
void ToyActionSequenceHandler::deleteLoopActionCounter(std::string loopId)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
202
203
204
205
|
{
// do nothing
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
206
|
void ToyActionSequenceHandler::setLastActionIndex(int index)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
207
208
209
210
|
{
_lastActionIndex = index;
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
211
|
void ToyActionSequenceHandler::storeSoundId(std::string soundPath, unsigned int newSoundId)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
212
213
214
215
|
{
// do nothing
}
|
5daad4bc
xiaoyu
游戏源码添加编译(现存问题:游戏内...
|
216
|
unsigned int ToyActionSequenceHandler::removeStoredSoundId(std::string soundPath)
|
cb213901
xiaoyu
添加一个游戏的源码和编译选项
|
217
218
219
|
{
return -1;
}
|