トップページgamedev
1001コメント378KB

【初心者】スレを立てる前にココで質問を【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/
0045名前は開発中のものです。2009/10/03(土) 20:09:17ID:IuRMsMN4
>>44
VisualStudioというヤツではだめだと?
0046名前は開発中のものです。2009/10/03(土) 20:25:38ID:NPoZwTjn
>>45
VisualStudioを動かせる環境があるならそれでも良いと思うよ。
0047名前は開発中のものです。2009/10/03(土) 20:51:03ID:IuRMsMN4
>>46
PCスペックの問題もあるのか。
一応VisualStudio C++をインストールしたんだがユーザー登録とかで、
英語ばかりのページに飛ばされるとか解説ページと大分違う状態になってしまった。

やはりCOBOLをやった程度の自分では難しいんだろうな。
0048名前は開発中のものです。2009/10/03(土) 20:59:46ID:NPoZwTjn
>>47
gccはもっと難しくなるから、あきらめてVisualStudio使いなよ。
なんだかんだ言ってC/C++でWindows系のゲーム作るなら今はそれしか選択肢が無いと思うよ。
0049名前は開発中のものです。2009/10/03(土) 23:56:23ID:NAEtpbyN
ふと、ツクールシリーズという選択肢を思い出したわけだが・・・
0050名前は開発中のものです。2009/10/04(日) 00:08:43ID:0Ah/xSEi
いや、むしろHSPかもしれんな
0051名前は開発中のものです。2009/10/04(日) 17:52:49ID:7G1vJO2V
>>31>>32>>33
そうですか、確かにJAVAのサンプルから拡張していっていいって言われたけど
中身の意味を理解するのに時間かかりそうだしな・・・
見て考えます。
0052名前は開発中のものです。2009/10/05(月) 01:26:46ID:mQYy5BRf
シミュレーションやRPGで
経営状況や主人公の内部パラメータと呼ばれる
データ群がごっそりあると思いますが,
そういったものの管理は
実際のゲーム開発でどういった形でなされるものですか?

すべてグローバル変数で持たせる?
データクラスを作ってアクセッサで操作を許す

