Browse Source

Merge pull request #578 from fodinabor/SpriteExampleFix

Updates the SceneSprite example
Ivan Safrin 11 years ago
parent
commit
c5aefde3bb

+ 1 - 1
Core/Contents/Include/PolySceneSprite.h

@@ -119,7 +119,7 @@ namespace Polycode {
     
     class SpriteSet : public ResourcePool {
     public:
-        SpriteSet(String imageFileName, ResourcePool *parentPool);
+        SpriteSet(String imageFileName, ResourcePool *parentPool = CoreServices::getInstance()->getResourceManager()->getGlobalPool());
         ~SpriteSet();
         
         void setTexture(Texture *texture);

+ 6 - 6
Examples/C++/Contents/SceneSprites/HelloPolycodeApp.cpp

@@ -1,7 +1,6 @@
 #include "HelloPolycodeApp.h"
 
 HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() {
-
 	core = new POLYCODE_CORE(view, 640,480,false,true,0,0,90, 0, true);
 
 	CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak");
@@ -12,11 +11,12 @@ HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() {
 	Scene *scene = new Scene(Scene::SCENE_2D);
     scene->getActiveCamera()->setOrthoSize(640, 480);
     
-	SceneSprite *sprite = new SceneSprite("Resources/sprite_sheet.png", 93, 78);
-	sprite->setScale(6,6);
-	scene->addChild(sprite);
-	sprite->addAnimation("ExampleAnimation", "0-29,29x6", 0.03);
-	sprite->playAnimation("ExampleAnimation", 0, false);
+	SpriteSet *sprite = new SpriteSet("Resources/sprite_set.sprites");
+	SceneSprite *sceneSprite = new SceneSprite(sprite);
+	sceneSprite->setSpriteByName("Explosion");
+	sceneSprite->setSpriteStateByName("default", 0, false);
+	sceneSprite->setScale(4, 4);
+	scene->addEntity(sceneSprite);
 }
 
 HelloPolycodeApp::~HelloPolycodeApp() {

BIN
Examples/C++/Resources/explosion.png


+ 31 - 0
Examples/C++/Resources/sprite_set.sprites

@@ -0,0 +1,31 @@
+<?xml version="1.0" ?>
+<sprite_set>
+    <sprite_sheet fileName="Resources/explosion.png">
+        <frames>
+            <frame id="0" x="0" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="1" x="0.0555556" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="2" x="0.111111" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="3" x="0.166667" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="4" x="0.222222" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="5" x="0.277778" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="6" x="0.333333" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="7" x="0.388889" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="8" x="0.444444" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="9" x="0.5" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="10" x="0.555556" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="11" x="0.611111" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="12" x="0.666667" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="13" x="0.722222" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="14" x="0.777778" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="15" x="0.833333" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+            <frame id="16" x="0.888889" y="0" w="0.0555556" h="1" ax="0" ay="0" />
+        </frames>
+    </sprite_sheet>
+    <sprites>
+        <sprite name="Explosion">
+            <states>
+                <state name="default" fps="20" scale="1" width="32" height="32" offset_x="0" offset_y="0" frame_ids="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16" />
+            </states>
+        </sprite>
+    </sprites>
+</sprite_set>

+ 2 - 2
IDE/Contents/Source/PolycodeSpriteEditor.cpp

@@ -960,8 +960,8 @@ void SpriteStateEditBar::refreshBar() {
     meshGrips->clearMesh();
     meshGrips->indexedMesh = true;
     
-    Number frameOffset;
-    Number frameSize;
+    Number frameOffset = 0;
+    Number frameSize = 0;
     
     unsigned int offset = 0;
     unsigned int offsetIcon = 0;

+ 4 - 4
Modules/Contents/UI/Include/PolyUIScrollContainer.h

@@ -104,9 +104,9 @@ namespace Polycode {
         */
 		Number getVScrollWidth();
 
-		UIVScrollBar *getVScrollBar() { return vScrollBar; }
-		UIHScrollBar *getHScrollBar() { return hScrollBar; }
-		
+		UIVScrollBar *getVScrollBar();
+		UIHScrollBar *getHScrollBar();
+				
 	private:		
 		
 		Number defaultScrollSize;
@@ -119,8 +119,8 @@ namespace Polycode {
 		bool hasHScroll;
 		bool hasVScroll;
 
-		UIVScrollBar *vScrollBar;
 		UIHScrollBar *hScrollBar;
+		UIVScrollBar *vScrollBar;
 	};
 
 }

+ 4 - 0
Modules/Contents/UI/Source/PolyUIScrollContainer.cpp

@@ -115,6 +115,10 @@ Number UIScrollContainer::getVScrollWidth() {
 	}
 }
 
+UIVScrollBar *UIScrollContainer::getVScrollBar() { return vScrollBar; }
+
+UIHScrollBar *UIScrollContainer::getHScrollBar() { return hScrollBar; }
+
 void UIScrollContainer::setContentSize(Number newContentWidth, Number newContentHeight) {
     
     if(newContentWidth < 1.0)

+ 1 - 1
Modules/Contents/UI/Source/PolyUITextInput.cpp

@@ -2396,7 +2396,7 @@ void UITextInput::updateWordWrap(int lineStart, int lineEnd) {
 void UITextInput::readjustBuffer(int lineStart, int lineEnd) {
 
 	if(scrollContainer) {
-		scrollContainer->getVScrollBar()->setTickSize((UI_TEXT_INPUT_SCROLL_SPEED * lineHeight) /scrollContainer->getContentSize().y);
+		scrollContainer->getVScrollBar()->setTickSize((UI_TEXT_INPUT_SCROLL_SPEED * lineHeight) / scrollContainer->getContentSize().y);
 	}
 	
 	if(lineEnd == -1) {