ページ 1 / 1
アクションゲーム
Posted: 2013年7月31日(水) 18:39
by メリモ
2Dスクロールで背景画像はどうやって保存すればいいのですか?
長大になると思うんですけど、どうしたらいい?
Re: アクションゲーム
Posted: 2013年7月31日(水) 19:08
by 雨ガエル
2Dスクロールのどんなゲームですか?
2Dアクションゲームだと仮定して書きます。
例えばスーパーマリオなどのファミコンゲームでは、背景を一枚の画像にするのではなく、
小さく区切った画像(チップ)を用意し、並べて描画することで背景にするという方法が一般的です。
これは、画像サイズを小さくするためです。
この方法では、各チップに番号をつけていき、その並びを配列などで管理します。
例)
チップ 0 □
チップ 1 ■
チップ 2 ×
チップ 3 ○
背景データ
00000000000000000000
01111111111111111110
01000000000000000010
01000000000000000010
01033000000000000010
01222200000000000010
01111111111111111110
00000000000000000000
実際に描画される背景
□□□□□□□□□□□□□□□□□□□□
□■■■■■■■■■■■■■■■■■■□
□■□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□■□
□■□○○□□□□□□□□□□□□□■□
□■××××□□□□□□□□□□□□■□
□■■■■■■■■■■■■■■■■■■□
□□□□□□□□□□□□□□□□□□□□
Re: アクションゲーム
Posted: 2013年7月31日(水) 19:10
by モリメ
トイレットペーパーみたいなもんだから画像は長いですよね?
どうやって保存するのか教えて下さい
Re: アクションゲーム
Posted: 2013年7月31日(水) 19:15
by モリメ
長い写真ってどうやって保存すればいいんですか?
一面分だから
縦が480くらいでも横は5000くらいになるんですが。
Re: アクションゲーム
Posted: 2013年7月31日(水) 19:29
by spaaaark・∀・
実はそんなに長い画像を使用していないことが現実です。
ヒントは、一定座標より大きくなったときに背景の描画場所を元に戻す、使いまわし、ということです。
5000*480の大きさの画像は、保存できないことはないですけど、実行時のメモリにも負荷がかかってしまいます。
それなら、短めの画像(といっても横が2000程度になる事は回避できませんが…)を繰り返し使いステージを延々と長く見せるほうがいいです。
背景にする画像の、一番最初と最後を同じにすれば、きれいにループすると思います。
あと、その画像を製作するならWindows付属のペイントではなくて、フリーソフトでもいいのでペイントツールをダウンロードすることをお勧めします。
Re: アクションゲーム
Posted: 2013年7月31日(水) 19:35
by 珈琲
画面の大きさの画像1枚を2回表示してスクロールすればいいんじゃないですか?
マリオみたいなのなら、画面の右外に画像が一枚余分に描画されているようなイメージです。
進むと背景が左にずれていって、右外にあった画像が完全に画面に収まったら、その瞬間に最初の画像と入れ替えます。
Re: アクションゲーム
Posted: 2013年7月31日(水) 19:39
by モリメ
いや使い回しじゃなく、一つの一連の背景を用意したいです。マリオだって
土管や、山、パックン、落とし穴、色々なオブジェクトがありますよね?そういう事です。
だから480×10000くらいの画像が必要です。どうしたらいいですか?
Re: アクションゲーム
Posted: 2013年7月31日(水) 19:44
by 珈琲
その場合は背景オブジェクトとして都度座標を指定して設置していきます。
つまり背景の上に画像を上書きして表示していきます。
Re: アクションゲーム
Posted: 2013年7月31日(水) 19:51
by メリモ
480*10の画像を10個用意して
その10個の画像をどうしたらいいですか?
Re: アクションゲーム
Posted: 2013年7月31日(水) 19:53
by メリモ
ゲーム上の座標 xg ygを用意して
画面上の座標をxgamen ygamenみたいに分けるのでしょうか?
ゲーム上の座標は
xg1~10000だけどゲーム画面では
480(横の長さ)に変換するんでしょうか?
良くわからないので教えて下さい。