最近很多游戏都喜欢房卡类的游戏,就是创建房间时(),选择玩法与规则,今天耗费2小时处理这个数学问题;例如选择规则两条,则背景框中间显示两条规则,若选择三条,则背景框中间显示三条规则与玩法,依次从中间往上下两边排列;

首先要先创建一个精灵的容器,把需要显示的精灵 push_back 进去,然后用一个for循环才好一次性处理。

int count = m_ruleSprites.size();//

for (int i = 0;i < m_ruleSprites.size(); i++) {

if(count>2)//选择规则动态改变坐标

{

count--;

int a =count;

m_ruleSprites[i]->setPosition(150, 665+10*(a-1)-(i*10));//没办法,本来就这一句话就搞定了,但是我的最尾后面是两个精灵来的,所以这也是调得久的原因,记录一下,避免下次有用。

}

m_boomNumberLabel->setPosition(Vec2(100,665-((i-1)*20)/2));

m_remainRoundLabel->setPosition(Vec2(250,665-((i-1)*20/2)));

m_boomSpite->setPosition(Vec2(75, 665-((i-1)*20/2)));

m_remainRoundSpite->setPosition(Vec2(223, 665-((i-1)*20/2)));

}

注:此条件为X轴已知,只需排列Y轴即可,665为背景框Y轴的中点,20为精灵的高度。

cocos2dx 3.x(for 循环让精灵从中间往上下两边排列)-LMLPHP

cocos2dx 3.x(for 循环让精灵从中间往上下两边排列)-LMLPHP

05-11 19:29