cocos2d-x基础 - 常用控件(1)

cocos2d-x基础 - 常用控件(1)

1. Sprite

init( ) 函数中加入如下内容:

Sprite *s = Sprite::create("ball.jpeg");
addChild(s);

得到结果:

在这里插入图片描述

使用如下语句设置图片的锚点:

s->setAnchorPoint(Point(0, 0));

得到结果:

在这里插入图片描述

除此之外还有其他的设置函数:

s->setPosition(<const Vec2 &pos>);		// 设置位置
s->setScale(<float scaleX>, <float scaleY>);	// 设置缩放

2. Director、Scene、Layer

  • Director就是导演的意思

  • 导演的作用是切换场景(scene)

  • 场景之内包含有(layer)

  • 游戏内容运行在层layer中

创建一个scene和layer:

Scene *s = Scene::create();
Layer *l = Layer::create();

将layer添加到scene:

s->addChild(l);

3. log

log是用来输出日志的API

log("hello world");
log("your money is %d yuan", 30);

用法类似于C语言中的printf()函数

4. MessageBox

MessageBox(const char *msg, const char *title);
MessageBox("消息内容", "消息标题");

在这里插入图片描述

5. LabelTTF

显示一个字符框:

LabelTTF *label = LabelTTF::create("标题内容", "宋体", 20);
label->setPosition(visableSize.width/2, visableSize.height/2);
addChild(label);

在这里插入图片描述

visableSize是通过以下获取得到的屏幕参数:

auto visableSize = Director::getInstance()->getVisibleSize();

6. TextFieldTTF

输入框控件

TextFieldTTF * tf = TextFieldTTF::textFieldWithPlaceHolder("在这里输入", "宋体", 14);
tf->setPosition(visableSize.width/2, visableSize.height/2);
addChild(tf);

此时得到如下效果:

在这里插入图片描述

不能输入也不能点击,因为没有关联到IME输入法。需要进行以下操作:

// 定义一个侦听器
auto listener = EventListenerTouchOneByOne::create();

// 定义在触摸事件发生时的动作
listener->onTouchBegan = [tf](Touch * t, Event * event){

    if (tf->getBoundingBox().containsPoint(t->getLocation())) {
        log("点进了区域内");
        // 连接输入法
        tf->attachWithIME();
    }else{
        // 点击区域外就关闭输入法
        tf->detachWithIME();
    }
    return false;
};

// 通过Director中的事件派发器来添加一个事件侦听器
Director::getInstance()
    ->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, tf);

此时就可以输入了,并且控制台输出了Log信息
在这里插入图片描述
在这里插入图片描述

原创文章 187 获赞 29 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_43826242/article/details/104133670