【初心者】スレを立てる前にココで質問を【Part20】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/09/29(火) 07:08:29ID:OO8C9kYOスレッドを立てる前にはローカルルールを読みましょう。
http://pc11.2ch.net/gamedev/
※ >>980 を踏んだ人は次スレ立てをお願いします。
【アップローダ・避難所・Wiki】
ゲーム製作技術板公式Wiki
http://wiki.game-develop.com/
ゲーム製作技術板公式アップローダ
http://gmdev.xrea.jp/
ゲーム製作技術板予備(機能停止中?)
http://yy13.kakiko.com/gamdev/
アップローダー予備
http://gamdev.hp.infoseek.co.jp/
gamdev.orgが落ちるたびにあげてみるスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1107022166/
0313名前は開発中のものです。
2009/11/17(火) 01:28:29ID:3pCkE9PE0314名前は開発中のものです。
2009/11/17(火) 02:45:30ID:1rtyKNW8実際の画面の配色を見てみないとどんなデザインが合うか検討つかないけど、
結構本気そうだし、アマチュアでも良かったらそのゲームに合いそうなデザインorその助言をしようか?
さすがにここではスレ違いだし、名前の所にアドレスを貼ってみた。
良ければどうぞ。
0315名前は開発中のものです。
2009/11/17(火) 08:17:13ID:cn3oHX7i>>312頼んでみたら?
0316名前は開発中のものです。
2009/11/17(火) 11:01:36ID:3pCkE9PE0317名前は開発中のものです。
2009/11/17(火) 15:55:17ID:hWpW9Zgbただの四角を綺麗にするの?
ツル科の植物をてきとうに絡ませるような感じでおk?
0318名前は開発中のものです。
2009/11/17(火) 19:42:17ID:HLuZj1fk適当なことを言うな低学歴。
0319名前は開発中のものです。
2009/11/17(火) 19:58:50ID:QV55hVjg0320名前は開発中のものです。
2009/11/18(水) 22:55:36ID:vrhmXAes「ツル科」などいう分類はない -> パースエラー -> 理解不能 -> 野暮なツッコミ
こういう流れだとしたら、脳の性能が悪いからかな?
「ツル科」などいう分類はない -> ツッコミどころ発見! -> 野暮なツッコミ
こっちだとしても、頭悪いね
0321名前は開発中のものです。
2009/11/18(水) 22:57:52ID:k1u1gloe0322名前は開発中のものです。
2009/11/18(水) 23:11:35ID:vrhmXAesと思いがちだけど、別に矛盾はないよね
何でもかんでもスルーしろとは言ってない
>>318やお前のようなクソなレスを馬鹿にする分には
そりゃ個人の勝手でどうぞ
0323名前は開発中のものです。
2009/11/18(水) 23:14:38ID:k1u1gloeお騒がせしました
0324314
2009/11/19(木) 05:35:34ID:aOkcC/Yjマトモにレスが付いてないし、釣りじゃなかったんだが反応の方も無いので一応。
メッセージ枠として無難なデザインに過ぎないけど、
背景を透明度の有る黒 枠は不透明に近い好みの1色 文字は不透明な好みの1色
使う色はなるべく黒・白を基本にもう1色などと少ない方が勝手に見栄えが安定する。
色は勘で作らずカラーパレットでググって、サンプルを見ながら色調を揃えるなど計画的に使う。
それでそっけなくて満足出来ないならば、どこか1辺だけ枠を無くしたり色味や形を変える。
右上だけに角取りをするorワンポイントを置いたりする。枠の一部をわざと少しだけ突き出す。など。
どんなゲームなのか解らんからよく使われがちなデザインでの話。で、現状に不満を持てるならセンスは磨けるはず。
諦めずにAmazonとかで本買って来て見よう見まねで手を動かせば誰でも成長はする。がんが。
0325名前は開発中のものです。
2009/11/19(木) 19:41:28ID:YLHEX+S10326312
2009/11/19(木) 22:27:14ID:7rUNhOL9とりあえずベース黒(すこし透明)に枠は白(不透明)で文字は白と黒の袋文字とかはやってます
基本読みやすさ重視だけれども、それだとそっけないなーと思ってたので…
色とか勘で決めてたので、今度から色調揃えてみるわ
とりあえず、本漁ったり他ゲーム見て勉強したりしてがんがってみる
レスありがとうー
0327名前は開発中のものです。
2009/11/22(日) 20:03:20ID:MB5dnDgT自分は情報系の大学2年で言語はC++を一通り習った所で、できればC++を使って作ってみたいと思ってます
何かちょうど良い解説書とかないでしょうか?
坂本千尋著のロールプレイングゲームプログラミングといった本が良いらしいのですが今は絶版になっているみたいで手に入らなそうなので・・・
もしくはHSPとやらを学んで作ったほうが楽だったりしますか?
0328名前は開発中のものです。
2009/11/22(日) 20:36:27ID:wKuwCJgN情報系の学生ならHSPの長所短所ぐらいは自分で評価しなさい。
0329名前は開発中のものです。
2009/11/22(日) 21:01:19ID:N6TMmKQz0330名前は開発中のものです。
2009/11/22(日) 21:45:15ID:x0jBp7McC++使えるならそっちでいいと思うよ
0331名前は開発中のものです。
2009/11/22(日) 22:40:53ID:GOKoLW920332327
2009/11/22(日) 23:19:12ID:MB5dnDgT>>328 >>329
ツクール系のものも考えてみたのですが、今回はプログラミングを使用してゲームを作りたいと考えてます
実際に使ったことはないのですが、どうやらプログラミング的な要素は無いように思えます
もしかしたらプログラミング的な要素がないという時点で自分は勘違いをしているのかもしれませんが・・・
HSPについては、すいません、自分で調べてみることにします
>>330
申し訳ありません、ソフトを作るといった時点で自分はまったくの初心者なんです
先にこのことを書いておくべきでした・・・
C++で作成できるという情報はありがたいのですが、まっさらな状態から何かソフトを設計するといった行為すら初めてなものでして・・・
こんな状態でもなにかしら自分の思いつく限りでソースを書き、試行錯誤していくべきなのでしょうか
>>331
14歳、というのは「14歳からはじめるC++わくわくゲームプログラミング教室」のことでしょうか
調べてみたところ、すぐにSRPGに繋がるものではなさそうですがC++でのゲーム設計の基礎が学べるようで、すごく気になりました
書店で探してみようと思います、有益な情報ありがとうございます
0333名前は開発中のものです。
2009/11/22(日) 23:24:57ID:x0jBp7Mc0334名前は開発中のものです。
2009/11/22(日) 23:28:37ID:YA9W724+0335名前は開発中のものです。
2009/11/23(月) 00:33:14ID:+PDJqU2Bまあ参考にはなるかも知れんが
0336名前は開発中のものです。
2009/11/24(火) 03:52:16ID:ACaH6Yw90337名前は開発中のものです。
2009/11/24(火) 04:40:21ID:Yv5cTTds俺はDXLIBの方選んだが
0338名前は開発中のものです。
2009/11/24(火) 09:51:31ID:STKTYU9D0339名前は開発中のものです。
2009/11/24(火) 12:41:16ID:UBQYebjm0340名前は開発中のものです。
2009/11/24(火) 13:18:10ID:5CvqamB+木・草・建築物をスキャンしてやれば
低コストでPS3対応実写系3DCGの製作が行えると思うですが、
実際のゲーム製作現場において
あまり使われていない(室内での彫刻スキャンのみ)のはなぜなのでしょうか?
ttp://www.krcnet.co.jp/tech/tech_3Dlaser01.html
やはり3Dレーザースキャナの価格が高いからなのでしょうか?
0341名前は開発中のものです。
2009/11/24(火) 14:03:10ID:iDm1reyZ0342340
2009/11/24(火) 17:15:50ID:5CvqamB+「クオリティが高い」という意味です。
0343名前は開発中のものです。
2009/11/24(火) 18:23:14ID:iDm1reyZ・木や草など風で揺れるものはスキャンできない
・ゲームには実際に存在しないオブジェクトが、たいていの場合登場する
・高いクオリティとはポリゴンの微細さのみによるものではない
0344名前は開発中のものです。
2009/11/24(火) 19:13:43ID:AApCK1M7これからも頑張ってほしい
0345名前は開発中のものです。
2009/11/24(火) 20:16:16ID:AUHoNChH0346名前は開発中のものです。
2009/11/24(火) 22:23:53ID:O7akk6aZ以下のような使い方はできないみたいです。
boost::shared_ptr<IDirect3D9> m_pD3D;
m_pD3D = Direct3DCreate9( D3D_SDK_VERSION );
たしかに普通にnewして入れるやり方と違いますし・・・
この場合、どのようにすればよいでしょうか??
0347名前は開発中のものです。
2009/11/24(火) 22:26:33ID:i8576o9O0348名前は開発中のものです。
2009/11/24(火) 22:48:37ID:CNN1XPTb0349346
2009/11/24(火) 22:48:41ID:O7akk6aZありがとうございます!
m_pD3D.reset( Direct3DCreate9( D3D_SDK_VERSION ) );
でエラーが出なくなりました!
しかし!今度は、上記で得たm_pD3DからIDirect3DDevice9を取得する関数がうまくいきません(涙)
SPtr<IDirect3DDevice9> m_pD3DDev;
m_pD3D->CreateDevice(
D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDev );
生ポインタを取り出せばよいかも、と思って、最後の引数を以下のようにしてみましたが、
&( m_pD3DDev.get() )
「'&' に左辺値がありません。」と怒られてしまいました・・・。
どのように与えればよいのでしょうか??
0350346
2009/11/24(火) 22:53:29ID:O7akk6aZ#define SPtr boost::shared_ptr
0351名前は開発中のものです。
2009/11/24(火) 23:18:32ID:i8576o9O0352346
2009/11/24(火) 23:45:30ID:O7akk6aZありがとうございます!
コンパイルが通るようになりました!
しかし!終了時に以下のようなエラーが出てしまいます・・・ orz
Debug Assertion Failed!
Program: xxx.exe(プログラムのパス)
File: dbgdel.cpp
Line: 52
Expression: _BLOCK_TYPE_IS_VALID( pHead->nBlockUse )
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
どうも、m_pD3D.reset( Direct3DCreate9( D3D_SDK_VERSION ) )がマズいようなんです。
そこの記述以外、コメントアウトして確認しました。
どうも、上記のエラーは多重deleteで起こる例があるようなんですが・・・
DirectX系の変数にshared_ptrはけっこう厄介でしょうか?
素直にSAFE_DELETEマクロで対応しておくか、それともCComPtrにするか・・・
他の方はどうされているか、気になります。
0353名前は開発中のものです。
2009/11/24(火) 23:58:20ID:i8576o9O0354名前は開発中のものです。
2009/11/24(火) 23:59:01ID:i8576o9O0355名前は開発中のものです。
2009/11/25(水) 00:18:03ID:FbKntm27com_ptr_t使うでしょ
地味な嫌がらせすんなよ
0356346
2009/11/25(水) 00:45:40ID:b8pKhHr5教えてくださってありがとうございます!
>>355
boost::intrusive_ptrやcom_ptr_tなんてものがあったんですね!
教えてくださってありがとうございます!
0357346
2009/11/25(水) 19:33:56ID:b8pKhHr5今日、早速、_com_ptr_tを導入してみたのですが、疑問があります。
_com_ptr_t<_com_IIID<IDirect3D9, &IID_IDirect3D9 >> m_pD3D;
で、実際にDirect3D9オブジェクトを取得するとき、
m_pD3D = Direct3DCreate9( D3D_SDK_VERSION );
でも、エラーやメモリリークの警告なく動きましたが、以下のようにAttachメソッドを使って、
m_pD3D.Attach( Direct3DCreate9( D3D_SDK_VERSION ) );
としても同様でした。
これってどちらでも同じということですか??
だとすると、Attachの存在意義というのは何なんでしょう??
0358名前は開発中のものです。
2009/11/25(水) 23:52:09ID:txSAQlU4何をどう質問したらいいかもわかりません
だから
ttp://homepage2.nifty.com/natupaji/DxLib/program/ActionSample.cpp
オブジェクト指向でこれと同じものを作ってソースください
お願いします
0359名前は開発中のものです。
2009/11/26(木) 00:22:24ID:FX3L1wrJ0360名前は開発中のものです。
2009/11/26(木) 01:14:35ID:O1ccXkKBプレイヤーキャラとして、32x32のドット絵があるんだけど、これを2倍に拡大して、64x64として表示させてるんだ。
本当は64x64のドット絵を用意できればいいんだけど、自分の技術力が追い付かないので苦肉の策。
さて、この時、プレイヤーキャラ以外の部分、
例えばマップチップなんかも同じように2倍表示させないと違和感が残っちゃうかな?
0361名前は開発中のものです。
2009/11/26(木) 01:24:38ID:PfXzni20往年の過疎板に人が増えてるのかな
0362名前は開発中のものです。
2009/11/26(木) 01:48:29ID:ZnyqECYM> 往年の過疎板
ttp://dictionary.goo.ne.jp/srch/all/%25B1%25FD%25C7%25AF/m0e/
0363名前は開発中のものです。
2009/11/26(木) 01:55:19ID:ZnyqECYM>>360
全部二倍にするって事?
もちろんそんな事する奴いないから経験談に基づく回答は期待できないと思うよ。
で想像するにマップチップを二倍にしようがしまいが、どっちもどっち。
キャラだけ2倍ならすぐばれる。
全部2倍ならしばらくはばれないが、違和感を感じさせるだろうね。
でもゆくゆくはちゃんとした64x64でキャラを用意するなら、
下手にマップチップ2倍にしないほうが良いと思うよ。
じゃないとマップチップを元の倍率に戻すときに、全部敷きなおすハメになる。
0364名前は開発中のものです。
2009/11/26(木) 02:08:55ID:3yAXikhn0365名前は開発中のものです。
2009/11/26(木) 06:29:41ID:5GTdN3Md0366名前は開発中のものです。
2009/11/26(木) 15:10:44ID:O1ccXkKBとりあえず、バレるとかバレないとかは問題じゃないです。
そういう意味での違和感という意味でもなかったつもりです。
レトロ感を出すために、わざとドットを荒くしてるゲームは見かけるのですが
僕が考えていた方法とは全く違う手法で実現されているということですね。
ありがとうございました。
0367名前は開発中のものです。
2009/11/26(木) 21:02:58ID:X3yV1HjG> そういう意味での違和感という意味でもなかったつもりです。
だったら質問の仕方がおかしい。質問スレに来る以前の問題だ。
0368名前は開発中のものです。
2009/11/26(木) 21:09:03ID:gOvUHsCw演出とか、あとはボスキャラなんかだと拡大表示してるのは見たことある
0369名前は開発中のものです。
2009/11/26(木) 21:19:26ID:PfXzni204倍くらいに拡大して表示するとする。それがレトロっぽいかというとそうは思えないだろうね
つまり解像度の違うものを一緒に表示することそのものはレトロぽさの表現方法にはなりえないんじゃないか?
レトロゲーム=レトロなハードで動くものだから、低解像度、少色数、PSG・FM音源など、を感じさせれば
レトロな雰囲気にはなるとは思うが
0370名前は開発中のものです。
2009/11/26(木) 21:59:47ID:r4OxX25G考えうる二つの手法は
1. 一定ドット以内なら段差を上れるように+細長い床を沢山置く
2. 「床パーツ」を作り、独自の動作をさせる
とかなんだけど、何か他にいい方法あるかしら
0371名前は開発中のものです。
2009/11/26(木) 22:12:39ID:3yAXikhn0372名前は開発中のものです。
2009/11/27(金) 00:41:34ID:klVWX06Tスーパーマリオ3辺りではどうやって実装してんのやら。
やっぱ、斜めに走らせているのかね?
0373名前は開発中のものです。
2009/11/27(金) 00:55:17ID:klVWX06Tやっぱ、縦と横とで別々に判定するのかね?
0374名前は開発中のものです。
2009/11/27(金) 01:18:37ID:9X6aatWOキャラから下方向へレイを飛ばして地面高さを検出する。
レイの位置で、傾斜具合と段差具合を感知できる
0375名前は開発中のものです。
2009/11/27(金) 01:57:30ID:ciI0pQppマリオやロックマンを参考にデザインするなら2番がいいと思うよ
0376名前は開発中のものです。
2009/11/27(金) 03:25:27ID:K0drbZ3q簡単な計算で済みそうだけど
0377名前は開発中のものです。
2009/11/27(金) 03:53:31ID:ZMw5vuW4/ ̄ ̄
人→ /
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
横キーを押したまま
→人
人/ ̄ ̄ ̄
人→ /
 ̄ ̄ ̄ ̄ ̄ ̄
