ページ 11

座標を求める

Posted: 2010年11月06日(土) 13:03
by 蓮花
パネルの数によって初期の表示位置の座標を変えたいです。
パネルサイズは50で必ず画面の中央にパネルを表示されるようにしたいです。

たとえばパネルを1つしか表示しない場合
blk[0].x = 240;

2つの場合
blk[0].x = 240-25;
blk[1].x = 240+25;

3つの場合
blk[0].x = 240-50;
blk[1].x = 240;
blk[2].x = 240+50;

パネルの数は動的に変わります。
これを簡単に求められるような関数を作りたいのですがイマイチ式がわかりません。
int posBlk( int num ); // numはパネルの数

Re:座標を求める

Posted: 2010年11月06日(土) 14:13
by 五反田
ちょっとちゃんと理解出来ているか自信がないのですが、パネルの総枚数と座標を求めたいパネルが何枚目かが分かれば、
int posBlk(int num,int max){
    return 240-(max-1)*25+num*50;
}
というように作って

例えば総枚数が2つの場合
blk[0].x = posBlk(0,2);//=240-25
blk[1].x = posBlk(1,2);//=240-25+50


という感じで、求められませんか?