(わかりにくかったら,追記します汗
0053名前は開発中のものです。2009/10/05(月) 01:41:35ID:rxuxGtVW
>>52 マルチ
0054名前は開発中のものです。2009/10/08(木) 06:02:52ID:MlEkLHJN
すみませんC++で
キャラクターのHPを3桁+小数点第二位 まで扱うのですが、
floatは割算や掛算をすると、誤差で==のif判定が思い通りに行かない場合が有ると聞くのですが、

intで5桁の整数として扱い、表示する時だけ何らかの工夫をすべきでしょうか?
それとも気にせず普通にfloatで扱うべきでしょうか?

floatは判定に使うには危険なのでしょうか。
0055名前は開発中のものです。2009/10/08(木) 06:14:02ID:9+tNZIVx
floatでもいいと思うけど、判定に使うんだったら
例えば if (f == 5) をしたかったら
if ( (f > 4.999) && (f < 5.001) ) するなり工夫すれば大丈夫じゃないかな
== だと float型はきっちり5にならない場合がある(5だと思っても5.000001だったりする)から
0056名前は開発中のものです。2009/10/08(木) 07:21:34ID:Dg0DwQAA
>>55
なるほど、そういう誤差なのですね。
数値を揃え忘れないよう注意するintか、判定時に常に注意するfloatかという感じですね。
ありがとうございます。
0057名前は開発中のものです。2009/10/08(木) 07:54:35ID:SLa/O5oj
浮動小数点ってできるだけ避けてしまうな
まずintで考えて、だめなら固定少数点、どうしても必要な時だけfloat
floatってCPUによっては計算結果が変わることもあるらしいから、扱いやすいintをまず考える
0058名前は開発中のものです。2009/10/08(木) 11:03:38ID:+J4cYAi7
そこでfloatにするならdoubleのよーな気がする
0059名前は開発中のものです。2009/10/08(木) 11:44:03ID:sb7b+7HP
>>57
同じく
内部的にint5桁にしておいて、表示は3桁+小数点+2桁にしてしまう、とか・・・。
正直にfloatで持つ必要はないと思うんだ。
0060名前は開発中のものです。2009/10/08(木) 22:34:50ID:eUC0RCzt
でもDirect3Dのインターフェイスがfloatを取るんだよね。
castを濫発するよりもfloatにしたくなる。
0061名前は開発中のものです。2009/10/09(金) 15:47:07ID:S+xmTs6Z
ゲームにMP3ファイル使っちゃいけないのですか?
0062名前は開発中のものです。2009/10/09(金) 15:52:01ID:h2K5B8t5
>>61
いけないんじゃなく、ライセンス料払えってだけ
非商用か5000以下の配布なら問題なし、とかじゃなかったけ?
詳細はググって
0063名前は開発中のものです。2009/10/09(金) 15:52:29ID:/buBQdg7
>>61
MP3関連技術は特許で守られているので、特許保持者の提示するライセンスに従って利用料金を支払う必要がある。
1ゲームタイトルにつき、2500ドルくらい必要らしいよ。
http://www.mp3licensing.com/royalty/games.html

5000本未満なら無料らしいけど。
0064名前は開発中のものです。2009/10/09(金) 22:13:45ID:vDLrjTrl
ogg vorbis
0065名前は開発中のものです。2009/10/09(金) 22:36:05ID:S+xmTs6Z
デコーダーを含まないプログラムでライセンス必要?
WindowsでMP3のデコーダー持ってて再生してるからMSがライセンス持ってればいいのではないですか?
そのページのゲームという項目はゲーム機本体がデコーダー持ってなくてプログラム自体に載せる場合に必要なライセンス料ではないですかね
0066名前は開発中のものです。2009/10/09(金) 23:28:17ID:F+uTkbTL
>>65
MP3固有の契約内容は知らないけど、特許使用料って利用分野を限定することで安く済ませることがあるから
ちゃんと確認取っといたほうがいいよ。

確かGIFの特許問題のときも、WindowsAPIのOleLoadPictureでGIFをデコードするにしても
ユニシスはアプリケーション開発者に個別契約を迫っていたと記憶してる。通ったかどうかは知らん。
0067名前は開発中のものです。2009/10/09(金) 23:33:19ID:vDLrjTrl
全部実行ファイルに埋め込んで隠蔽してしまえばよい
0068名前は開発中のものです。2009/10/09(金) 23:47:28ID:/buBQdg7
>>65
デコーダを含む含まないじゃなくて、
MP3の技術を使ってエンコードされたコンテンツ(つまり、MP3形式の音楽ファイル)を含むゲームを
ばら撒くのにライセンスが求められる。

…というように読める文章がMP3のサイトにあった。



>9) mp3・mp3PRO・mp3surroundをゲームで使用する場合は、ライセンスを取得する必要がありますか?
>
>はい、mp3・mp3PRO・mp3surroundでエンコードされたゲームコンテンツは、タイトル毎に実施料がかかります。但し、ひとつのゲームタイトルの販売数量が5,000コピー未満の場合は、実施料は発生しません。
http://www.mp3licensing.jp/help/developers.html#9
0069名前は開発中のものです。2009/10/10(土) 01:57:31ID:F4DT3FUU
じゃあやはりMP3は駄目ですね

MP3と全く関係ないけどAACではこう書いてあります
http://www.vialicensing.com/jp/Licensing/AAC_FAQ.cfm?faq=1#1