坂を登らなきゃならないのよね。
0378名前は開発中のものです。
2009/11/27(金) 04:23:39ID:K0drbZ3q/| | ̄ ̄
/ | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | |
1 | |2 | | 3
の3つのパートに分けて考えるかな
キャラの右端が1→2のパートに掛ったら
キャラの位置の地面のY軸計算したりしてやったりしたらいいんじゃないの
0379名前は開発中のものです。
2009/11/27(金) 04:53:37ID:Ce0qb9f7逆に3→2で左に向かうなら移動速度上げる
Y軸は2上にいるときはX軸から常に計算する
あとは2上でジャンプしたときのことも考えないといけないし、色々めんどくさいよな
0380名前は開発中のものです。
2009/11/27(金) 05:11:27ID:K0drbZ3q─÷/分掛ければいいだろうね
この45度の場合は1/√2を
別の角度の時も同様にして
0381名前は開発中のものです。
2009/11/27(金) 08:44:13ID:oVvXQuEWoperator=()はAddRef()を実行する。
Attach()は実行しない。
>m_pD3D = Direct3DCreate9( D3D_SDK_VERSION );
これだと、Direct3DCreate9()から返った時点で参照カウント=1、
m_pD3Dに代入した時点で+1、つまりリークしている可能性がある。
>m_pD3D.Attach( Direct3DCreate9( D3D_SDK_VERSION ) );
これは、Attach()後、参照カウント=1で正しい値だ。
Attach()は既に生成されているCOMポインタを、
スマートポインタに入れる際用いる。
0382名前は開発中のものです。
2009/11/27(金) 09:59:45ID:YTfLn1jQ0383名前は開発中のものです。
2009/11/27(金) 11:31:43ID:B55jAkdN細長いブロック重ねると汎用性はあるけどそれに対処できないっぽいし
斜めブロック作るのが一番いいっぽいか…
0384名前は開発中のものです。
2009/11/27(金) 12:37:21ID:K0drbZ3q0385名前は開発中のものです。
2009/11/27(金) 17:06:09ID:kH+0vKoL0386名前は開発中のものです。
2009/11/27(金) 19:05:57ID:mZhrlxRy3Dゲームで4分木(平面)を使うか8分木(立体)を使うか、どっちが効率が良いか悩んでいます。
みなさんはどういう判断基準で使い分けてらっしゃるのでしょうか?
0387346
2009/11/27(金) 19:22:34ID:e6wpKS0bなるほど!そういうことだったんですね!
すごく勉強になりました!
早速修正してきますw
ありがとうございました!!
0388名前は開発中のものです。
2009/11/27(金) 19:59:55ID:8DiO8Iwyステータス管理の構造体に
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
unsigned char
・
・
・
アホである。体力のように、数値が問題になるやつは最低限確保しないといけないが
ステータス異常は10個以上あってもshort int1つだけでよいというのに!
0389名前は開発中のものです。
2009/11/27(金) 20:06:30ID:h8Solbwrで、質問は?
0390名前は開発中のものです。
2009/11/27(金) 20:16:35ID:8qehWSslステータス異常が抵抗値や時間によって直るようなゲームならいいんじゃないか?
0391名前は開発中のものです。
2009/11/27(金) 20:30:52ID:ZMw5vuW40392名前は開発中のものです。
2009/11/27(金) 21:11:47ID:oVvXQuEW4分木と8分木ではメモリの喰い方がアホほど違う。
4分木で十分ならそっちを使うべきだろうな。
たとえ3Dであっても、キャラクタが地表を這いずり回るだけの
ゲームシステムなら、高さ方向の分割は殆ど意味がない。
だったら、このゲームには4分木で十分ということになる。
0393名前は開発中のものです。
2009/11/27(金) 21:46:42ID:kH+0vKoLBとか赤黒とかで全部やっちゃうのかと思ってたよ
0394名前は開発中のものです。
2009/11/27(金) 23:17:42ID:GByxMg7v3DCGはできるが、プログラミングについては全くの初心者。
簡単なものから始めたいのから最初はHSPにしようかと思うのだが、後々C++とDirectXとかに乗り換えれるもんかね?
最初からC++とDirectXのほうがいい?
0395名前は開発中のものです。
2009/11/27(金) 23:26:36ID:K0drbZ3qC++は難しいと思うがなあ
やるんならCから始めた方が良くないか、+DXLib
0396名前は開発中のものです。
2009/11/27(金) 23:30:49ID:GByxMg7vC++じゃなくても良いのか。
とりあえずCとDirectXで2Dシューティングができるまでがんばってみる。
0397名前は開発中のものです。
2009/11/28(土) 00:00:58ID:b1OkGnWMCで難しいと感じたらBASICで始めるのも方法だよ
少し出来るようになれば、どの言語でも出来るようになる。
プログラムが少しでも書けるまでが最初の壁
ゲームアプリを作れるまでが次の壁
新しいゲームのアイディアを出すのが壁
超えるべき壁がいくつもあるけれどもがんばりなさい。
0398358
2009/11/28(土) 00:03:44ID:z8tWkRBO少なくともわてのような初心者のやることやないで
0399名前は開発中のものです。
2009/11/28(土) 00:05:53ID:QR+JPnNNそもそもコンセプトが違っていて、DirectXは
「マシン依存を最小限にして、描画や入力等をする」
ためだけのものと思ったほうがいい。
そのためきめ細かい使い方ができる分、手順が煩雑だ。
HSPは使ったこと無いけど、
細かい考えないで済むようにするもの。だよ、きっとw
というわけで、
言語に拘らないなら「HSP TPS」や「HSP TPS」でぐぐれ。
0400名前は開発中のものです。
2009/11/28(土) 00:43:42ID:QR+JPnNN「HSP TPS」や「HSP FPS」だな。どう考えてもorz
0401386
2009/11/28(土) 05:35:37ID:XgZJpSwbなる程。高さが被る事もそう多くはないので、4分木で分割数を増やす方が効率的なのですね。
ご助言感謝! >>393 も情報が参考になりました。感謝っ
0402名前は開発中のものです。
2009/11/28(土) 14:25:19ID:w9vdp9I4最初からC++とDirectX使ってもいいけど、
その場合はDiectXをそのまま叩くんじゃなくてseleneみたいなラッパーを使うと
幸せになれる場合もある。
0403名前は開発中のものです。
2009/11/28(土) 20:14:51ID:/TG0tfuk0404名前は開発中のものです。
2009/11/28(土) 21:51:13ID:RSQKd3RZウェイト
ウェイトやカウンタを、「加算で」やるやつ
アホである。ウェイトとは、あるタスクを待たせることだが
そこで加算してどうするというのか。その加算した値が規定数になるまで待つというのか。
加算するのは何がやるのか。CPUである。
待ってる間にCPUを使うのか。
その間他のタスクが動けない
ではないか。
まさしく真性である。
0405名前は開発中のものです。
2009/11/28(土) 22:58:07ID:rcUExsx30406名前は開発中のものです。
2009/11/29(日) 01:41:40ID:qJTyqa7X0407名前は開発中のものです。
2009/11/29(日) 01:43:03ID:GrR16dKF0408名前は開発中のものです。
2009/11/29(日) 04:26:47ID:joetfkc7空間分割の4分木なら分割の方法から変えないと無理な気がする
0409名前は開発中のものです。
2009/11/29(日) 14:55:06ID:l4cjGc2r例えばステージデータでブロックを沢山置いたりする場合
構造体の配列使うより連結リスト使ったほうがいいの?
0410名前は開発中のものです。
2009/11/29(日) 15:29:25ID:VrqeXLDDその1
並びに意味があるとき。
メッセージキューのようなFIFO(ファーストインファーストアウト、先入れ先出し)など。
データをリストの前に追加、後ろに追加、AとBの間に追加、など追加する時点で
ソート状態が保たれているからソートしなくてもいい。
その2
配列要素を全検索するより、リストに繋がっているものだけ検索すればその分速い。
さらにその1の順序も利用できる。「Z」の付く名前は後ろから検索すれば速いなど。
その3
メモリが連続していなくてもいい。
動的に確保した構造体データをあたかも配列のように扱える。
ステージデータのブロックの例は微妙だ。
配列は計算で簡単に移動先のマスが割り出せるが、リストは検索する必要がある。
四分木などのアルゴリズムで、法則によって簡単に割り出すことも可能だが
初心者には小難しい話になるので省略。
0411名前は開発中のものです。
2009/11/29(日) 16:00:03ID:l4cjGc2r自分の場合だと特に使う必要も無さそうね…
0412名前は開発中のものです。
2009/11/29(日) 17:45:06ID:tzBSBmZkその1のFIFOやLIFOは循環配列でも実現可能だしその方が高速
リストのメリットは、連続データの途中にデータを挿入する場合に処理が高速なことで、連結リストを使えばソート状態が保たれるというのは間違い
追加の度にソート状態を保つ必要があるのであれば、配列も単純連結リストも使用せず、2分木などの木構造を使用する
ただし、木構造は挿入・削除処理にコストがかかるので、場合によっては、データを配列にためるだけためて、1度ソートしてから、2分探索などを使った方がよい場合もある
その2に書かれていることはリストの特性とは関係がない
この場合のメリットは、データが大量にある場合に、リストで行うとメモリの節約ができることぐらいかな?
ステージデータの場合、必要な要素数がおそらく固定で順序も関係ないので配列で行うべき
リストで管理するメリットはおそらくない
4分木を使用するのは、動的なオブジェクトの衝突判定用の空間分割で、マップデータの配置には使用しない
■ このスレッドは過去ログ倉庫に格納されています