axmol/tests/cpp-tests/Classes/ExtensionsTest/CocoStudioArmatureTest/ArmatureScene.h

429 lines
9.9 KiB
C
Raw Normal View History

2013-06-06 12:02:54 +08:00
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
#include "extensions/cocos-ext.h"
#include "../../BaseTest.h"
#include "cocostudio/CocoStudio.h"
2013-06-06 12:02:54 +08:00
2013-09-13 18:07:37 +08:00
#if ENABLE_PHYSICS_BOX2D_DETECT
#include "../../Box2DTestBed/GLES-Render.h"
#include "Box2D/Box2D.h"
#elif ENABLE_PHYSICS_CHIPMUNK_DETECT
#include "chipmunk.h"
#endif
class CocoStudioArmatureTests : public TestSuite
2013-06-06 12:02:54 +08:00
{
public:
CocoStudioArmatureTests();
~CocoStudioArmatureTests();
2013-06-06 12:02:54 +08:00
private:
2013-06-06 12:02:54 +08:00
};
class ArmatureBaseTest : public TestCase
2013-06-06 12:02:54 +08:00
{
public:
virtual std::string title() const;
virtual bool init() override;
2013-06-06 12:02:54 +08:00
2013-09-13 18:07:37 +08:00
protected:
};
2013-06-06 12:02:54 +08:00
class TestAsynchronousLoading : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestAsynchronousLoading);
virtual void onEnter() override;
virtual std::string title() const override;
virtual std::string subtitle() const override;
virtual void restartTestCallback(Ref* pSender) override;
2013-06-06 12:02:54 +08:00
2013-09-13 18:07:37 +08:00
void dataLoaded(float percent);
};
2013-06-06 12:02:54 +08:00
class TestDirectLoading : public ArmatureBaseTest
{
public:
CREATE_FUNC(TestDirectLoading);
virtual void onEnter() override;
virtual std::string title() const override;
};
class TestCSWithSkeleton : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestCSWithSkeleton);
virtual void onEnter() override;
virtual std::string title() const override;
2013-06-06 12:02:54 +08:00
};
2013-09-13 18:07:37 +08:00
class TestDragonBones20 : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
2013-09-13 18:07:37 +08:00
public:
CREATE_FUNC(TestDragonBones20);
virtual void onEnter() override;
virtual std::string title() const override;
2013-06-06 12:02:54 +08:00
};
class TestPerformance : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestPerformance);
2013-06-06 12:02:54 +08:00
~TestPerformance();
virtual void onEnter() override;
virtual std::string title() const override;
virtual std::string subtitle() const override;
virtual void onIncrease(Ref* pSender);
virtual void onDecrease(Ref* pSender);
2013-10-30 09:41:40 +08:00
virtual void addArmature(int number);
virtual void addArmatureToParent(cocostudio::Armature *armature);
virtual void removeArmatureFromParent(int tag);
2013-12-13 19:40:38 +08:00
virtual void refreshTitle();
2013-06-06 12:02:54 +08:00
int armatureCount;
int frames;
float times;
float lastTimes;
bool generated;
};
2013-10-30 09:41:40 +08:00
class TestPerformanceBatchNode : public TestPerformance
{
public:
CREATE_FUNC(TestPerformanceBatchNode);
virtual void onEnter() override;
virtual std::string title() const override;
2013-10-30 09:41:40 +08:00
virtual void addArmatureToParent(cocostudio::Armature *armature);
virtual void removeArmatureFromParent(int tag);
cocostudio::BatchNode *batchNode;
};
2013-06-06 12:02:54 +08:00
class TestChangeZorder : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestChangeZorder);
virtual void onEnter() override;
virtual std::string title() const override;
2013-06-06 12:02:54 +08:00
void changeZorder(float dt);
int currentTag;
};
class TestAnimationEvent : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestAnimationEvent);
2013-06-06 12:02:54 +08:00
virtual void onEnter() override;
virtual std::string title() const override;
void animationEvent(cocostudio::Armature *armature, cocostudio::MovementEventType movementType, const std::string& movementID);
2013-06-06 12:02:54 +08:00
void callback1();
void callback2();
cocostudio::Armature *armature;
2013-06-06 12:02:54 +08:00
};
class TestFrameEvent : public ArmatureBaseTest
{
public:
CREATE_FUNC(TestFrameEvent);
virtual void onEnter() override;
virtual std::string title() const override;
void onFrameEvent(cocostudio::Bone *bone, const std::string& evt, int originFrameIndex, int currentFrameIndex);
void checkAction(float dt);
2013-12-11 13:40:04 +08:00
protected:
NodeGrid* _gridNode;
};
class TestUseMutiplePicture : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestUseMutiplePicture);
virtual void onEnter() override;
virtual void onExit() override;
virtual std::string title() const override;
virtual std::string subtitle() const override;
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
2013-06-06 12:02:54 +08:00
int displayIndex;
cocostudio::Armature *armature;
2013-06-06 12:02:54 +08:00
};
class TestParticleDisplay : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestParticleDisplay);
virtual void onEnter() override;
virtual void onExit() override;
virtual std::string title() const override;
virtual std::string subtitle() const override;
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
2013-06-06 12:02:54 +08:00
int animationID;
cocostudio::Armature *armature;
2013-06-06 12:02:54 +08:00
};
2013-09-13 18:07:37 +08:00
#if ENABLE_PHYSICS_BOX2D_DETECT
class ContactListener;
class TestColliderDetector : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestColliderDetector);
2013-09-13 18:07:37 +08:00
~TestColliderDetector();
virtual void onEnter() override;
virtual void onExit() override;
virtual std::string title() const override;
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;
2013-06-06 12:02:54 +08:00
virtual void update(float delta);
void onFrameEvent(cocostudio::Bone *bone, const std::string& evt, int originFrameIndex, int currentFrameIndex);
2013-09-13 18:07:37 +08:00
void initWorld();
cocostudio::Armature *armature;
cocostudio::Armature *armature2;
2013-09-13 18:07:37 +08:00
cocos2d::extension::PhysicsSprite *bullet;
b2World *world;
ContactListener *listener;
GLESDebugDraw *debugDraw;
};
#elif ENABLE_PHYSICS_CHIPMUNK_DETECT
class TestColliderDetector : public ArmatureBaseTest
2013-09-13 18:07:37 +08:00
{
public:
CREATE_FUNC(TestColliderDetector);
2013-09-13 18:07:37 +08:00
~TestColliderDetector();
virtual void onEnter() override;
virtual void onExit() override;
virtual std::string title() const override;
2013-09-13 18:07:37 +08:00
virtual void update(float delta);
void onFrameEvent(cocostudio::Bone *bone, const char *evt, int originFrameIndex, int currentFrameIndex);
2013-06-06 12:02:54 +08:00
2013-09-13 18:07:37 +08:00
void initWorld();
cocostudio::Armature *armature;
cocostudio::Armature *armature2;
2013-09-13 18:07:37 +08:00
cocos2d::extension::PhysicsSprite *bullet;
cpSpace *space;
static int beginHit(cpArbiter *arb, cpSpace *space, void *unused);
static void endHit(cpArbiter *arb, cpSpace *space, void *unused);
void destroyCPBody(cpBody *body);
2013-06-06 12:02:54 +08:00
};
#elif ENABLE_PHYSICS_SAVE_CALCULATED_VERTEX
class TestColliderDetector : public ArmatureBaseTest
{
public:
CREATE_FUNC(TestColliderDetector);
~TestColliderDetector();
virtual void onEnter() override;
2013-12-19 10:42:06 +08:00
virtual std::string title() const override;
virtual void update(float delta);
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;
void onFrameEvent(cocostudio::Bone *bone, const std::string& evt, int originFrameIndex, int currentFrameIndex);
void initWorld() {};
cocostudio::Armature *armature;
cocostudio::Armature *armature2;
DrawNode *drawNode;
cocos2d::Sprite *bullet;
};
2013-09-13 18:07:37 +08:00
#endif
class TestBoundingBox : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestBoundingBox);
virtual void onEnter() override;
virtual std::string title() const override;
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;
2013-06-06 12:02:54 +08:00
cocostudio::Armature *armature;
Rect rect;
2013-12-25 14:02:13 +08:00
protected:
DrawNode* _drawNode;
2013-06-06 12:02:54 +08:00
};
class TestAnchorPoint : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestAnchorPoint);
virtual void onEnter() override;
virtual std::string title() const override;
2013-06-06 12:02:54 +08:00
};
class TestArmatureNesting : public ArmatureBaseTest
2013-06-06 12:02:54 +08:00
{
public:
CREATE_FUNC(TestArmatureNesting);
virtual void onEnter() override;
virtual void onExit() override;
virtual std::string title() const override;
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
2013-06-06 12:02:54 +08:00
cocostudio::Armature *armature;
2013-06-06 12:02:54 +08:00
int weaponIndex;
};
2013-10-30 09:41:40 +08:00
class Hero : public cocostudio::Armature
{
public:
static Hero *create(const char *name);
Hero();
virtual void changeMount(cocostudio::Armature *armature);
2013-12-25 16:46:31 +08:00
virtual void playWithIndex(int index);
2013-10-30 09:41:40 +08:00
CC_SYNTHESIZE(cocostudio::Armature*, m_pMount, Mount);
CC_SYNTHESIZE(cocos2d::Scene*, _scene, Scene);
2013-10-30 09:41:40 +08:00
};
class TestArmatureNesting2 : public ArmatureBaseTest
2013-10-30 09:41:40 +08:00
{
public:
CREATE_FUNC(TestArmatureNesting2);
2014-01-07 20:54:34 +08:00
virtual void onEnter() override;
virtual void onExit() override;
virtual std::string title() const override;
virtual std::string subtitle() const override;
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
2013-10-30 09:41:40 +08:00
void changeMountCallback(Ref* pSender);
Squashed commit of the following: commit a9572b8913f3a38b59adbd7b4017ab9848a6b2b5 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed May 14 10:03:44 2014 -0700 math renames `Vector2` -> `Vec2` `Vector3` -> `Vec3` `Vector4` -> `Vec4` `Matrix` -> `Mat4` commit 4e107f4bd854c26bfceb52b063d6bd9cea02d6a3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 09:24:28 2014 -0700 raw version of rename Vector3 commit 1d115573ebe96a5fc815fa44fbe6417ea7dba841 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 09:07:14 2014 -0700 rename Vector2 after merge commit ab2ed58c129dbc30a4c0970ed94568c5d271657b Merge: 1978d2d 86fb75a Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 09:05:30 2014 -0700 Merge branch 'v3' into v3_renameMathClassName Conflicts: tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UIButtonTest/UIButtonTest_Editor.cpp tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UICheckBoxTest/UICheckBoxTest_Editor.cpp tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UISliderTest/UISliderTest_Editor.cpp tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UITextFieldTest/UITextFieldTest.cpp tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UITextFieldTest/UITextFieldTest_Editor.cpp commit 1978d2d174877172ccddc083020a1bbf43ad3b39 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 08:51:45 2014 -0700 rename vector2 in tests/cpp-empty-test folder commit d4e0ff13dcce62724d2fece656543f26aa28e467 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:58:23 2014 -0700 rename vector2 in tests/cpp-tests cpp files commit be50ca2ec75e0fd32a6fcdaa15fe1ebb4cafe79f Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:52:57 2014 -0700 rename vector2 in tests/cpp-tests head files commit 6daef564400d4e28c4ce20859a68e0f583fed125 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:49:48 2014 -0700 rename vector2 in extension folder commit 8f3f0f65ceea92c9e7a0d87ab54e62220c5572e2 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:47:22 2014 -0700 rename vector2 in cocos/2d cpp files commit e1f3105aae06d595661a3030f519f7cc13aefbed Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:44:39 2014 -0700 rename vector2 in cocos/2d head files commit 6708d890bfe486109120c3cd4b9fe5c078b7108f Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:40:59 2014 -0700 rename vector2 in cocos/base folder commit d3978fa5447c31ea2f3ece5469b7e746dfba4248 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:40:43 2014 -0700 rename vector2 in cocos/deprecated folder commit 4bff45139363d6b9706edbbcf9f322d48b4fd019 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:40:26 2014 -0700 rename vector2 in cocos/editor-support folder commit 353d244c995f8b5d14f635c52aed8bc5e5fc1a6f Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:36:48 2014 -0700 rename vector2 in cocos/ui folder commit 758b8f4d513084b9922d7242e9b8f2c7f316de6c Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:32:39 2014 -0700 rename vector2 in cocos/renderer folder commit 0bd2710dd8714cecb993880bc37affd9ecb05c27 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:32:15 2014 -0700 rename vector2 in cocos/physics folder commit b7f0581c4587348bdbc1478d5374c2325735f21d Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:25:01 2014 -0700 rename vector2 in cocos/math folder commit a8631a8e1a4e2740807ccd9be9d70de6ecaad7dd Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 00:16:55 2014 -0700 rename Vector2 to Vec2 deprecate typedef Vector2
2014-05-15 01:07:09 +08:00
virtual cocostudio::Armature *createMount(const char *name, Vec2 position);
2013-10-30 09:41:40 +08:00
2014-01-07 20:54:34 +08:00
private:
2013-10-30 09:41:40 +08:00
Hero *hero;
cocostudio::Armature *horse;
cocostudio::Armature *horse2;
cocostudio::Armature *bear;
bool touchedMenu;
};
class TestPlaySeveralMovement : public ArmatureBaseTest
{
public:
CREATE_FUNC(TestPlaySeveralMovement);
virtual void onEnter() override;
2013-12-19 10:42:06 +08:00
virtual std::string title() const override;
virtual std::string subtitle() const override;
};
class TestEasing : public ArmatureBaseTest
{
public:
CREATE_FUNC(TestEasing);
virtual void onEnter() override;
2013-12-19 10:42:06 +08:00
virtual std::string title() const override;
virtual std::string subtitle() const override;
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
void updateSubTitle();
int animationID;
cocostudio::Armature *armature;
};
class TestChangeAnimationInternal : public ArmatureBaseTest
{
public:
CREATE_FUNC(TestChangeAnimationInternal);
virtual void onEnter()override;
virtual void onExit() override;
virtual std::string title() const override;
virtual std::string subtitle() const override;
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
};
2014-06-18 18:11:21 +08:00
#define BINARYFILECOUNT 6
class TestLoadFromBinary : public ArmatureBaseTest
2014-06-18 18:11:21 +08:00
{
public:
CREATE_FUNC(TestLoadFromBinary);
virtual void onEnter() override;
2014-06-18 18:11:21 +08:00
virtual std::string title() const override;
virtual std::string subtitle() const override;
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
2014-06-18 18:11:21 +08:00
2014-06-18 20:09:12 +08:00
2014-06-18 18:11:21 +08:00
void dataLoaded(float percent);
private:
cocostudio::Armature *m_armature; // current armature
static const char* m_binaryFilesNames[BINARYFILECOUNT];
static const char* m_armatureNames[BINARYFILECOUNT];
int m_armatureIndex; // index of sync loaded armature, default -1 is none
};
class TestArmatureNode : public ArmatureBaseTest
{
public:
CREATE_FUNC(TestArmatureNode);
virtual void onEnter() override;
virtual std::string title() const override;
virtual std::string subtitle() const override;
};
2013-11-30 01:09:38 +08:00
#endif // __HELLOWORLD_SCENE_H__