本文整理汇总了C++中Star::setDesPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ Star::setDesPosition方法的具体用法?C++ Star::setDesPosition怎么用?C++ Star::setDesPosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Star
的用法示例。
在下文中一共展示了Star::setDesPosition方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: adjustMatrix
void StarMatrix::adjustMatrix(){
//垂直方向调整
for(int i = ROW_NUM-1;i>=0;i--){
for(int j = COL_NUM-1;j>=0;j--){
if(stars[i][j] == nullptr){
int up = i;
int dis = 0;
while(stars[up][j] == nullptr){
dis++;
up--;
if(up<0){
break;
}
}
for(int begin_i = i - dis;begin_i >= 0;begin_i--){
if(stars[begin_i][j] == nullptr)
continue;
Star* s = stars[begin_i + dis][j] = stars[begin_i][j];
s->setIndex_ij(begin_i + dis,j);
s->setDesPosition(getPositionByIndex(begin_i + dis,j));
stars[begin_i][j] = nullptr;
}
}else{
continue;
}
}
}
//水平方向调整
for(int j = 0;j < COL_NUM;j++){
if(stars[ROW_NUM-1][j] == nullptr){
int des = 0;
int right = j;
while(stars[ROW_NUM-1][right] == nullptr){
des++;
right++;
}
for(int begin_i = 0;begin_i<ROW_NUM;begin_i++){
for(int begin_j = j + des;begin_j < COL_NUM;begin_j++){
if(stars[begin_i][begin_j] == nullptr)
continue;
Star* s = stars[begin_i][begin_j - des] = stars[begin_i][begin_j];
s->setIndex_ij(begin_i,begin_j - des);
s->setDesPosition(getPositionByIndex(begin_i,begin_j - des));
stars[begin_i][begin_j] = nullptr;
}
}
}
}
}
示例2: initMatrix
void StarMatrix::initMatrix(){
srand(time(0));
for(int i=0;i<ROW_NUM;i++){
for(int j=0;j<COL_NUM;j++){
int color = abs(rand()%Star::COLOR_MAX_NUM);
if(color < 0) {
CCLOG("color i=%d,j=%d");
}
Star* star = Star::create(color);
stars[i][j] = star;
star->setPosition(getPositionByIndex(i,j) + Point(0,100));
star->setDesPosition(getPositionByIndex(i,j));
star->setIndex_ij(i,j);
this->addChild(star);
}
}
}