fkm 〜 Super Software Entertainerへの道 〜 このページをアンテナに追加 RSSフィード

 | 

2010-08-15 描画がずれるたった一つの原因

[]描画がずれるたった一つの原因 描画がずれるたった一つの原因を含むブックマーク

1つの画像を32x32のチップに分割してそれをぺたぺた貼るコードを使っていて, なぜか両端が変になる問題に悩まされてた.

id:nano_001さんにオフで戴いたアドバイス"1引かないとだめだったような。。。"を確認しようと描画してるとこを覗いてみた.

if (chip > 0) {
  chipX = 1 + (int)((chip & 15) * 32); // 下位ビットだけ取り出して32倍
  chipY = 1 + (int)(chip / 16) * 32; // 上位4ビットだけ取り出して32倍
  this->setRect(chipX, chipY, 32, 32);
  this->setBasePoint((float)(i * 32 + del_x), (float)(j * 32 + del_y), 1.0f);
  this->drawRect(this->baseTexture);
}

setRectメソッドで転送元のどこを抜き出すか指定する.

あれ, leftとtopをあらわすchipXとchipYに1足してある・・・?

トラックバック - http://d.hatena.ne.jp/fkm/20100815/p1
 | 
掲示板