横スクロールアクションにおいて、斜め坂をマップチップで制御したい
横スクロールアクションにおいて、斜め坂をマップチップで制御したい
題名の通り、2D横スクロールアクションゲームの製作について質問させてもらいます。
現在、下記のページを参考にアクションゲームを製作しています。
http://javagame.skr.jp/index.php?%A5%D6 ... E%D7%C6%CD
このページで記されているような方法でマップチップとキャラクターの接触判定を行っています。
ここで斜めの坂を導入したいのですが、これを上記のようなマップチップで再現したいのですが、その方法が思いつかない状態です。
坂による斜め移動を考慮して、接地判定を点と線分にするという方法もありますが、できるだけマップチップで表現したいと考えています。(なるべく一括して管理したいので)
どなたか教えてください。
ささいな質問
現在、画面上に存在する敵などのオブジェクトが格納されているlistを管理する(表示したり、消したりする)クラス名を、ObjectFactoryとしていますが、
デザインパターンのファクトリとは厳密には異なるため、名前を変えようとも考えています
この場合、どんな名前がよいでしょうか。参考に教えて欲しいです。
現在、下記のページを参考にアクションゲームを製作しています。
http://javagame.skr.jp/index.php?%A5%D6 ... E%D7%C6%CD
このページで記されているような方法でマップチップとキャラクターの接触判定を行っています。
ここで斜めの坂を導入したいのですが、これを上記のようなマップチップで再現したいのですが、その方法が思いつかない状態です。
坂による斜め移動を考慮して、接地判定を点と線分にするという方法もありますが、できるだけマップチップで表現したいと考えています。(なるべく一括して管理したいので)
どなたか教えてください。
ささいな質問
現在、画面上に存在する敵などのオブジェクトが格納されているlistを管理する(表示したり、消したりする)クラス名を、ObjectFactoryとしていますが、
デザインパターンのファクトリとは厳密には異なるため、名前を変えようとも考えています
この場合、どんな名前がよいでしょうか。参考に教えて欲しいです。
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
リンク先は拝見していませんが、
マップチップにもっと複雑な属性を持たせてみてはどうでしょうか?
「通行可」「通行不可」だけじゃなく、
例えば添付ファイルのような「斜め45度通行不可」みたいな。
1つあれば回転して4種類のブロックになると思います。
傾斜25%のブロックなら4つつなげるとブロック一つ超えられる坂になるなど、色々考えられると思います。
このようにブロック自体に形を持たせ、それを並べてみてはどうでしょう。
こうなってくるとマップチップを並べるツールが必要になってきそうですね。
※
この方法がいい方法かどうか知りません;
マップチップにもっと複雑な属性を持たせてみてはどうでしょうか?
「通行可」「通行不可」だけじゃなく、
例えば添付ファイルのような「斜め45度通行不可」みたいな。
1つあれば回転して4種類のブロックになると思います。
傾斜25%のブロックなら4つつなげるとブロック一つ超えられる坂になるなど、色々考えられると思います。
このようにブロック自体に形を持たせ、それを並べてみてはどうでしょう。
こうなってくるとマップチップを並べるツールが必要になってきそうですね。
※
この方法がいい方法かどうか知りません;
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
>ささいな質問
EnemyManagerでしょうか。
ぼくは管理するクラスにはよくManagerを使います。
・・・・スペルあってるかな。
あとナナメ移動が入ると、主人公が四角画像だと不自然な動きになりそう。
EnemyManagerでしょうか。
ぼくは管理するクラスにはよくManagerを使います。
・・・・スペルあってるかな。
あとナナメ移動が入ると、主人公が四角画像だと不自然な動きになりそう。
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
参考になるかわかりませんが
このゲームを知っているでしょうか?
私の知っている唯一の斜めがあるゲームです
http://www.t3.rim.or.jp/~naoto/j_sm2/index.html
後でこちらで質問してみても良いかもしれません
http://www.t3.rim.or.jp/~naoto/naoto.html
このゲームを知っているでしょうか?
私の知っている唯一の斜めがあるゲームです
http://www.t3.rim.or.jp/~naoto/j_sm2/index.html
後でこちらで質問してみても良いかもしれません
http://www.t3.rim.or.jp/~naoto/naoto.html
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
>Dixqさん
問題は「斜め45度通行不可」のマップチップで、うまく斜め移動が再現できないところです・・・
Curse'sSoul(仮名)の動画では斜め坂が出てきましたが、これはやはり点と線分の接触判定で再現してるのでしょうか?
>shizumaさん
~Managerですね。参考にさせてもらいます。
タスクシステムからとって~Taskにしようとも考えています。
>ちるちるさん
japaAppletはまったくわかりませんが、いろいろ参考になりそうなページですね。
問題は「斜め45度通行不可」のマップチップで、うまく斜め移動が再現できないところです・・・
Curse'sSoul(仮名)の動画では斜め坂が出てきましたが、これはやはり点と線分の接触判定で再現してるのでしょうか?
>shizumaさん
~Managerですね。参考にさせてもらいます。
タスクシステムからとって~Taskにしようとも考えています。
>ちるちるさん
japaAppletはまったくわかりませんが、いろいろ参考になりそうなページですね。
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
>問題は「斜め45度通行不可」のマップチップで、うまく斜め移動が再現できないところです・・・
斜め45度のマップチップ限定なら、上りか下りの2種類しかないのでX座標からY座標は簡単に計算できると思いますが。
計算式は、こんな感じです。
前提として上り坂のマップチップとして、Xは右が数値が大きくなり、Yは上が数値が大きくなる座標系を想定しています。
マップチップ内の相対x = キャラクタ座標のX座標 - マップチップの先端X座標
マップチップ内の相対y = マップチップ内の相対x
キャラクタ座標のY座標 = マップチップの先端Y座標 + マップチップ内の相対y
って具合でキャラクタのY座標が計算できます。
話を勘違いしていたら、ごめんなさい。
斜め45度のマップチップ限定なら、上りか下りの2種類しかないのでX座標からY座標は簡単に計算できると思いますが。
計算式は、こんな感じです。
前提として上り坂のマップチップとして、Xは右が数値が大きくなり、Yは上が数値が大きくなる座標系を想定しています。
マップチップ内の相対x = キャラクタ座標のX座標 - マップチップの先端X座標
マップチップ内の相対y = マップチップ内の相対x
キャラクタ座標のY座標 = マップチップの先端Y座標 + マップチップ内の相対y
って具合でキャラクタのY座標が計算できます。
話を勘違いしていたら、ごめんなさい。
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
そのやり方でも、うまく接触判定を行うコードが思いつきません・・・
できたら具体的にコードで示してもらえませんでしょうか?
できたら具体的にコードで示してもらえませんでしょうか?
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
とりあえずは簡単に答えますが、キャラクタの移動先が斜めななめのマップチップだった場合は、キャラクタブロックの底辺の中央が先ほどの式で計算される座標に移動したと仮定してもらえば良いはずです。
移動先のマップチップが当たり無しならX座標を変えるだけですが、もし上りの斜めマップチップならY座標を加算してやれば斜めを上っている表現になると思います。
アルゴリズムを完全に検証していないので動作保障は出来ませんが、いちどプログラムに組んでみていただけますか?
ジャンプの着地とか、そこら辺りは実際に試して見ないと問題が出てこないです。こちらはソースもデータも無いので検証が出来ませんがご容赦を。
移動先のマップチップが当たり無しならX座標を変えるだけですが、もし上りの斜めマップチップならY座標を加算してやれば斜めを上っている表現になると思います。
アルゴリズムを完全に検証していないので動作保障は出来ませんが、いちどプログラムに組んでみていただけますか?
ジャンプの着地とか、そこら辺りは実際に試して見ないと問題が出てこないです。こちらはソースもデータも無いので検証が出来ませんがご容赦を。
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
簡単に述べているようですが、そんなに簡単じゃないような・・・
まず下り坂に乗っているときから歩いて通常の平らの地面に乗るときや、
上がり坂から歩いて平らの地面に上るときや、
複雑に条件式が必要になると思います
まず下り坂に乗っているときから歩いて通常の平らの地面に乗るときや、
上がり坂から歩いて平らの地面に上るときや、
複雑に条件式が必要になると思います
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
そうですね。最終的にはある程度複雑になると思いますよ。
なので、そこまで分かっているのなら条件を全て書き出してみましょうか。
思いつく限り書き出してみてください。
なので、そこまで分かっているのなら条件を全て書き出してみましょうか。
思いつく限り書き出してみてください。
Re:横スクロールアクションにおいて、斜め坂をマップチップで制御したい
無理です
考えて、さまざまな条件を立てて、自分でコードを書いて、それでもできないからここで質問しているのです
そもそもホントにこの考えでできるとは思えなくなってきました
これでできるというのなら、コードで示して欲しいです
・・・
と思ったのですが、点と三角形の当り判定を利用すれば、条件をスマートな感じでまとめられそうです
新しいDXライブラリは球と三角形の接触判定があるので、それを利用してみます
考えて、さまざまな条件を立てて、自分でコードを書いて、それでもできないからここで質問しているのです
そもそもホントにこの考えでできるとは思えなくなってきました
これでできるというのなら、コードで示して欲しいです
・・・
と思ったのですが、点と三角形の当り判定を利用すれば、条件をスマートな感じでまとめられそうです
新しいDXライブラリは球と三角形の接触判定があるので、それを利用してみます