ページ 1 / 1
ランチャー
Posted: 2010年3月28日(日) 03:28
by yamataka
DXライブラリだけでランチャーを作成することは可能なのでしょうか?
あと、memset関数の良い点はどこですか?
質問ばかりですいません。
Re:ランチャー
Posted: 2010年3月28日(日) 06:11
by Ma
>DXライブラリだけでランチャーを作成することは可能なのでしょうか?
アプリランチャーとか、そのことでしょうか?
そのような機能はDXライブラリにございません。
ですから、DXライブラリで製作する理由はなくなります。
>あと、memset関数の良い点はどこですか?
何と比べてでしょうか?
比較対象の関数がないと。。。
Re:ランチャー
Posted: 2010年3月28日(日) 09:18
by yamataka
ランチャー作成の機能はないのですか。
わかりました、ありがとうございました。
それと、説明が下手ですみません。
「memset関数の良い点はどこですか?」とは、
「龍神録のソースコード内にはmemsetが書かれていて、それをそのままコンパイルするとRAMがとても使用されるのですが(例えば49%が80%になる)、memsetを消すとRAMが1%くらいしか上がりません。でも、龍神録で使われているということはmemsetは使った方が良いのでしょうか?」ということです。
Re:ランチャー
Posted: 2010年3月28日(日) 10:01
by Dixq (管理人)
> memset関数の良い点はどこですか?
簡単に構造体の中身が0クリア出来る事
> 悪い点
例えば構造体の中に浮動小数点(doubleなど)が含まれていると0クリアが保証されない。
ビットが全部0でも0.0にならない処理系がある。(NULLポインタも同様)
と言う感じでしょうか。
現在は初期化についてのみ言及するということで良いのでしょうか?
Re:ランチャー
Posted: 2010年3月28日(日) 10:12
by yamataka
>現在は初期化についてのみ言及するということで良いのでしょうか?
はい、初期化についてのみです。
memsetを使うと構造体の中身を一気に0にできるのですか!
回答ありがとうございました。勉強になりました。
Re:ランチャー
Posted: 2010年3月28日(日) 10:18
by Ma
>「龍神録のソースコード内にはmemsetが書かれていて、それをそのままコンパイルするとRAMがとても使用されるのですが(例えば49%が80%になる)、memsetを消すとRAMが1%くらいしか上がりません。でも、龍神録で使われているということはmemsetは使った方が良いのでしょうか?」ということです。
RAM使用率が変わるのが、私にとってはちょっとだけ珍現象に感じます。
(enemy とかは、構造体enemy_t実態の配列だからmemsetしてもしなくてもRAM使用率は変わらない気がしたんですがね。)
まぁ、このへんはおそらく私の勉強不足だとおもうので、他の方の指摘を待つとしておいて。
龍神録のソースコードは、全部見てないので推測しかできませんが、
それがないとデータが初期化されないとおもうので、ゲーム再スタートの時などに不具合が発生しそうです。
memset の役目は、ぐぐってもわかるとおり、指定された領域に指定されたバイト分だけ指定された値を指定します。
(指定指定うるさくてすいませんw)
データの初期化なしに再スタートすれば、ゲームオーバー時にいた敵が最初っからまた出現するわけでして・・・。
そういう理由でinit関数内の、memset とか結構大事だと思います。
さらに詳しいお話は、もっと詳しい方か管理人さん、お願いします。
//追記
>memsetを使うと構造体の中身を一気に0にできるのですか!
先に関数のことを軽く調べてから聞きに来てください。。。

Re:ランチャー
Posted: 2010年3月28日(日) 10:34
by yamataka
Maさん、わかりやすい回答ありがとうございました。
memsetは結構大事なのですね。
>先に関数のことを軽く調べてから聞きに来てください。。。
わかりました。次からは調べてから質問します。
Re:ランチャー
Posted: 2010年3月28日(日) 11:03
by バグ
>memsetを使うと構造体の中身を一気に0にできるのですか!
これって、環境や変数の型によっては、100%確実とは言えないんじゃなかったかな(^_^;)
Re:ランチャー
Posted: 2010年3月28日(日) 15:12
by y
構造体の中身を全部0にする場面は、意外と少ないです。というか、出来ない場面があります。
memsetは、せいぜいポインタ型の配列、整数型の配列くらいに使うと思えばいいのではないでしょうか。
構造体を初期化をしたい場合は、初期化関数を作ってあげるのが一番都合が良いです。
Re:ランチャー
Posted: 2010年3月28日(日) 15:48
by Dixq (管理人)
>バグさん
それって49815で言っていること以外にもあるんですか?
Re:ランチャー
Posted: 2010年3月28日(日) 17:06
by バグ
>>管理人さん
おっと、その書き込みを読んでませんでした。失礼しましたm(_ _)m