Cocos2d-x ScrollView使用

这篇博客详细介绍了如何在Cocos2d-x中使用ScrollView组件,包括设置方向、背景图片、添加子节点如按钮和图片,并通过调整内含容器大小实现滚动效果。同时,展示了如何实现水平和垂直滚动,以及如何滚动到指定位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Size size = Director::getInstance()->getVisibleSize();
cocos2d::ui::ScrollView* sView = cocos2d::ui::ScrollView::create();
sView->setContentSize(Size(500,400));
//sView->setDirection(ui::ScrollView::Direction::HORIZONTAL);//可以设置横向滑动
sView->setBackGroundImage("ccicon.png");
sView->setAnchorPoint(Point(0.5f,0.5f));
sView->setPosition(Vec2(size.width /2,size.height/2));
sView->setRotation(45);//45度滑动
this->addChild(sView);


ImageView* imageView = ImageView::create("ccicon.png");
float innerWidth = sView->getContentSize().width;
float innerHeight = sView->getContentSize().height + 200;


sView->setInnerContainerSize(Size(innerWidth,innerHeight));//方法设置包含内容的区域大小,在拖动的过程中,边界检查
Button* button = Button::create("animationbuttonnormal.png", "animationbuttonpressed.png");
button->setPosition(Vec2(innerWidth / 2.0f, sView->getInnerContainerSize().height - button->getContentSize().height / 2.0f));
sView->addChild(button);


Button* titleButton = Button::create("backtotopnormal.png", "backtotoppressed.png");
titleButton->setTitleText("Title Button");
titleButton->setPosition(Vec2(innerWidth / 2.0f, button->getBottomBoundary() - button->getContentSize().height));
sView->addChild(titleButton);


Button* button_scale9 = Button::create("button.png", "buttonHighlighted.png");
button_scale9->setScale9Enabled(true);
button_scale9->setContentSize(Size(100.0f, button_scale9->getVirtualRendererSize().height));
button_scale9->setPosition(Vec2(innerWidth / 2.0f, titleButton->getBottomBoundary() - titleButton->getContentSize().height));
sView->addChild(button_scale9);


imageView->setPosition(Vec2(innerWidth / 2.0f, imageView->getContentSize().height / 2.0f));
sView->addChild(imageView);


//Size size = Director::getInstance()->getVisibleSize();
ui::ScrollView* scrollView = ui::ScrollView::create();
scrollView->setDirection(ui::ScrollView::Direction::BOTH);
scrollView->setTouchEnabled(true);
scrollView->setBounceEnabled(true);
scrollView->setBackGroundImageScale9Enabled(true);
scrollView->setBackGroundImage("green_edit.png");
scrollView->setContentSize(Size(210, 122.5));
scrollView->setAnchorPoint(Point(0.5f,0.5f));
scrollView->setPosition(Vec2(size.width /2,size.height /2));
ImageView* imageView2 = ImageView::create("Hello.png");
scrollView->addChild(imageView2);


scrollView->setInnerContainerSize(imageView2->getContentSize());
scrollView->scrollToPercentBothDirection(Vec2(50, 50), 2, true);//设置滑动到指定位置  (50,50)为到中心位置
Size innerSize = scrollView->getInnerContainerSize();
imageView2->setPosition(Vec2(innerSize.width / 2.0f, innerSize.height / 2.0f));
sView->addChild(scrollView);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值