ページ 1 / 1
画面背景のループ
Posted: 2010年5月26日(水) 08:31
by 月
画面背景のループ素材をループさせて見えるようにしたいです。
画像自体ではループできるようになっております。
画像のサイズは1024*512です。 読み込みも同じサイズ
int Sx = int(Cam.Px/2);
if(Cam.Px/2 >= 1024 - 640) Sx = Cam.Px/2 - 1024;
DrawRectGraph( 0, 0, Sx, 0, 640, 480, Bg, TRUE, FALSE ) ;
Cam.Pxは左右キーで増えたり減ったりします。
このように書いているのですがループが急に切れてしまいます。
マイナスを使うような値は駄目なのでしょうか?
Re:画面背景のループ
Posted: 2010年5月26日(水) 13:36
by softya
Sx座標を表示してみたら分かりますよ。
Re:画面背景のループ
Posted: 2010年5月26日(水) 18:16
by 月
softya様
ありがとうございます。
if(Cam.Px/2 >= 1024 - 640) Sx = Cam.Px/2 - 384;//384;
のようにしたのですが切れるのは直ったのですが切り替わる瞬間に気になってしまいます。
画像は1024*512ですが512×512の画像が2枚連続して繋がっているものです。
画像が悪いのでしょうか?
Re:画面背景のループ
Posted: 2010年5月26日(水) 18:22
by softya
画面サイズと背景サイズが有っていないためだと思われます。
画面サイズを512にするか、背景を640にするかどちらかの対策が必要になるでしょう。
Re:画面背景のループ
Posted: 2010年5月26日(水) 18:47
by 月
画像サイズを640*480にしたのですがこれをどの様にすればループさせることが出来るのでしょうか?
今回の様な処理をしたことがないのでできるか不安になってきました・・・。
Re:画面背景のループ
Posted: 2010年5月26日(水) 19:04
by softya
>画像サイズを640*480にしたのですがこれをどの様にすればループさせることが出来るのでしょうか?
つながって見えるようになっている前提ですが、2枚を横に並べて表示します。
2枚一組を1つの画像だと思って同じ処理をすれば良いので、プログラム的には大差ないですよ。
int Sx = int(Cam.Px/2);
if(Cam.Px/2 >= (640*2) - 640) Sx = Cam.Px/2 - 640;
DrawGraph( Sx-640, 0, Bg, TRUE ) ;
DrawGraph( Sx, 0, Bg, TRUE ) ;
Re:画面背景のループ
Posted: 2010年5月26日(水) 20:49
by 月
背景のループが出来ました。
ただ問題が御座いまして背景のループ方向が逆?になってしまいました。
Cam.pxの値は右に行くほど+になっております。
*-1等してみたのですがどれも画面が途切れてしまったりと期待の行く結果を得ることが出来ません・・・。
Re:画面背景のループ
Posted: 2010年5月26日(水) 21:08
by softya
では、
DrawGraph( -Sx, 0, Bg, TRUE ) ;
DrawGraph( 640-Sx, 0, Bg, TRUE ) ;
これでは、どうでしょう。
Re:画面背景のループ
Posted: 2010年5月26日(水) 21:29
by 月
ありがとうございます!!!!!
出来ました~。
凄く助かりました!!!!