ページ 1 / 1
ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月26日(日) 16:55
by モリブデン
ぷよぷよ的なものが作りたいです。
ぷよぷよ一つ一つに表情をつけて
くっつく所やはじける所も表現したいんですが、
ぷよぷよの画像一つ一つを、
識別するにはどうすればよいでしょうか。
ぷよは壊れるとドンドン出てくるので
画像を一つ一つ別名で表示するということも
できないので困ってます。
まだ全然初心者なんで
まず落ちてきたぷよを
その場に表示し続ける方法がわかりません。
次のぷよが落ちてきて
下に下がる時に落ちてるぷよを消すと
一緒に消えてしまいます。
一つの画像だけを消すことは
可能でしょうか。
一応webで調べてみましたが
分かりませんでした。
どなたか教えていただけると
幸いです。
何か書き足りない情報などあれば、
言って下さい。
簡単な質問ばかりかもしれませんが
よろしくお願いします。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月26日(日) 17:07
by Dixq (管理人)
> モリブデンさん
ぷよぷよはあのぷよんとした質感を出したり、いくつ繋がっているかを計算したりするのが意外に難しいので、
まずはテトリスを作ってはどうでしょうか?
テトリスは元々プログラマの育成用に考えられたゲームということだけあってとても勉強になります。
まずはエフェクト一切無しで、ただ安直にテトリスの最低限のルールで実装してみて下さい。
ところで、モリブデンさんがどれ位ご経験をお持ちか分かりませんが、ゲームプログラムの経験が全くないのであれば、まずはもっと簡単なゲーム(じゃんけんとか)
から始めてみると良いと思います。
> 何か書き足りない情報などあれば、言って下さい。
今までのプログラムの経験や、分かっている範囲、使おうとしているライブラリの情報があればもっと回答がしやすくなるかと思います。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月26日(日) 17:35
by モリブデン
お返事ありがとうございますo(^-^)o
ぷよぷよはあのぷよんとした質感は、
どうすれば良いのか分からなかったので
着地時の画像を2つほど作って、
画像を交換する感じにして再現することは
できたんですが、その方法だとマズイでしょうか?
いくつ繋がっているかを計算したりするのは、
関数に関数を入れる?事などが可能なら
何とかなるかなと考えています。
(正直やってみなくては分かりません…)
ゲームプログラムの経験は
以前『ひまわり』という、
日本語でプログラムできるソフトを使って
色々なプログラムをして遊んだことがあります。
「じゃんけん」くらいなら簡単に作れると思いますが、
関数を、まだあまり知らないのでうまく進みません。
指定した画像のみを消したり、
a=0を
黄色ぷよ(a)=0の、
aに代入して
a++とwhileなどを使って
黄色ぷよ1=0
黄色ぷよ2=0
のように大量に関数を作る方法があれば
何とか出来るかなと思ってます。
すいません、
ライブラリというのはなんでしょうか?
『Microsoft Visual C++ 2010 Express - JPN』
これの、ことでしょうか?
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月26日(日) 19:19
by Dixq (管理人)
> 着地時の画像を2つほど作って、画像を交換する感じにして再現することは
> できたんですが、その方法だとマズイでしょうか?
マズくはないですが、同じ画像を縦横方向に拡大縮小して「ぷよん」とさせた方がメモリ削減になり、FPSも高く滑らかになると思います。
着地した瞬間は縦につぶれて横に広がると良いかと。
> いくつ繋がっているかを計算したりするのは、関数に関数を入れる?事などが可能なら
> 何とかなるかなと考えています。
関数に関数を入れるというのは?
隣接しているぷよをカウントする時は再帰関数を使うと簡単に実装出来ます。
分かっていれば難しくないですが、再帰関数の仕組みを知らないとなかなか思いつきにくいかと思いました。
> a++とwhileなどを使って
> 黄色ぷよ1=0
> 黄色ぷよ2=0
> のように大量に関数を作る方法があれば何とか出来るかなと思ってます。
う~ん良く分かりませんが、ぷよを一つずつ識別したいということであればIDを付ければ良いのではないでしょうか。
私が作った時は特にIDなど使わず、単に落ちた場所のみの情報で計算しましたが。
ライブラリというのはDirectXだとかOpenGLだとかC言語の機能を拡張させるためのものです。
今は何を使って画像を表示しているのですか?
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月27日(月) 00:58
by モリブデン
関数などは主に
新・ゲームプログラムの館の方などで
学ばせていただいてますが、
画像を縦横方向別々の比率で
拡大縮小するには、
どうすれば良いのでしょうか?
再帰関数は詳しくは知りませんが、
色々調べている時に見たことがあります。
迷路を片っ端から進んでいくイメージで、
行き止まりになると前の分岐点まで戻る
という仕組みだったと思います。
IDには関数を指定する事は、
可能でしょうか?
落ちた場所のみの情報で計算する方法で、
ぷよの表情を変えることは、
可能なんでしょうか?
新・ゲームプログラムの館で書いてある方法で、
画像は表示しています。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月27日(月) 09:38
by バグ
落ちものパズルを作るのでしたら、下記サイトが非常に参考になりますよ。
ただ、DxLibは使用していないので、画像の表示方法などはここのゲームプログラミングの館とはちょっと違いますが、その他の部分の作り方や考え方は共通している箇所がほとんどなので、読んでおいて損はないと思います。
http://codezine.jp/article/detail/207?p=1
http://codezine.jp/article/detail/228?p=1
上のURLがテトリスモドキの解説で、下のURLがぷよぷよモドキの解説になっていますが、同じジャンルのゲームということで共通点が多い為か2つで1セットになっております。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月27日(月) 10:24
by softya(ソフト屋)
再帰関数の説明を見ていると多分にプログラミングの経験が不足されていると思います。
なので、簡単なものを積み重ねてから「ぷよぷよ」級に挑戦されたほうが良いでしょう。
テトリスあたりの方が難易度が低いので、そちらから挑戦されてはどうでしょうか?
関数などは主に
新・ゲームプログラムの館の方などで
学ばせていただいてますが、
画像を縦横方向別々の比率で
拡大縮小するには、
どうすれば良いのでしょうか?
DXライブラリには様々な関数がありますので、このリファレンスページを眺めてみてください。
「DXライブラリ置き場 リファレンスページ」
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html
再帰関数は詳しくは知りませんが、
色々調べている時に見たことがあります。
迷路を片っ端から進んでいくイメージで、
行き止まりになると前の分岐点まで戻る
という仕組みだったと思います。
それは再帰関数を応用した迷路の作りかたですね。
「C言語編 第56章 再帰呼び出し」
http://www.geocities.jp/ky_webid/c/056.html
あたりで勉強してみてください。
ゲームプログラミングは、様々なプログラミングの知識やアルゴリズムの知識がないと行き詰まることも多いです。
並行して勉強されることをお勧めします。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月27日(月) 12:56
by モリブデン
バグさん、
ありがとうございます。
参考にさせていただきます。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月27日(月) 13:12
by モリブデン
「DXライブラリ置き場 リファレンスページ」
参考にさせていただきます。
ありがとうございます。
再帰関数の説明が下手ですいません。
迷路の作りかたではなく、
ぷよぷよの作り方で発見しました。
しかし再帰関数について
詳しく無いのは事実なので、
「C言語編 第56章 再帰呼び出し」の方も、
見て勉強します。
色々ありがとうございます。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月27日(月) 18:00
by Dixq (管理人)
使っているライブラリはDXライブラリということでよいですか?
> 画像を縦横方向別々の比率で
> 拡大縮小するには、
> どうすれば良いのでしょうか?
DXライブラリであればDXライブラリのリファレンスを見れば分かりますよ。
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html
http://homepage2.nifty.com/natupaji/DxL ... nc_3d.html
DrawModiGraphを使えばどんな形にでも変形出来ます。
> 落ちた場所のみの情報で計算する方法で、
> ぷよの表情を変えることは、
> 可能なんでしょうか?
どんなことでも実装すれば不可能なことは無いと思います。
ただ、ぷよの表情を変えるなら、落ちた場所ではなく、隣接していないぷよにした方が良いと思います。
以前ぷよぷよもどきを作ったことがありますが
http://dixq.net/puyopuyo.html (音が出るのでご注意を)
こんな感じで隣接していないぷよなら泣かせたり怒らせたりタバコ吸わせたりしても自然かと思います。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月27日(月) 22:27
by モリブデン
>使っているライブラリはDXライブラリということでよいですか?
はい。
画像を縦横方向別々の比率で拡大縮小する方法は、
分かりました。
ありがとうございます。
今一番困ってるのが、
落ちた後のぷよを、
表示しておく方法なんですが、
毎回全てのぷよを書き直した方が良いのでしょうか?
ぷよを落下させる際、
『ClearDrawScreen』?を使うと、
落下した後のぷよを再び表示しなくては、
いけなくなってしまいます。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月27日(月) 22:57
by h2so5
モリブデン さんが書きました:今一番困ってるのが、
落ちた後のぷよを、
表示しておく方法なんですが、
毎回全てのぷよを書き直した方が良いのでしょうか?
ぷよを落下させる際、
『ClearDrawScreen』?を使うと、
落下した後のぷよを再び表示しなくては、
いけなくなってしまいます。
毎回描き直すのが普通です。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月28日(火) 11:40
by モリブデン
毎回書き直す際、すでに地面に落ちてる『ぷよ』の位置と色は、
どのようにすれば分かるでしょうか?
すでに地面に落ちてる『ぷよ』は、どのように表示するのでしょうか?
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年6月28日(火) 11:46
by softya(ソフト屋)
モリブデン さんが書きました:毎回書き直す際、すでに地面に落ちてる『ぷよ』の位置と色は、
どのようにすれば分かるでしょうか?
すでに地面に落ちてる『ぷよ』は、どのように表示するのでしょうか?
画像ではなく構造体や配列などを使って位置や情報を管理します。
画像はあくまでプレイしている人に見せる情報で内部では別の形態で管理する必要があるわけです。
やはり、もう少し簡単な物から始められたらどうですか?
ぷよぷよは難易度が高いと思いますが。
Re: ぷよぷよ的な物を作りたいのですが…
Posted: 2011年7月01日(金) 20:36
by モリブデン
ありがとうございます^^
配列について調べたら
わかりました^^
ありがとうございました。