これを見て勘違いしそうになりました
0070名前は開発中のものです。2009/10/10(土) 03:46:14ID:JWW+S3LL
同人なら気にするまでもない、企業ならMP3以外を検討したほうがいい、くらいか。
0071名前は開発中のものです。2009/10/10(土) 04:00:04ID:F4DT3FUU
あ、販売数量って書いてあるからフリーウェアならいいのか
そして4999本限定でシェアウェアの完全版出して、完売したら別タイトルとしてリメイク版であらたに4999本限定(ry
0072名前は開発中のものです。2009/10/10(土) 04:36:00ID:OoP32YCd
初歩的な質問ですみません。
テキスト形式の設定ファイルを、データ間はコンマで区切り、行はfgets()で改行文字で判別しています。
これをバイナリ形式にする場合
データの区切りや行はどう(何で)表現、判別するのが好ましいのでしょうか?

あと、バイナリ形式のメリットとは、テキストで255だと=3バイト、バイナリならば255までは=1バイト という事ですよね?
完全に文字オンリーの場合はバイナリ化してもサイズを小さくする効果は無いと思っているのですが(文字コードですし)
これは間違っていないでしょうか?
0073名前は開発中のものです。2009/10/10(土) 05:28:56ID:rCisCYzo
>>72
テキスト・バイナリってのは解釈の問題で、本質的にはどちらも同じデータの列だよ。

おそらく、データの圧縮を目指しているんだろうけど、
バイナリ化して0〜255まで全部使おうと思った場合、終端子の区別が付かなくなります。
そのため、データの区切りという概念を捨てて、固定長フィールドに読み込んだ方が良いです。
文字列であれば、文字列長+文字列、というデータ形式にしておく。

次に、バイナリ形式のメリットについてですが、文字オンリーのものを圧縮したいと考えた場合は、
素のデータを扱うよりも、zipか何かで圧縮する方法を考えた方がいいです。
0074名前は開発中のものです。2009/10/10(土) 06:29:21ID:YtPBh4Ct
>>72
サイズのメリットはあまり意味はないね
今はHDDもメモリも足りなくなることはそうそうないので、考えられるのはHDDへのアクセスラグくらいで、
それもゲーム中に10MBを超えるファイルを頻繁に読んだりするような場合でなければ、バイナリにするサイズのメリットはない

直接的な違いはテキストエディタで閲覧・編集可能かどうかかな
たとえばwidowsのiniファイルはシステムでも使用するが、テキストファイルなのでユーザーでも編集可能
これがバイナリだと見たり編集したりするのはちょっと面倒になる
ゲームの場合は見られたくないデータのときにバイナリ化(加えて暗号化)したりする

他にはメモリイメージを保存したいときなどはバイナリだとそのまま扱えるので使うことも多い(BMP画像とか、クラスのシリアライズなど)

バイナリファイルの場合の区切りの方法は>>73も触れてるけど、固定長フォーマットにするか、サイズ+データなどの可変長の方法がある
固定長はファイルの途中からでも読めるのでランダムアクセスに強い半面、プログラムから書き換えを行う場合はファイルへのデータ格納効率が悪くなることがある
逆に可変長だとデータの格納効率がよい半面、シーケンシャルに最初から読まないといけないのでランダムアクセスが必要な場合は向かない
いいとこどりで、可変長フォーマットにインデックスを付けて途中からでも読めるようにする方法もあるが、上の方法に比べ処理が複雑になる

などのそれぞれの特性を考慮してどうやって保存するかを決める
0075名前は開発中のものです。2009/10/10(土) 06:41:12ID:oVNZpqqk
>>73
固定長で扱うのが基本となると・・
細々と色々なデータを並べる場合は、バイナリ形式はかなり手間が増えるんですね。
大きくパターンの有るファイル向きなようですね。

文字群は圧縮形式を利用した方が良いんですね。
ありがとうございます。色々為になりました。
0076名前は開発中のものです。2009/10/10(土) 10:17:52ID:KKcN9lBS
バイナリ形式のほうが何かと楽だと思うんだけど。
通常、構造体に放り込む形になるでしょ。
0077名前は開発中のものです。2009/10/10(土) 13:38:00ID:Pkw5pR5D
ちょっと昔を振り返れる豆知識
リセットボタン絡んだ裏技

昔のタミコンゲームなどで、どこかのボタン入力をしながらリセットボタンを押すと
裏技が発動する、などというものがよくあったが、あれはどうやって実現しているのだろうか。
普通に考えればリセットした時点で入力などが失われて何の判定も出来ないように思える。

これは、ソフトウェアリセットだからできるのである。

電源を入れる/切るというのはハードウェアリセットであり、すべてのレジスタ値が初期値に戻る。不定だったり0だったり様々だ。
こういう場合、CPUの前の状態がどうだったかなど覚えておきたくても覚えていられない。

が、リセットボタンによるリセットはソフトウェアリセットであるから、保証されると規定されているレジスタの値は保持される。
そのため、CPUが、「俺はリセットされたのかどうか」を覚えていられるのだ。

だから、リセットボタンを絡ませた裏技が可能だった。
今でもそうした規則は同じなので、やろうと思ったらできないでもないが、

ゲームより先にOSがまず駆動する

ものは無理といってよい。
OSがCPUの記憶を抹消する、ますレジスタを全部初期化する
というものは不可能だ。
0078名前は開発中のものです。2009/10/10(土) 14:37:12ID:oVNZpqqk
>>76
そうなのですか;
不規則な長さの文字列を区切りの文字なしに見分ける方法が想像できないせいで
そう感じてしまうだけなのですね。失礼しました;
0079名前は開発中のものです。2009/10/10(土) 14:53:02ID:oVNZpqqk
すみません、また初歩的な質問になるのですが、

多重のforそのものを何度も何度も呼び出すような処理が有るのですが
for(int i=0; i<100; i++){
 for(int j=0; j<100; j++){ 〜処理〜 }
 for(int j=0; j<50; j++){ 〜処理〜 }
 for(int j=0; j<200; j++){ 〜処理〜 }
}
この場合、for内で変数i jを宣言してしまうと
呼び出した回数分無駄にメモリを消費するなんて事は起きるのでしょうか?
スコープが外れたら開放されると学んだ気がしてふと不安に・・。

変数i jはforの外で宣言した方が良いのでしょうか?
0080名前は開発中のものです。2009/10/10(土) 14:56:56ID:I63lc7/x
たいてい使いまわす様にコンパイルされるんで大丈夫
0081名前は開発中のものです。2009/10/10(土) 15:21:43ID:oVNZpqqk
>>80
たいてい・・となると必ずでは無いのですね;
少し不安が残りますが基本は大丈夫なのですね。ありがとうございました。
0082名前は開発中のものです。2009/10/10(土) 18:13:04ID:DTxrzyVo
気になるならあらかじめ宣言しておけばいいだけでしょ?
最もそんな数ステップで済む宣言を気にするよりも
処理全体を見直して数千ステップを減らしたほうが効率いいけどな
0083名前は開発中のものです。2009/10/10(土) 20:11:55ID:YtPBh4Ct
>>79
そのくらいのことはここに書き込む手間で調べられるよ

  int a=0;
  printf("%p ",&a);

  for(int i=0;i<2;i++){
    for(int j=0;j<2;j++) printf("%p ",&j);
    for(int j=0;j<2;j++) printf("%p ",&j);
  }

  int k=0;
  printf("%p ",&k);

結果:
0012FF78 0012FF6C 0012FF6C 0012FF68 0012FF68 0012FF6C 0012FF6C 0012FF68 0012FF68 0012FF74

使いまわされてない。w
ただし一つ上のスコープ抜けるか同スコープ内で繰り返しの同じコードで初期化するときは使いまわしてる。
VC8のコンソールアプリのリリースビルド、最適化無効。
0084名前は開発中のものです。2009/10/10(土) 20:13:54ID:YtPBh4Ct
ちなみに、最適化をプログラムサイズ最適に変えても結果は変わらず
0085名前は開発中のものです。2009/10/10(土) 21:05:13ID:JvaG45yk
>>82
両方の書き方を混在させてしまっていてつい気になって仕方なくなってしまい、すみません。
処理全体の効率化方法・・確かに学ぶすべを探さないとまずい気がしてきています。

>>83-84
コンソールで簡単にアドレスを書き出して確認できるのですね。
今後はそれで確認させて頂こうと思います。確認して頂きありがとうございます。
0086名前は開発中のものです。2009/10/11(日) 12:28:49ID:JmOGIcGR
>>78
ものによるだろうけど、普通ファイル保存時の文字列は固定長にしておく。
いちいち可変長にすると、後ろのデータも平行移動するからめんどいし。
何らかの名前の文字列を保存しておく程度なら64バイト程度の
固定長でもせいぜい数十バイト程度のロスしか出ない。
数百文字の及ぶような文字列なら考えたほうがいいかも知れんが。

>>80
最近のコンパイラは頭がいい。その程度のことならコンパイラに任せればよろしい。
素人が無理に最適化するとかえって遅くなるケースすらある。
そもそもそのくらいのロスなんてカスみたいなもの。
0087名前は開発中のものです。2009/10/11(日) 13:25:59ID:lfN6dXef
>>86
1バイトのデータが数十並ぶ所と、24バイト必要な文字のデータが数箇所存在する所が有るので
この場合はロスが結構大きくなってしまいそうですが、
固定長で結局ロスが減らせる事の方が多いのですね。

>無理に最適化するとかえって遅くなるケースすら
そういう事も起こりうるんですね。覚えておきます。
ありがとうございました。
0088名前は開発中のものです。2009/10/11(日) 21:08:44ID:cCYKtnNG
そのデータの構成が固定的なら、1バイトのエリアと24バイトのエリアを別に保存すればOK
いずれにしても、すべてを同じ固定長で保存したとしても、24 * 数十 Byte = 数KByte の無駄ができるのみで、
今のPCの性能に比較して十分に無視できるレベル
0089名前は開発中のものです。2009/10/11(日) 23:01:00ID:cpsVifcS
STGで球を撃つための処理を作ったら
0度で弾が→に飛びますが
BulletMLを採用している白い弾幕くんだと0度で↑に飛びます。
・・0度で上に飛ぶようにすべきでしょうか。
0090名前は開発中のものです。2009/10/11(日) 23:46:54ID:alNFUCK3
BulletMLのサンプルってどれも縦シュー向けっぽいよね。
縦シューなら↑を0度にしても良いかもね。
0091名前は開発中のものです。2009/10/12(月) 07:27:30ID:ABYO4iSf
クラスA,Bが互いに通信する方法はどれがいい?
(1)ハンドルを使って互いのアドレスを知る
(2)メッセージもどきを作る
0092名前は開発中のものです。2009/10/12(月) 09:43:28ID:DQ2PgKtU
>>91
ものすごいケースバイケース。
他にもmediatorパターンとかあるし。
0093名前は開発中のものです。2009/10/12(月) 09:43:50ID:BFBkm5Cz
(2)ってどんなのを想定してる?
0094名前は開発中のものです。2009/10/12(月) 10:54:52ID:PKR9Rh1x
mediator調べてみた、A,B専用クラスってことか
(2)はWin32のメッセージなかんじ、効率が悪くなるオールマイティ
0095名前は開発中のものです。2009/10/12(月) 11:27:08ID:BFBkm5Cz
それって、メッセージループやらディスパッチャを用意するってことだよね
それは、3行の質問に1レスで応えられるような規模の問題じゃないと思うが。。
0096名前は開発中のものです。2009/10/12(月) 15:42:28ID:AQICrxba
>>91
互いに通信した時点で負けだと思う。
どちらか一方通行が設計としては楽。
0097名前は開発中のものです。2009/10/12(月) 18:15:29ID:8kB2RrDz
1フレームあたりの移動量が物体の厚さを超えるとき
(速度 / fps = 移動量 > 対象物体の厚さ + 自身の厚さ のとき)
当たり判定されないで通過しますよね?
0098名前は開発中のものです。2009/10/12(月) 19:30:56ID:AQICrxba
すり抜けと呼ばれる現象が発生しますね。
0099名前は開発中のものです。2009/10/12(月) 20:44:51ID:8kB2RrDz
>>98
ありがとうございます♥
0100名前は開発中のものです。2009/10/12(月) 20:46:32ID:jzZC8u5v
内部で2〜3回に分けて当たり判定をするのが楽よ
0101名前は開発中のものです。2009/10/12(月) 21:32:57ID:8kB2RrDz
>>100
レスありがとうございます♥

レスを読む前に「すり抜け」でググったら、数回判定と直線で判定というのが見つかり、
さっきまで直線で判定する方法を考えていました。
しかし、作るのに時間がかかるのと、繰り返しが多くなるのが重なって、ちょっとやる気をなくしていました。

内部で数回判定の方も検討してみます♥
ただ、私は早寝しないと早起きできないのでもう寝るのです。
0102名前は開発中のものです。2009/10/13(火) 00:00:54ID:w58NSsv/
俺円の軌跡でやってたわ
0103名前は開発中のものです。2009/10/13(火) 10:07:36ID:VzxaKX8Z
アクションゲームを作っているのですが、ボスキャラの実装って、どうやるべきなのでしょうか?
一応、次のような事を考えていますが、どれが最善策なのかが分かりません。
・雑魚キャラとボスキャラを、同じように実装する。
・雑魚キャラとボスキャラは、別々に実装する。
・ボスキャラ特製ステージを作って、完全に別個に動かす。
0104名前は開発中のものです。2009/10/13(火) 20:18:53ID:dd949xVz
共通動作する部分は共通の処理を使う
インターフェースは揃える

0105名前は開発中のものです。2009/10/13(火) 23:59:53ID:kOoovq6w
>>103
普通の雑魚敵でも、「次のフレームでどういう行動をするか」を問い合わせる処理ってあるじゃない。
基本的には、その中身を変えるだけじゃないのかな。

もちろん、雑魚とボスとで、その関数(メソッド)の中身が、10倍くらい違うかもしれないけどさ。
0106名前は開発中のものです。2009/10/14(水) 18:50:59ID:elbFpVSR
敵の当たり判定を2か所に分けてそれぞれ違う効果を出したいのですが

if (tekix<tamax) && (tekix+15>tamax+4) && (tekiy<tamay+10) && (tekiy+50>tamay){
効果1
}
if (tekix+16<tamax) && (tekix+30>tamax+4) && (tekiy<tamay+10) && (tekiy+50>tamay){
効果2
}

こうしたところ、効果は1も2も出るのですが明らかに当たり判定が小さくなった気がします・・・
0107名前は開発中のものです。2009/10/14(水) 19:19:31ID:MHPkdFRa
特に異常はないようだが‥‥
0108名前は開発中のものです。2009/10/14(水) 21:02:10ID:x873g71t
>>106
x方向の当たり判定の式が怪しいので直してみた

if (tekix<tamax+4) && (tekix+15>tamax) && (tekiy<tamay+10) && (tekiy+50>tamay){
         ~~                ~
  効果1
}
if (tekix+16<tamax+4) && (tekix+30>tamax) && (tekiy<tamay+10) && (tekiy+50>tamay){
               ~~               ~
  効果2
}
0109名前は開発中のものです。2009/10/14(水) 21:24:57ID:8YxFaWCP
>>106
Y軸はかすったときに当たり判定して
X軸は弾全体が敵と重なったときに判定してる。

ここまで書いて>>108が正解
0110名前は開発中のものです。2009/10/15(木) 01:21:06ID:273G7C3n
ありがとうございますm(_ _)m
0111名前は開発中のものです。2009/10/15(木) 03:28:34ID:XEVb4vS8
C言語やHSPなど様々な言語でゲームが作れますが
細かい部分は違えど当たり判定、フラグ管理等の考え方は共通してる所が多いって考えてもいい?
0112名前は開発中のものです。2009/10/15(木) 03:39:48ID:ezl0Don3
いい
0113名前は開発中のものです。2009/10/15(木) 04:00:28ID:XEVb4vS8
おK
0114名前は開発中のものです。2009/10/15(木) 20:02:33ID:QLCYxmTI
>>88
かなり遅くなりましたが、ありがとうございました。
01151032009/10/15(木) 21:05:26ID:mXLNxkkI
>>104-105
とりあえず頑張ってみます。ありがとうございました。
0116名前は開発中のものです。2009/10/16(金) 10:57:03ID:6D13DqNr
効果音作るソフトでお勧めってありますか?
周波数いじくる奴で頑張るしかない?
0117名前は開発中のものです。2009/10/16(金) 13:20:43ID:eYYrLjKR
>>116
どんな効果音かしらないが、ものによっちゃ自分で録音するのが一番
無から周波数いじるだけで作るのは無理がある
0118名前は開発中のものです。2009/10/16(金) 16:38:22ID:6D13DqNr
ストリートファイターみたいなバシッっとかドゴォみたいな音です
録音しかないですかね・・・
0119名前は開発中のものです。2009/10/16(金) 16:53:10ID:+pO3lg2K
フリー素材を使えば良いんでね?ザ・マッチメイカァズさん所とか
0120名前は開発中のものです。2009/10/16(金) 17:23:50ID:UJ9WR3Zt
声系の素材、もっと使いやすいものが増えてくれればいいのにねー。
0121名前は開発中のものです。2009/10/16(金) 19:47:43ID:6D13DqNr
フリー素材・・・ちょっと覗いてみます
0122名前は開発中のものです。2009/10/16(金) 20:43:52ID:rXjKMTSv
「セイッ!」とか自分で言ってみれば?
0123名前は開発中のものです。2009/10/17(土) 09:36:11ID:WIdKu3LJ
弾が敵に当たると爆発アニメーション
アニメーション終了後にまた撃てるようになる仕様にしたつもりなんですが

敵に弾を撃つ→当たったら弾が小爆発→再び撃てるようになる
のはずが
敵に弾を(ry→当たったら弾が(ry→再び撃てるけど爆発途中の弾が放たれアニメーション終了後消える
といった結果になります・・・

敵に弾が当たると弾発射判定がオフになり、爆発アニメーション判定オン
アニメーション終了後にアニメーション判定がオフ
そして弾発射判定、アニメーション判定の両方がオフならば弾が撃てるという条件なので
こんなことになる原因がよく分かりません・・・
弾の座標を爆発用の座標に入れ替えてアニメーションさせています
0124名前は開発中のものです。2009/10/17(土) 09:48:44ID:iJmzf119
意味も良く分らないし実際のコードを見てみないことには・・・
敵に弾が当たってその弾が爆発してる間は弾が撃てないのか?
そんなシューティング(or アクション?)聞いたことないけど、まあそれは別にいいんだけど
0125名前は開発中のものです。2009/10/17(土) 09:55:53ID:71MZbNWZ
特殊弾とかでならアリかもしれない。
ともかく、ソース見たいな。
0126名前は開発中のものです。2009/10/17(土) 10:24:49ID:xW2gorbr
表示しようとしてる弾画像の座標とフラグをfprintfでファイル出力すれば何か分かるんじゃないの
0127名前は開発中のものです。2009/10/17(土) 15:00:36ID:WIdKu3LJ
見直したりフラグの状態を表示して検証しましたが解決しませんでした
単純に自分は画面上に一発しか弾が撃てず、画面から消えるか敵に当たればまた撃てるって仕様でした
結構粗のある感じだったので最初からキチンと作り直すことにします
失礼いたしました
0128名前は開発中のものです。2009/10/17(土) 15:31:19ID:cef+x7Zx
そりゃあ、
> 弾の座標を爆発用の座標に入れ替えてアニメーションさせています
これが切り替わったままになってるとしか
ポインタ使ってて中身が爆発のアニメのものが入ってるとかじゃない?
0129名前は開発中のものです。2009/10/22(木) 09:51:44ID:p3M9DvkJ
思想の問題かも知れないけどちょっと質問

シューティングでもアクションでもいいをだが

雑魚AをクラスAとして作る。このクラスはnewする度に画面上に雑魚Aが作成される仕様。
たとえば、クラスAを10回newすれば画面上に10匹の雑魚Aが表示され動き始める。

この時に気になってるのが、画像データとかを読み込むタイミングと場所。
コンストラクト毎に読み込むのは処理とメモリの無駄。

なら、クラス内にstaticの画像クラスとstaticなloadメソッドを用意して、クラスAをnewする前にloadメソッドを呼んで画像クラスを生成するか

もしくは、非staticの画像クラスをクラスA内に用意。
クラスAをnewする呼び戻し元の処理で画像クラスを生成してコンストラクトの引数で画像クラスを渡してやるか

どっちがいいんだろうか
ちなみに言語はc++です。

0130名前は開発中のものです。2009/10/22(木) 12:05:10ID:C9BrTaQH
画像は全部ゲーム起動時に読み込んでおいて敵をnewするときは座標のセットだけしてるな俺は。
0131名前は開発中のものです。2009/10/22(木) 12:17:38ID:8FqIdkxS
newは比較的重い処理(メモリアロケートが)なので、敵の発生のたびにnewするのもあまりよくない
0132名前は開発中のものです。2009/10/22(木) 15:49:02ID:LJWQIbDf
3Dのシューティングゲームを作りたいのですがどの言語を使えばいいのか
何から勉強すればいいのか決めることができず立ち往生している状態です

今できることは3Dのモデリング、モーション、C言語の基礎で
過去にflashでしょぼい2Dのシューティングゲームを作ったことがあります
それ以外にゲーム制作経験はありません

なるべく書籍がでていて勉強しやすいものから入っていきたいと思っているのですが何が適当でしょうか
またHSPが簡単だということで気になっているのですがどうなんでしょうか
ご教授よろしくお願いします
0133名前は開発中のものです。2009/10/22(木) 16:37:27ID:GBmIn+bu
どのくらいガチでやる覚悟があるかわからんが
まともにやるなら、DirectXとC++が一般的じゃないかな
過去のも合わせると書籍もかなり豊富だし
ネット上の情報も沢山あるしね
0134名前は開発中のものです。2009/10/22(木) 17:18:35ID:LJWQIbDf
>>133
ガチで(挫折しない程度に)やりたいです
HSPはやめてDirectXとC++から始めたいと思います
ご助言ありがとうございました
0135名前は開発中のものです。2009/10/23(金) 20:51:13ID:MUsH0HSh
ガチで時間があるならHSPから始めた方がよい
その方が挫折しない

それ以前の問題で,ガチで調べれば
C++&DirectXが一般的なことくらいわかるっていう
0136名前は開発中のものです。2009/10/24(土) 09:57:49ID:kIRXFcc8
>>135
C++とDirectXの本を注文したのですが挫折しそうだったらHSPの本も購入しようと思います
ありがとうございます
0137名前は開発中のものです。2009/10/24(土) 13:11:10ID:gJQGPyqe
>136
挫折したなら多分プログラミングの適性ないから他の何をやっても大したことできないだろうから、すっぱり諦めるくらいの覚悟はないとな
0138名前は開発中のものです。2009/10/24(土) 13:25:52ID:DD7Pkbp2
いきなりC++&DirectXは初心者には少々荷が重過ぎる。
形になるまでに時間がかかりすぎる。
気合十分なら止めはしないが、C#当たりから入っていくのを薦めるなぁ。
HSPはどんなケースであれ漏れは薦めん。
0139名前は開発中のものです。2009/10/24(土) 13:31:50ID:CI35l0uA
Cじゃないのか
C#のが簡単なのか
0140名前は開発中のものです。2009/10/24(土) 14:52:30ID:6ZgvtRZK
C#なんて未来があるんだかないんだか分からない言語はすすめるのはなあ
0141名前は開発中のものです。2009/10/24(土) 15:11:16ID:b8ij6S0c
C#やJavaの名前は挙がっているよ

http://cedec.cesa.or.jp/2009/img/pdf/roadmap_PG.pdf
0142名前は開発中のものです。2009/10/24(土) 15:24:32ID:DD7Pkbp2
少なくとも2,3年で廃れるとは考えにくい。<C#
数年も経験つめれば多言語への移行も難なくできるでしょ。
職にするならC++は通らないと駄目だろうけど、趣味だったらねぇ。
C#が廃れるくらいの先の話なら64bitとかクラウドとかいろんな話が出てくるよ。
0143名前は開発中のものです。2009/10/24(土) 15:55:12ID:kq4P4tpl
Cの基礎があるのならDirectXで問題ないだろ
0144名前は開発中のものです。2009/10/25(日) 01:09:15ID:cd9OILdh
C#を最初にやってしまうと、CやC++、Javaに移るときや覚えるときに不満たらたらになるという難点が。
0145名前は開発中のものです。2009/10/25(日) 03:59:35ID:2DV6zeAf
質問なんですが、ゲームパッドのボタン数やスティックの本数など、
最低限どれぐらいカバーすればいいんでしょうか。

PC用のゲームパッドの場合、右手の親指の4ツ、両人差し指の2ツ、
真ん中の二ツ、左手の十字ボタン、は自由に使っても差し支えない程度には普及してますか。

あと、左右の両スティックも標準的なものと考えていいんでしょうか。
それとも割り当てる機能は、十字ボタンの代替程度にとどめておくべきでしょうか。
■ このスレッドは過去ログ倉庫に格納されています