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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0110
くろの6アクションゲームでのカメラ移動について2解決


くろの6

リンク

2020/1/10(Fri) 19:13:13|NO.89217

やりたいこと:「扉の前に行くとステージクリア」というアクションゲームを作りたいです。

やってみたこと:「珠音のジャンプアップ♪」のスクリプトを参考に、
プログラムを組んでみました。

やってみた結果:(1)主人公の移動と、ブロック(床)の当たり判定はうまくいきました。
(2)画面より大きいステージ(マップ)にすると、主人公が画面の外に行ってしまい
見えなくなってしまいました。

わからないこと:
284行目〜292行目の、

i=0 if x<240 : i=(x-240)/40 if x>(wx-320) : i=(x-(wx-320))/40 viewx=limit( viewx+i, 0, vbasex ) i=0 if y<160 : i=(y-160)/40 if y>(wy-240) : i=(y-(wy-240))/40 viewy=limit( viewy+i, 0, vbasey )
がカメラの移動に関係していると思ったのですが、
これは何をしているスクリプトなのでしょうか?
(もし、これがカメラの移動に関係していないのなら、
スクリプトのどこでカメラの移動をしているのでしょうか?)



この記事に返信する


あらや

リンク

2020/1/13(Mon) 23:58:46|NO.89246

>わからないこと:
>284行目〜292行目
言葉で上手く説明できるかわかりませんが……
カメラ位置(正確には2Dにカメラという考え方はありませんが)
という理解で大体合っています。

横移動(X座標)について解説させていただくと
基本的な考え方はキャラクターを画面の中央部に表示し、
キャラクターの移動に合わせて背景やマップを動かすという感じです。

ただし、キャラクターがマップの左端や右端に行ってしまったとき
それに合わせて背景を動かすと画面に何もない箇所が表示されてしまうので
マップの端に行ったら背景&マップは固定でキャラクターだけ動かす。
という処理をしています。

縦移動(Y座標)も横移動と同じです。



>(2)画面より大きいステージ(マップ)にすると、主人公が画面の外に行ってしまい
>見えなくなってしまいました。
117行目〜125行目でマップに合わせて表示する画面範囲を決定しているのですが、
くろの6さんのソースではこの辺りが抜けているのではないでしょうか?



くろの6

リンク

2020/1/14(Tue) 07:10:25|NO.89247

回答ありがとうございます。よく分かりました。



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