画面背景のループ

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

画面背景のループ

#1

投稿記事 by » 15年前

画面背景のループ素材をループさせて見えるようにしたいです。
画像自体ではループできるようになっております。
画像のサイズは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は左右キーで増えたり減ったりします。

このように書いているのですがループが急に切れてしまいます。
マイナスを使うような値は駄目なのでしょうか?

softya

Re:画面背景のループ

#2

投稿記事 by softya » 15年前

Sx座標を表示してみたら分かりますよ。

Re:画面背景のループ

#3

投稿記事 by » 15年前

softya様
ありがとうございます。
if(Cam.Px/2 >= 1024 - 640) Sx = Cam.Px/2 - 384;//384;
のようにしたのですが切れるのは直ったのですが切り替わる瞬間に気になってしまいます。
画像は1024*512ですが512×512の画像が2枚連続して繋がっているものです。
画像が悪いのでしょうか?

softya

Re:画面背景のループ

#4

投稿記事 by softya » 15年前

画面サイズと背景サイズが有っていないためだと思われます。
画面サイズを512にするか、背景を640にするかどちらかの対策が必要になるでしょう。

Re:画面背景のループ

#5

投稿記事 by » 15年前

画像サイズを640*480にしたのですがこれをどの様にすればループさせることが出来るのでしょうか?
今回の様な処理をしたことがないのでできるか不安になってきました・・・。

softya

Re:画面背景のループ

#6

投稿記事 by softya » 15年前

>画像サイズを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:画面背景のループ

#7

投稿記事 by » 15年前

背景のループが出来ました。
ただ問題が御座いまして背景のループ方向が逆?になってしまいました。
Cam.pxの値は右に行くほど+になっております。
*-1等してみたのですがどれも画面が途切れてしまったりと期待の行く結果を得ることが出来ません・・・。

softya

Re:画面背景のループ

#8

投稿記事 by softya » 15年前

では、
DrawGraph( -Sx, 0, Bg, TRUE ) ;
DrawGraph( 640-Sx, 0, Bg, TRUE ) ;
これでは、どうでしょう。

Re:画面背景のループ

#9

投稿記事 by » 15年前

ありがとうございます!!!!!
出来ました~。
凄く助かりました!!!!

閉鎖

“C言語何でも質問掲示板” へ戻る