大佬教程收集整理的这篇文章主要介绍了AppUtils 常用函数总结(Cocos2d-x 3.9),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1、随机函数
float AppUtils::randomFloat(float low,float high) { //0.0-1.0 float r = rand()/(RAND_MAX+0.1); return ((high+1) - low) * r + low; }
CCRect AppUtils::boundingBoxForWorld(CCNode* nodE) { CCRect rect = CCRectZero; if (node==NULL) { return rect; } CCPoint anchorPoint = node->getAnchorPoint(); CCSize widgetSize = node->boundingBox().size; CCPoint worldPosition = node->getPosition(); worldPosition.x -= widgetSize.width*anchorPoint.x; worldPosition.y -= widgetSize.height*anchorPoint.y; if (node!=NULL) { CCNode* parent = node->getParent(); while (parent != NULL) { float scaleX = parent->getScaleX(); float scaleY = parent->getScaleY(); float scaledWidth = widgetSize.width*scaleX; float scaledHeight = widgetSize.height*scaleY; worldPosition.x += (widgetSize.width - scaledWidth) / 2; worldPosition.y += (widgetSize.height - scaledHeight) / 2; widgetSize.width = scaledWidth; widgetSize.height = scaledHeight; worldPosition = worldPosition + parent->getBoundingBox().origin; parent = parent->getParent(); } rect.origin = worldPosition; rect.size= widgetSize; return rect; } return rect; }
static void setColorForAll(Sprite* target,Color3B color= Color3B::GRAY); static void btnTouchBegin(Sprite* target,Point p,Color3B color = Color3B::GRAY); static void btnTouchMoved(Sprite* target,Color3B color = Color3B::WHITE); static bool btnTouchEnded(Sprite* target,Color3B color = Color3B::WHITE);
void AppUtils::setColorForAll(Sprite* target,Color3B color) { if (target != NULL) { target->setColor(color); Vector<Node*> children = target->getChildren(); for (size_t i = 0; i < children.size(); i++) { Sprite* item = (Sprite*)children.at(i); if (item != NULL) { item->setColor(color); } } } } void AppUtils::btnTouchBegin(Sprite* target,Color3B color) { if (target != NULL&&target->boundingBox().containsPoint(p)) { setColorForAll(target,color); } } void AppUtils::btnTouchMoved(Sprite* target,Color3B color) { if (target != NULL&&!target->boundingBox().containsPoint(p) && (target->getColor()== Color3B::GRAY)) { setColorForAll(target,color); } } bool AppUtils::btnTouchEnded(Sprite* target,Color3B color) { if (target != NULL&&target->boundingBox().containsPoint(p) && (Color3B::GRAY==target->getColor())) { setColorForAll(target,color); return true; } return false; }
以上是大佬教程为你收集整理的AppUtils 常用函数总结(Cocos2d-x 3.9)全部内容,希望文章能够帮你解决AppUtils 常用函数总结(Cocos2d-x 3.9)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。