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);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