PuzzleSDK
SpriteFrameTest类 参考

#include <SpriteTest.h>

+ 类 SpriteFrameTest 继承关系图:
+ SpriteFrameTest 的协作图:

Public 成员函数

 CREATE_FUNC (SpriteFrameTest)
 
virtual void onEnter () override
 
virtual void onExit () override
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
void startIn05Secs (float dt)
 
void flipSprites (float dt)
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 

Private 属性

cocos2d::Sprite * _sprite1
 
cocos2d::Sprite * _sprite2
 
int _counter
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 
- Protected 属性 继承自 SpriteTestDemo
std::string _title
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

详细描述

在文件 SpriteTest.h328 行定义.

成员函数说明

◆ CREATE_FUNC()

SpriteFrameTest::CREATE_FUNC ( SpriteFrameTest  )

◆ flipSprites()

void SpriteFrameTest::flipSprites ( float  dt)

在文件 SpriteTest.cpp1844 行定义.

1845{
1846 _counter++;
1847
1848 bool fx = false;
1849 bool fy = false;
1850 int i = _counter % 4;
1851
1852 switch ( i ) {
1853 case 0:
1854 fx = false;
1855 fy = false;
1856 break;
1857 case 1:
1858 fx = true;
1859 fy = false;
1860 break;
1861 case 2:
1862 fx = false;
1863 fy = true;
1864 break;
1865 case 3:
1866 fx = true;
1867 fy = true;
1868 break;
1869 }
1870
1871 _sprite1->setFlippedX(fx);
1872 _sprite1->setFlippedY(fy);
1873 _sprite2->setFlippedX(fx);
1874 _sprite2->setFlippedY(fy);
1875 //NSLog(@"flipX:%d, flipY:%d", fx, fy);
1876}
cocos2d::Sprite * _sprite2
Definition: SpriteTest.h:342
cocos2d::Sprite * _sprite1
Definition: SpriteTest.h:341

引用了 _counter, _sprite1 , 以及 _sprite2.

被这些函数引用 startIn05Secs().

+ 这是这个函数的调用关系图:

◆ onEnter()

void SpriteFrameTest::onEnter ( )
overridevirtual

重载 TestCase .

在文件 SpriteTest.cpp1740 行定义.

