2007/12/28(金) [n年前の日記]
#3 [prog] 未だに2Dゲーのスクロール処理の正解が判らない
よくある処理としては、自機等が画面内のある座標値を超えたら、その超えた分スクロールする、てな処理かなと思うのだけど。
if ( playerX > bgX1 ) { bgX += playerX - bgX1; }みたいな。しかしこれだと、自機の速度によってはガクッとスクロールしてしまう瞬間が。かといって、目的のスクロール座標に徐々に近づいていく・遅延するようにしてしまうと、自機が画面外に行ってしまう瞬間が出てきて…。
if ( playerX > bgX1 ) { int targetBgX = bgX + (playerX - bgX1); bgX += (targetBgX - bgX) / 4; }これが正解だろう、てなやり方が未だに判らない。こういうやり方でプレイがまったくできないかというと別にそんなことはないのだけど、何かもっとこう自然にスクロールするやり方を見出したいところ。何を持って「自然」と判断するのか、てなところはあるのだけれど。
[ ツッコむ ]
以上です。