Blame view

ios/Runner/Wowgame/Classes/Parsing/ScenarioParsing/ActionSequenceHandler.h 2.71 KB
cb213901   xiaoyu   添加一个游戏的源码和编译选项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  //
  //  ActionSequenceHandler.h
  //  SteveMaggieCpp
  //
  //  Created by Katarzyna Kalinowska-Górska on 29.06.2017.
  //
  //
  
  #ifndef ActionSequenceHandler_h
  #define ActionSequenceHandler_h
  
  #include "ActionParser.h"
  #include "json/document.h"
  #include "ScenarioObject.h"
  
  class ActionSequenceHandler : public ActionParseDelegate
  {
      public:
      
          ActionSequenceHandler(ScenarioObject* containerNode, const rapidjson::Value& actionsArray);
          virtual ~ActionSequenceHandler();
      
          virtual void runNext();
          virtual void reset();
          virtual void stop();
      
          // action parse delegate
          virtual ScenarioObject* getObjectByName(std::string objectName);
          virtual ScenarioObject* getDefaultObjectForAction(std::string actionType);
          virtual ScenarioObject* getDefaultObjectForConditionCheck();
          virtual void addNewObject(std::string objectName, ScenarioObject* newObject);
          virtual std::string getDefaultSoundsPath();
          virtual std::string getAlternativeSoundsPath();
          virtual std::string getValueStorageContainerName();
          virtual void runAction(cocos2d::Action* action);
          virtual void actionFinished(const rapidjson::Value& jsonActionObject);
          virtual void runInstantly(std::function<void()> actionFunction);
          virtual void runCompletingAction(cocos2d::Action* action);
          virtual void cancelAllCompletingActions();
          virtual void schedule(std::function<void(float)> callback, std::string key, float delay);
          virtual void scheduleOnce(std::function<void(float)> callback, float delay, std::string key);
          virtual void unschedule(std::string key);
          virtual void newTouchHandler(std::string key, TouchHandlerFunction touchHandler, TouchHandlerType touchType);
          virtual void removeTouchHandler(std::string key, TouchHandlerType touchType);
          virtual long long getLastScreenTouchTime();
          virtual int getLoopActionCounter(std::string loopId);
          virtual int addNewLoopActionCounter(std::string loopId, int timesRepeated);
          virtual int decrementLoopActionCounter(std::string loopId);
          virtual void deleteLoopActionCounter(std::string loopId);
          virtual void setLastActionIndex(int index);
          virtual unsigned int removeStoredSoundId(std::string soundPath);
          virtual void storeSoundId(std::string soundPath, unsigned int newSoundId);
      
      protected:
      
          std::string _valueStorageContainerName;
          ScenarioObject* _containerNode;
          rapidjson::Document* _JSONDataStorage;
          rapidjson::Value* _actions;
          int _lastActionIndex;
          cocos2d::Action* _currentAction;
          std::function<void()> _onLastActionFinished;
  };
  
  #endif /* ActionSequenceHandler_h */