最近很多游戏都喜欢房卡类的游戏,就是创建房间时(),选择玩法与规则,今天耗费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为精灵的高度。