dm 7 lat temu
rodzic
commit
a3d06757e9

+ 2 - 0
.gitignore

@@ -5,3 +5,5 @@ examples/HelloSpine/proj.android/build/
 examples/HelloSpine/proj.android/.externalNativeBuild/
 examples/HelloSpine/proj.android/.gradle/
 examples/HelloSpine/data/*.dll
+examples/HelloSpine/proj.cmake/build_emsc_release/
+examples/HelloSpine/proj.cmake/data.js

+ 1 - 1
examples/HelloSpine/proj.android/jni/src/Android.mk

@@ -6,7 +6,7 @@ LOCAL_MODULE := main
 #SDK_ROOT points to folder with SDL and oxygine-framework
 LOCAL_SRC_FILES := ../../../../../..//SDL/src/main/android/SDL_android_main.c
 
-LOCAL_SRC_FILES += ../../../src/example.cpp ../../../src/main.cpp 
+LOCAL_SRC_FILES += ../../../src/example.cpp ../../../src/main.cpp ../../../src/test.cpp
 
 
 LOCAL_STATIC_LIBRARIES := oxygine-framework_static oxygine-spine_static

+ 1 - 1
examples/HelloSpine/proj.cmake/CMakeLists.txt

@@ -15,7 +15,7 @@ link_directories(${OXYGINE_SPINE_LIBRARY_DIRS})
 
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OXYGINE_CXX_FLAGS}")
 
-add_executable(HelloSpine ../src/example.cpp ../src/main.cpp  ../src/example.h )
+add_executable(HelloSpine ../src/example.cpp ../src/main.cpp  ../src/example.h  ../src/test.h  ../src/test.cpp )
 target_link_libraries(HelloSpine ${OXYGINE_CORE_LIBS}  ${OXYGINE_SPINE_LIBS})
 
 

+ 2 - 0
examples/HelloSpine/proj.win32/HelloSpine.vcxproj

@@ -179,10 +179,12 @@
     <ClCompile Include="..\..\..\dependencies\spine\src\spine\VertexAttachment.cpp" />
     <ClCompile Include="..\..\..\dependencies\spine\src\spine\VertexEffect.cpp" />
     <ClCompile Include="..\..\..\src\oxygine-spine\spine.cpp" />
+    <ClCompile Include="..\src\test.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="../src/example.h" />
     <ClInclude Include="..\..\..\src\oxygine-spine\spine.h" />
+    <ClInclude Include="..\src\test.h" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">

+ 18 - 17
examples/HelloSpine/proj.win32/HelloSpine.vcxproj.filters

@@ -1,14 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
     <Filter Include="Resource Files">
       <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
       <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
@@ -19,14 +11,11 @@
     <Filter Include="oxygine-spine\lib">
       <UniqueIdentifier>{ef0e313d-ffc8-4c72-8a7a-8a77241b9f12}</UniqueIdentifier>
     </Filter>
+    <Filter Include="src">
+      <UniqueIdentifier>{f99c10ca-cc4b-46ba-96c4-5199b0904aac}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="../src/example.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="../src/main.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\src\oxygine-spine\spine.cpp">
       <Filter>oxygine-spine</Filter>
     </ClCompile>
@@ -213,13 +202,25 @@
     <ClCompile Include="..\..\..\dependencies\spine\src\spine\VertexEffect.cpp">
       <Filter>oxygine-spine\lib</Filter>
     </ClCompile>
+    <ClCompile Include="../src/example.cpp">
+      <Filter>src</Filter>
+    </ClCompile>
+    <ClCompile Include="../src/main.cpp">
+      <Filter>src</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\test.cpp">
+      <Filter>src</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="../src/example.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\src\oxygine-spine\spine.h">
       <Filter>oxygine-spine</Filter>
     </ClInclude>
+    <ClInclude Include="../src/example.h">
+      <Filter>src</Filter>
+    </ClInclude>
+    <ClInclude Include="..\src\test.h">
+      <Filter>src</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>

+ 38 - 27
examples/HelloSpine/src/example.cpp

@@ -1,6 +1,7 @@
 #include "oxygine-framework.h"
 #include <functional>
 #include "oxygine-spine.h"
+#include "test.h"
 
 using namespace oxygine;
 
@@ -15,12 +16,44 @@ spine::Atlas* atlas = 0;
 spine::Skeleton *skeleton = 0;
 oxspine::spSpineActor actor;
 
+
+
+
 //called from main.cpp
 void example_init()
 {
-    key::init();
+    Test::init();
 
+    spTest test = new Test;
     
+    test->addButton("Start Walk", []() {
+        animationState->setAnimation(1, "walk", true);
+    });
+
+    test->addButton("Stop Walk", []() {
+        animationState->setEmptyAnimation(1, 0.15f);
+    });
+
+    test->addButton("Start Shoot", []() {
+        animationState->setAnimation(2, "shoot", true);
+    });
+
+    test->addButton("Stop Shoot", []() {
+        animationState->setEmptyAnimation(2, 0.15f);
+    });
+
+    test->addButton("Shoot", []() {
+        animationState->addAnimation(3, "shoot", false, 0.0f);
+        animationState->addEmptyAnimation(3, 0.1f, 0.0f);
+    });
+
+    test->addButton("Jump", []() {
+        animationState->addAnimation(4, "jump", false, 0.0f);
+        animationState->addEmptyAnimation(4, 0.1f, 0.0f);
+    });
+
+    test->show();
+        
     oxspine::init();
 
 
@@ -36,9 +69,11 @@ void example_init()
 
 
     animationStateData = new spine::AnimationStateData(skeletonData);
-
+    
     animationState = new spine::AnimationState(animationStateData);
     animationState->setAnimation(0, "idle", true);
+
+    
     
 
     skeleton = new spine::Skeleton(skeletonData);
@@ -60,29 +95,6 @@ void example_init()
 //called each frame from main.cpp
 void example_update()
 {
-    
-    if (key::wasPressed(SDL_SCANCODE_RETURN))
-    {
-        animationState->setAnimation(1, "walk", true);
-    }
-
-    if (key::wasReleased(SDL_SCANCODE_RETURN))
-    {
-        animationState->setEmptyAnimation(1, 0.15f);
-    }
-
-
-
-    if (key::wasPressed(SDL_SCANCODE_SPACE))
-    {
-        animationState->setAnimation(2, "shoot", true);
-    }
-
-    if (key::wasReleased(SDL_SCANCODE_SPACE))
-    {
-        animationState->setEmptyAnimation(2, 0.15f);
-    }
-
 }
 
 //called each frame from main.cpp
@@ -108,7 +120,6 @@ void example_destroy()
     delete atlas;
     atlas = 0;
 
-    
-    key::release();
     oxspine::free();
+    Test::free();
 }

Plik diff jest za duży
+ 5 - 0
examples/HelloSpine/src/test.cpp


+ 68 - 0
examples/HelloSpine/src/test.h

@@ -0,0 +1,68 @@
+#pragma once
+
+#include "oxygine-framework.h"
+
+using namespace oxygine;
+using namespace std;
+
+
+spTextField createText(const std::string& txt);
+spButton createButtonHelper(spButton, const std::string& txt, EventCallback cb);
+
+typedef std::function< void() > buttonFunc;
+
+DECLARE_SMART(Test, spTest);
+class Test: public Object
+{
+public:
+    Test();
+    ~Test();
+
+    static void init();
+    static void free();
+
+    static spTest instance;
+    static Resources _resources;
+
+    struct toggle
+    {
+        string text;
+        int value;
+        const void* data;
+        toggle() {}
+        toggle(const char* text_, int v_ = 0, const void* data_ = 0): text(text_), value(v_), data(data_) {}
+    };
+
+    void show();
+    void hide();
+
+    spButton addButton(const string& txt, const buttonFunc& f);
+    spButton addButton(std::string id, std::string txt);
+
+    void addToggle(string id, const toggle* t, int num);
+    void updateText(string id, string txt);
+    virtual void clicked(string id) {}
+    virtual void toggleClicked(string id, const toggle* data) {}
+    
+        
+    void notify(string text, int time = 400);
+
+protected:
+    void notifyDone(Event* ev);
+    void _clicked(Event* event);
+    void _toggleClicked(Event* event);
+    void _back(Event* event);
+
+    Color _color;
+    Color _txtColor;
+
+    spActor _view;
+    spActor _content;
+    spActor _ui;
+
+    float _x;
+    float _y;    
+    
+    enum {MAX_NOTIFIES = 8};
+    int _notifies[MAX_NOTIFIES];
+};

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików