PuzzleSDK
EffectSpriteLamp类 参考

#include <ShaderTest2.h>

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

Public 成员函数

 CREATE_FUNC (EffectSpriteLamp)
 
 EffectSpriteLamp ()
 
virtual bool init ()
 
virtual std::string subtitle () const
 
virtual void onTouchesBegan (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *unused_event)
 
virtual void onTouchesMoved (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *unused_event)
 
virtual void onTouchesEnded (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *unused_event)
 
- Public 成员函数 继承自 ShaderTestDemo2
virtual std::string title () const override
 
- 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
 
virtual void onEnter () override
 

Protected 属性

EffectSprite_sprite
 
Effect_effect
 
cocos2d::Sprite * _lightSprite
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 

详细描述

在文件 ShaderTest2.h76 行定义.

构造及析构函数说明

◆ EffectSpriteLamp()

EffectSpriteLamp::EffectSpriteLamp ( )

在文件 ShaderTest2.cpp530 行定义.

531{
532}

成员函数说明

◆ CREATE_FUNC()

EffectSpriteLamp::CREATE_FUNC ( EffectSpriteLamp  )

◆ init()

bool EffectSpriteLamp::init ( )
virtual

在文件 ShaderTest2.cpp534 行定义.

535{
536 if (ShaderTestDemo2::init()) {
537
538 auto s = Director::getInstance()->getWinSize();
539 _sprite = EffectSprite::create("Images/elephant1_Diffuse.png");
540 //auto contentSize = _sprite->getContentSize();
541 _sprite->setPosition(Vec2(s.width/2, s.height/2));
542 addChild(_sprite);
543
544 auto lampEffect = EffectNormalMapped::create("Images/elephant1_Normal.png");
545
546 Vec3 pos(150,150, 50);
547 _lightSprite = Sprite::create("Images/ball.png");
548 this->addChild(_lightSprite);
549 _lightSprite->setPosition(Vec2(pos.x, s.height- pos.y));
550 Mat4 mat = _sprite->getNodeToWorldTransform();
551 Point lightPosInLocalSpace = PointApplyAffineTransform(Vec2(pos.x, pos.y), _sprite->getWorldToNodeAffineTransform());
552 lampEffect->setLightColor(Color4F(1,1,1,1));
553 lampEffect->setLightPos(Vec3(lightPosInLocalSpace.x, lightPosInLocalSpace.y, 50.0f));
554 lampEffect->setKBump(2);
555 _sprite->setEffect(lampEffect);
556 _effect = lampEffect;
557 auto listener = EventListenerTouchAllAtOnce::create();
558 listener->onTouchesBegan = CC_CALLBACK_2(EffectSpriteLamp::onTouchesBegan, this);
559 listener->onTouchesMoved = CC_CALLBACK_2(EffectSpriteLamp::onTouchesMoved, this);
560 listener->onTouchesEnded = CC_CALLBACK_2(EffectSpriteLamp::onTouchesEnded, this);
561 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
562 return true;
563 }
564 return false;
565}
static EffectNormalMapped * create(const std::string &normalMapFileName)
void setEffect(Effect *effect)
Definition: ShaderTest2.cpp:89
static EffectSprite * create(const std::string &filename)
Definition: ShaderTest2.cpp:79
cocos2d::Sprite * _lightSprite
Definition: ShaderTest2.h:91
virtual void onTouchesEnded(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *unused_event)
EffectSprite * _sprite
Definition: ShaderTest2.h:89
virtual void onTouchesBegan(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *unused_event)
Effect * _effect
Definition: ShaderTest2.h:90
virtual void onTouchesMoved(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *unused_event)

引用了 _effect, _lightSprite, _sprite, EffectSprite::create(), EffectNormalMapped::create(), onTouchesBegan(), onTouchesEnded(), onTouchesMoved() , 以及 EffectSprite::setEffect().

+ 函数调用图:

◆ onTouchesBegan()

void EffectSpriteLamp::onTouchesBegan ( const std::vector< cocos2d::Touch * > &  touches,
cocos2d::Event *  unused_event 
)
virtual

在文件 ShaderTest2.cpp568 行定义.

