永发信息网

cocos2dx-3.3里输入框的光标怎么实现

答案:2  悬赏:10  手机版
解决时间 2021-01-24 16:32
  • 提问者网友:蓝琪梦莎
  • 2021-01-24 03:30
cocos2dx-3.3里输入框的光标怎么实现
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-01-24 04:05
删除这些 m_pCursorSprite->setPosition(ccp(0, winSize.height / 2)); this->addChild(m_pCursorSprite); m_pCursorSprite->runAction(m_pCursorAction); 代码: /光标精灵 Sprite *m_pCursorSprite; //光标动画 Action *m_pCursorAction; //输...
全部回答
  • 1楼网友:一叶十三刺
  • 2021-01-24 04:54
删除这些 m_pcursorsprite->setposition(ccp(0, winsize.height / 2)); this->addchild(m_pcursorsprite); m_pcursorsprite->runaction(m_pcursoraction); 代码: /光标精灵 sprite *m_pcursorsprite; //光标动画 action *m_pcursoraction; //输入框内容 std::string *m_pinputtext; //初始化光标精灵 void cursorinput::initcursorsprite() { int column = 4; int nheight = 20; int pixels[20][4]; for (int i=0; iinitwithdata(pixels,20,texture2d::pixelformat::rgb888, 4 ,20, ccsizemake(column, nheight)); m_pcursorsprite = sprite::createwithtexture(texture); m_pcursorsprite->setcolor(ccc3(255,0,0)); size winsize = getcontentsize(); m_pcursorsprite->setvisible(false); m_pcursoraction = repeatforever::create((actioninterval *) sequence::create(fadeout::create(0.25f), fadein::create(0.25f), null)); m_pinputtext = new std::string(); } 再从调用输入框的层里获取输入框位置。 virtual void setposition(const ccpoint& pos); void setcursorpositionx(float x); // 设置光标x位置 // 把光标添加到和输入框一起的层中 void addcursor(ccnode *node); void cursorinput::setposition(const ccpoint& pos) { cctextfieldttf::setposition(pos); // 设置光标位置 if (null != m_pcursorsprite) { ccsize winsize = getcontentsize(); m_cursorpos = ccp(0, 0); m_cursorpos = m_cursorpos + pos; m_pcursorsprite->setposition(m_cursorpos); } } void cursorinput::setcursorpositionx(float x) // 设置光标x位置 { ccpoint pt = getposition(); // 获取输入框位置 m_pcursorsprite->setpositionx(pt.x + x); } // 把光标添加到和输入框一起的层中 void cursorinput::addcursor(ccnode *node) { if (null != node && null != m_pcursorsprite) { node->addchild(m_pcursorsprite); m_pcursorsprite->runaction(m_pcursoraction); } } 然后调用输入框的层里,输入框的后面添加: cursorinput *m_paccinput; m_paccinput->addcursor(this);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