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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0307
NT空間と壁の区別7解決


NT

リンク

2007/3/7(Wed) 12:39:42|NO.6101

2Dのシューティングゲームのようなもの(正確な分類がわからない・・・)を作ろうと思っているのですが、キャラクター(プレイヤー)が動いてるように見せるため背景を操作にあわせて動かそうと思っています。そこでキャラクターが地面や壁にもぐりこまないようにするために、プレイする空間とその他の壁などを区別させたいのですがどうしたら良いのでしょう?
自分はステージの画像を作り、それに合わせた白と黒のアルファ画像を用意して、pgetで色の読み出しができるようなのでこれでアルファ画像のバッファを読み込んで壁との区別をさせようと考えました。しかし、この場合だと640*480のウィンドウのゲームを作るとするとステージはその10倍以上の大きさの画像を作らないといけなくなりますし、そのサイズのアルファ画像も用意すると1ステージだけで膨大な容量になってしまうと思ったのです。(実際にこの方法で出来るのかも分かりません)
良い方法を知ってる方がいたら、教えてください。



この記事に返信する


ふほ

リンク

2007/3/7(Wed) 13:00:39|NO.6102

そんな1ドット単位で考えなくても、
「この衝突判定用の画像はゲームマップの10分の1のサイズなんだ」
で良いんじゃないかなあ?



GENKI

リンク

2007/3/7(Wed) 21:54:13|NO.6128




NT

リンク

2007/3/9(Fri) 17:04:40|NO.6164

ふほさん>「この衝突判定用の画像はゲームマップの10分の1のサイズなんだ」
これは納得したのですが、pgetの意味を勘違いしてたらしく、これではできないことが分かりました。

GENKIさんから教えてもらったページを見てきたのですが、この方法では斜めなど複雑な地形は難しいでしょうか?また、複数のステージを作った場合ステージごとにファイルを作って、それを本体の(EXEファイル?)で読み込むことは可能でしょうか?
初心者の自分にはまだゲームを作るのは早かったみたいで…質問多くてすいません。



GENKI

リンク

2007/3/9(Fri) 20:10:39|NO.6170

> この方法では斜めなど複雑な地形は難しいでしょうか?

 あの辺の記事を参考にすれば三角形での判定もつくれると思います。
実際にはやったことないので断言しませんが…工夫次第です。

 また、もっと複雑な形状なら初心者向きではないですが、リージョンを使う方法もありそうな気がします。
(PtInRegionとかRectInRegion この辺?)


> 複数のステージを作った場合ステージごとにファイルを作って、それを本体の(EXEファイル?)で
> 読み込むことは可能でしょうか?

 ファイルを読み込むように作っていれば、そのように出来ます。
そのほうが後からステージを追加・修正するときにも便利がいいです。


 さて、ステージ全体のマップを1つの画像でというのはファイルサイズの大きさや、各ステージのマップデータ作成の
しやすさの面からいってあまりいい方法ではありません。RPGのようにチップマップを使う方法がいいと思いますよ。
チップマップを使ったほうが衝突判定の処理も簡単だと思います。



じった

リンク

2007/3/9(Fri) 22:22:42|NO.6172

通常、GENKIさんのおっしゃるようにチップマップを使うのが一般的だと思いますが
ちょっと裏技的な方法をひとつ。

マップグラフィックのRGB成分のうち、
例えば"G"色成分の最下位ビットを当たり判定に使う…なんてのはどうでしょう?
Gが偶数なら壁。奇数なら通過可能。

ツールを作って、アルファ画像とマップ画像を合成してやれば出来ると思います。
(256色パレットモードでは使えませんが)



ふほ

リンク

2007/3/9(Fri) 22:34:12|NO.6175

あれ?pget使えませんか?

pget x,yで指定座標の色が拾えるので、拾った後はginfo_r、ginfo_g、ginfo_bで、
色の情報が取得できると思うのだけど、それだけできれば十分使えないデスカ?



NT

リンク

2007/3/11(Sun) 10:54:57|NO.6205

まだ出来るようになったわけではないのですが、可能なことは分かったので覚えながら色々試してみたいと思います。
皆さんありがとうございました。



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