マップとプレイヤーのスクロールについて

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

マップとプレイヤーのスクロールについて

#1

投稿記事 by 磁石 » 14年前

こんにちは。
ゲームプログラミングの館を、一通り基本編までは勉強して、以下のサンプルプログラムを
読み解いているのですが、わからないことがあります。
http://homepage2.nifty.com/natupaji/DxL ... am.html#N4

このプログラムでは、プレイヤーである白い四角が常に画面の中心あたりに来るようなっていますが
例えば、画面右までスクロールして、描画している白いマップの終点まで来たら画面はスクロールせず、
プレイヤーが移動するようにしたいのですが、どのように組めばいいのでしょうか?
(描画されていないところ、つまり外の黒い画面を表示しないようにしたいのです)

考えたのですが、良いアルゴリズムが浮かばず、お手上げ状態です。

C言語の勉強は「やさしいC」という本を見ながら、独学で勉強をしていて、
今はポインタを少し理解しているところです。

初心者ですが、皆様の知恵をお貸しください。

みけCAT

Re:マップとプレイヤーのスクロールについて

#2

投稿記事 by みけCAT » 14年前

携帯からなので詳しいことは書けませんが、
条件演算子「?」を使うといいかもしれません。
x:キャラクターのx座標
gx:画面(ウィンドウ)の横の大きさ
sx:表示範囲の左上
mx:マップの横の大きさ
とすると
sx=(x+gx/2<=mx)?(x-gx/2):(mx-gx);
if(sx<0)sx=0;
のような感じです。
y座標についても同様にします。

みけCAT

Re:マップとプレイヤーのスクロールについて

#3

投稿記事 by みけCAT » 14年前

補足
上のxはキャラクターの中心のx座標です。
xがキャラクターの左上の場合は、キャラクターの幅をcxとして
上のサンプルのxを(x+cx/2)に置き換えてください。

閉鎖

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