HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0408
piyo12歳から始める〜 8章 横スク 変数WORLDX3解決


piyo

リンク

2011/4/8(Fri) 20:01:14|NO.38252

分からないところがあります。よろしくお願いします。
12歳から始めるHSP3.0わくわくゲームプログラミング教室の8章に

改造ポイント2「地形の表示」
改造ポイント3「スクロール」の

「 WORLDX=-320が、表示範囲の右端のピクセル座標を表している。」

というのがわからず、つまづいています。

screen 0,480,320

と宣言しているときの表示範囲の右端って480じゃないんですか?

※別話

書籍に載ってるソースってある程度ならココに記載してもいいんですかね?

↑の文だけだと本持っている人じゃないと分かりませんよねぇ。



この記事に返信する


通りすがり

リンク

2011/4/9(Sat) 01:04:58|NO.38263

その本は持ってないので
実際なんの処理をしてるか分からないから具体的な答えはできないけど、
考え方の要点だけ参考までに。

まず画面スクロールがある場合の基本として、常に2つの座標を考えないといけない。
(座標の呼び方はケースバイケースで厳密な決まりは無い)
A:ワールド座標系
B:表示座標系

これは旧ドラクエタイプ、2D上から見下ろしRPGで考えると
ゲーム世界全体のマップは例えば1万×1万ピクセルとかあって、むっちゃ広い。
でも実際の画面に表示できるのは限られている。
すごく大きな絵(A)を小さな窓(B)越しに見ていて、その内側だけ表示するようなもの。

これをプログラムで処理する時、たいていはワールド座標系を基準にしてマップや街の絵を設定しておき、
ある時点の表示範囲はワールド座標の中でどのポイントにあたるか、
さらに実際の表示範囲=画面内のどこにマップ+主人公やNPCの絵を描画するか、
この2種類の計算をするわけ。

で、プログラムを読む時は書かれている座標がどちらを示すものか
常に注意して考えておかないといけない。
(ちなみに、あなたの言う「表示範囲の右端って480?」は表示座標の話ってことになる)

以下蛇足。
件の例については、WORLDXって変数名はワールド座標っぽいから、
スクロール限界の処理かなと思うけど、それにしては画面幅480に対して2/3は行き過ぎなので
ループ処理なんだろか。



kemu

リンク

2011/4/9(Sat) 23:28:23|NO.38278

-320という数値はゲーム起動時のマップに対する位置です
ゲーム起動時にマップが見えていないのもマップから離れた位置に自機があるのがそれだと思います。



piyo

リンク

2011/4/10(Sun) 15:06:52|NO.38287

>通りすがりさん

回答ありがとうございます。
ワールド座標と表示座標という言葉は聞いたことがあり
いまいちよく理解できませんでしたが、
解説を頂き分ったような気がします。何度か読み直して考えてみます。
ありがとうございました。

>kemuさん

回答ありがとうございます。
-320の部分はマップ外だったってことですね。
最初の黒は全部0の部分だと勘違いしていました。
なるほど、マップのテキストを書き換えてみたら確かにそうなっていました。
ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.