569{
570 for ( auto &item: touches )
571 {
572 auto touch = item;
573 auto s = Director::getInstance()->getWinSize();
574 Point loc_winSpace = touch->getLocationInView();
575 _lightSprite->setPosition(Vec2( loc_winSpace.x, s.height - loc_winSpace.y));
576 Vec3 pos(loc_winSpace.x,loc_winSpace.y, 50);
577 Mat4 mat = _sprite->getNodeToWorldTransform();
578 Point lightPosInLocalSpace = PointApplyAffineTransform(Vec2(pos.x, pos.y), _sprite->getWorldToNodeAffineTransform());
579 ((EffectNormalMapped*)_effect)->setLightPos(Vec3(lightPosInLocalSpace.x, lightPosInLocalSpace.y, 50.0f));
580 }
581}

引用了 _effect, _lightSprite , 以及 _sprite.

被这些函数引用 init().

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

◆ onTouchesEnded()

void EffectSpriteLamp::onTouchesEnded ( const std::vector< cocos2d::Touch * > &  touches,
cocos2d::Event *  unused_event 
)
virtual

在文件 ShaderTest2.cpp598 行定义.

599{
600 for ( auto &item: touches )
601 {
602 auto touch = item;
603 auto s = Director::getInstance()->getWinSize();
604 Point loc_winSpace = touch->getLocationInView();
605 _lightSprite->setPosition(Vec2( loc_winSpace.x, s.height - loc_winSpace.y));
606 Vec3 pos(loc_winSpace.x,loc_winSpace.y, 50);
607 Mat4 mat = _sprite->getNodeToWorldTransform();
608 Point lightPosInLocalSpace = PointApplyAffineTransform(Vec2(pos.x, pos.y), _sprite->getWorldToNodeAffineTransform());
609 ((EffectNormalMapped*)_effect)->setLightPos(Vec3(lightPosInLocalSpace.x, lightPosInLocalSpace.y, 50.0f));
610 }
611}

引用了 _effect, _lightSprite , 以及 _sprite.

被这些函数引用 init().

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

◆ onTouchesMoved()

void EffectSpriteLamp::onTouchesMoved ( const std::vector< cocos2d::Touch * > &  touches,
cocos2d::Event *  unused_event 
)
virtual

在文件 ShaderTest2.cpp583 行定义.

584{
585 for ( auto &item: touches )
586 {
587 auto touch = item;
588 auto s = Director::getInstance()->getWinSize();
589 Point loc_winSpace = touch->getLocationInView();
590 _lightSprite->setPosition(Vec2( loc_winSpace.x, s.height - loc_winSpace.y));
591 Vec3 pos(loc_winSpace.x,loc_winSpace.y, 50);
592 Mat4 mat = _sprite->getNodeToWorldTransform();
593 Point lightPosInLocalSpace = PointApplyAffineTransform(Vec2(pos.x, pos.y), _sprite->getWorldToNodeAffineTransform());
594 ((EffectNormalMapped*)_effect)->setLightPos(Vec3(lightPosInLocalSpace.x, lightPosInLocalSpace.y, 50.0f));
595 }
596}

引用了 _effect, _lightSprite , 以及 _sprite.

被这些函数引用 init().

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

◆ subtitle()

virtual std::string EffectSpriteLamp::subtitle ( ) const
inlinevirtual

重载 TestCase .

在文件 ShaderTest2.h82 行定义.

82{return "Sprite Lamp effects";}

类成员变量说明

◆ _effect

Effect* EffectSpriteLamp::_effect
protected

在文件 ShaderTest2.h90 行定义.

被这些函数引用 init(), onTouchesBegan(), onTouchesEnded() , 以及 onTouchesMoved().

◆ _lightSprite

cocos2d::Sprite* EffectSpriteLamp::_lightSprite
protected

在文件 ShaderTest2.h91 行定义.

被这些函数引用 init(), onTouchesBegan(), onTouchesEnded() , 以及 onTouchesMoved().

◆ _sprite

EffectSprite* EffectSpriteLamp::_sprite
protected

在文件 ShaderTest2.h89 行定义.

被这些函数引用 init(), onTouchesBegan(), onTouchesEnded() , 以及 onTouchesMoved().


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