1741{
1743 auto s = Director::getInstance()->getWinSize();
1744
1745 // IMPORTANT:
1746 // The sprite frames will be cached AND RETAINED, and they won't be released unless you call
1747 // SpriteFrameCache::getInstance()->removeUnusedSpriteFrames);
1748 auto cache = SpriteFrameCache::getInstance();
1749 cache->addSpriteFramesWithFile("animations/grossini.plist");
1750 cache->addSpriteFramesWithFile("animations/grossini_gray.plist", "animations/grossini_gray.png");
1751 cache->addSpriteFramesWithFile("animations/grossini_blue.plist", "animations/grossini_blue.png");
1752
1753 //
1754 // Animation using Sprite BatchNode
1755 //
1756 _sprite1 = Sprite::createWithSpriteFrameName("grossini_dance_01.png");
1757 _sprite1->setPosition( Vec2( s.width/2-80, s.height/2) );
1758
1759 auto spritebatch = SpriteBatchNode::create("animations/grossini.png");
1760 spritebatch->addChild(_sprite1);
1761 addChild(spritebatch);
1762
1763 Vector<SpriteFrame*> animFrames(15);
1764
1765 char str[100] = {0};
1766 for(int i = 1; i < 15; i++)
1767 {
1768 sprintf(str, "grossini_dance_%02d.png", i);
1769 auto frame = cache->getSpriteFrameByName( str );
1770 animFrames.pushBack(frame);
1771 }
1772
1773 auto animation = Animation::createWithSpriteFrames(animFrames, 0.3f);
1774 _sprite1->runAction( RepeatForever::create( Animate::create(animation) ) );
1775
1776 // to test issue #732, uncomment the following line
1777 _sprite1->setFlippedX(false);
1778 _sprite1->setFlippedY(false);
1779
1780 //
1781 // Animation using standard Sprite
1782 //
1783 _sprite2 = Sprite::createWithSpriteFrameName("grossini_dance_01.png");
1784 _sprite2->setPosition( Vec2( s.width/2 + 80, s.height/2) );
1785 addChild(_sprite2);
1786
1787
1788 Vector<SpriteFrame*> moreFrames(20);
1789 for(int i = 1; i < 15; i++)
1790 {
1791 sprintf(str, "grossini_dance_gray_%02d.png",i);
1792 auto frame = cache->getSpriteFrameByName(str);
1793 moreFrames.pushBack(frame);
1794 }
1795
1796
1797 for( int i = 1; i < 5; i++) {
1798 sprintf(str, "grossini_blue_%02d.png",i);
1799 auto frame = cache->getSpriteFrameByName(str);
1800 moreFrames.pushBack(frame);
1801 }
1802
1803 // append frames from another batch
1804 moreFrames.pushBack(animFrames);
1805 auto animMixed = Animation::createWithSpriteFrames(moreFrames, 0.3f);
1806
1807
1808 _sprite2->runAction(RepeatForever::create( Animate::create(animMixed) ) );
1809
1810
1811 // to test issue #732, uncomment the following line
1812 _sprite2->setFlippedX(false);
1813 _sprite2->setFlippedY(false);
1814
1815 schedule(CC_CALLBACK_1(SpriteFrameTest::startIn05Secs, this), 0.5f, "in_05_secs_key");
1816 _counter = 0;
1817}
void startIn05Secs(float dt)
virtual void onEnter() override
Definition: BaseTest.cpp:430

引用了 _counter, _sprite1, _sprite2, TestCase::onEnter() , 以及 startIn05Secs().

+ 函数调用图:

◆ onExit()

void SpriteFrameTest::onExit ( )
overridevirtual

在文件 SpriteTest.cpp1819 行定义.

1820{
1821 SpriteTestDemo::onExit();
1822 auto cache = SpriteFrameCache::getInstance();
1823 cache->removeSpriteFramesFromFile("animations/grossini.plist");
1824 cache->removeSpriteFramesFromFile("animations/grossini_gray.plist");
1825 cache->removeSpriteFramesFromFile("animations/grossini_blue.plist");
1826}

◆ startIn05Secs()

void SpriteFrameTest::startIn05Secs ( float  dt)

在文件 SpriteTest.cpp1838 行定义.

1839{
1840 unschedule("in_05_secs_key");
1841 schedule(CC_CALLBACK_1(SpriteFrameTest::flipSprites, this), 1.0f, "flip_sprites_key");
1842}
void flipSprites(float dt)

引用了 flipSprites().

被这些函数引用 onEnter().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ subtitle()

std::string SpriteFrameTest::subtitle ( ) const
overridevirtual

重载 TestCase .

在文件 SpriteTest.cpp1833 行定义.

1834{
1835 return "Animation. Testing issue #792";
1836}

◆ title()

std::string SpriteFrameTest::title ( ) const
overridevirtual

重载 TestCase .

在文件 SpriteTest.cpp1828 行定义.

1829{
1830 return "Sprite vs. SpriteBatchNode";
1831}

类成员变量说明

◆ _counter

int SpriteFrameTest::_counter
private

在文件 SpriteTest.h343 行定义.

被这些函数引用 flipSprites() , 以及 onEnter().

◆ _sprite1

cocos2d::Sprite* SpriteFrameTest::_sprite1
private

在文件 SpriteTest.h341 行定义.

被这些函数引用 flipSprites() , 以及 onEnter().

◆ _sprite2

cocos2d::Sprite* SpriteFrameTest::_sprite2
private

在文件 SpriteTest.h342 行定义.

被这些函数引用 flipSprites() , 以及 onEnter().


该类的文档由以下文件生成: