12/04/06 20:54:20.94 NkUGEveL
Virtual Boxのグラフィックエミュレーションがきっちり動いてない気がする
DXライブラリの初期化部分書き換えてHEL選べば動くパターンかな、試せる?
391:名前は開発中のものです。
12/04/06 21:04:21.83 LE0H4/zO
>>390 DxStatic.hってやつ?
392:名前は開発中のものです。
12/04/06 21:30:56.08 NkUGEveL
いや、ソースの方。気楽にできる体制じゃないなら試さなくていいよ
どのみちDirectXのプログラムが最低限動くかどうかが分かるだけで根本的な解決にはならんから
393:名前は開発中のものです。
12/04/06 21:49:13.90 JYK9MxwR
SDKサンプルのビルド・動作が正常化かどうか試せばいいんじゃないか
394:名前は開発中のものです。
12/04/06 21:55:41.25 LE0H4/zO
>>392 そもそもDirectXに触れるのが始めてみたいなもんだからDirectDrawのオブジェクトの時点で混乱してできそうにない。すまない。
395:名前は開発中のものです。
12/04/06 21:57:51.50 LE0H4/zO
>>393
SDKの方のサンプルはちゃんと動作するな
やっぱりDXライブラリの方の問題なのか?
396:名前は開発中のものです。
12/04/06 22:06:59.18 NPgdIkcO
頭にブレークポイントつけてトレース実行しながらDXlibのログをチェックすればどこで止まるのか分かると思うけど
まさかVC++ごと落ちてるとか?
397:名前は開発中のものです。
12/04/06 22:10:49.64 LE0H4/zO
>>396
そうか、それもそうだ少しやってみよう
ちなみにクラッシュするのはビルドされたアプリケーションの方。VCは生きてる。
398:名前は開発中のものです。
12/04/06 22:20:23.81 LE0H4/zO
>>396
ウインドウを出してキーの入力待ちをするだけのコードでやってみると、DxLib_Init()で停止してるっぽい
ログ見ても何かに失敗した旨の事は書いていないんだよな…
1261:IDirect3DDevice9 オブジェクトを取得します...ハードウェア頂点演算を使用します
ってとこでログは終わってる
399:名前は開発中のものです。
12/04/06 23:10:52.15 NPgdIkcO
ソース読む限りでは同期待ちの計算あたりで止まってるのかな
けどvirtualBoxに垂直同期絡みのオプションなんてないよなぁ
もしライブラリのコンパイルができるのならDxGraphics2.cppの4134~4168行をコメントアウトして
GRH.FrameTime=16;
に置き換えてみるとか・・・
400:名前は開発中のものです。
12/04/06 23:38:17.60 LE0H4/zO
>>399
DevMode.dmFields=なんとかってとこから
DXST_ERRORLOG_ADD(なんとかってところまででいいの?
401:名前は開発中のものです。
12/04/06 23:42:18.85 JYK9MxwR
>>399
自分も同じところ見てた。これ失敗したらループ抜けなくなるんだな
たぶんスキャンラインの位置が正しく取得できていない予感
>>400
今のやつだと5661行あたりのお話
402:名前は開発中のものです。
12/04/06 23:50:34.40 LE0H4/zO
>>401
すると一フレームの時間を取得する箇所を変更してやればいいのか
DxStatic.hをライブラリにコンパイルすりゃいいということか?
403:名前は開発中のものです。
12/04/06 23:51:52.57 NPgdIkcO
>>400
すまん、うちのVS2008だから行番号表示が違うのかも
// 1フレームの時間を取得しておく
の後の{}で閉じられたところです
>>401
for(;;)なんて書き方死ぬほど久しぶりに見たw
while(1)もそうだけどうちの規約じゃ縛り首にされる
404:名前は開発中のものです。
12/04/07 00:10:22.95 Px4uBuWn
>>402
ちょっと時間かかるけど変更した後に
VC++ならDxLibMake.vcprojを開いてReleaseでビルドすればいいんじゃないかと
405:名前は開発中のものです。
12/04/07 00:12:47.33 eJGei3wu
>>404
書き込んだあとに自分でも何言ってんだこいつ状態だったw
406:名前は開発中のものです。
12/04/07 01:01:22.54 eJGei3wu
ライブラリに変更加えてやってもやはり例の如くクラッシュするorz
仮想マシンやめるか、DXライブラリやめるか…
407:名前は開発中のものです。
12/04/07 01:45:38.22 Y7E6HKpP
そこまでいけば問題が有りそうな範囲はほんの数行に限定されるでしょ
とりあえずDXST_ERRORLOG_ADD( _T( "適当な数字\n" ) ) ;をそこらへんに散らして
どこが原因なのか炙り出したら?
408:名前は開発中のものです。
12/04/07 09:39:27.24 XqVmR/uM
レス流し読みしただけだけど、
既存のDXライブラリ使ったアプリは動くのか?
409:名前は開発中のものです。
12/04/07 11:48:07.50 eJGei3wu
>>407
やってみる
>>408
すくなくとも公式HPにおいてあるやつは動かない。
410:名前は開発中のものです。
12/04/07 11:56:46.80 pj9+UnpC
動作環境的に、公式には頼れない類の問題だろうからなあ。大変そうだ。
411:名前は開発中のものです。
12/04/07 12:02:35.61 /u/WJIAb
DxLibのバグ対策で公式頼みになるのを避けるために
バグがあったら自分でなんとかしようと思うんだけど
ライブラリ側にステップインとかで入っていく方法分かりませんか?
どうやってライブラリをデバッグしたらいいんだろうか。
412:名前は開発中のものです。
12/04/07 12:25:27.55 pj9+UnpC
昔、普通にソースをVCのプロジェクトに組み込んだ記憶があるな……どうやったのかは忘れたが
413:名前は開発中のものです。
12/04/07 12:30:56.56 W381u4CU
デバッグ版のLibならステップイン出来ないかな
できないならライブラリのビルドのプロジェクト作ってスタートアップに設定してデバッグプロパティで
DXライブラリのデバッグしたい関数のある実行ファイル指定する
414:名前は開発中のものです。
12/04/07 12:48:44.34 UzgkVzGh
DxLib_Init()をコールする前に、
ChangeWindowMode( TRUE );
SetWaitVSyncFlag(FALSE);
とかコールしておくと、フルスクリーンやvsync待ちが原因かの切り分けはできる、のかな
415:名前は開発中のものです。
12/04/07 12:52:41.63 eJGei3wu
GetVSyncWaitTime()が悪さしているのかな?
そこでどうがんばってもログが止まっている
416:名前は開発中のものです。
12/04/07 13:14:57.18 yRJeMU69
ソリューションにDxLibMakeのプロジェクト追加して
プロジェクトの依存関係設定してやればいんじゃね?
417:名前は開発中のものです。
12/04/07 14:04:29.58 9U7nDMaZ
ライブラリを作るプロジェクトを開いてdebugで一旦コンパイル
ライブラリを呼ぶプロジェクトを開いてツール->オプション->VC++ディレクトリ
->ディレクトリを表示するプロジェクトをライブラリファイルにしてライブラリを作るプロジェクトのdebugディレクトリをトップに追加
ライブラリを呼ぶプロジェクトをdebugビルト
正しいやり方は知らないけどこれで普通にライブラリの中もトレースできる
418:名前は開発中のものです。
12/04/07 15:09:35.45 XqVmR/uM
他の仮想化ソフト(VMwareとか)使ってみるとか?
419:名前は開発中のものです。
12/04/07 17:26:35.40 eJGei3wu
処理的には何も変更していないdebugの方でビルドしたライブラリをコピーしたら動くようになった…意味が解らない…
レスを読んで返答してくれた人たちに最大級の感謝をしたい。
おかげでライブラリのコンパイル方法とかも勉強できたし。
420:名前は開発中のものです。
12/04/07 18:23:24.09 UzgkVzGh
・DXライブラリが一部のemu上で動作しない
・debugビルドしたDXライブラリの場合は動作する
ってこと?
421:名前は開発中のものです。
12/04/07 20:30:28.52 eJGei3wu
>>420
そういうことです
422:名前は開発中のものです。
12/04/07 20:50:18.65 BFiYvq37
debugビルドっつっても別に特別な事してるわけじゃないんじゃない? コンパイルパラメータが違う程度で。
上手く動くやつと動かないやつの違いを探してみないとな。
423:名前は開発中のものです。
12/04/07 20:53:21.01 BFiYvq37
ちなみに以前、似たような現象があったが、あの時は
「アーカイブしたデータを読み込む時に異常に時間がかかる(のでフリーズしてみえる)」
というバグだったので、今回のサンプルは関係ないけど、まぁ参考までに言っておく。
424:名前は開発中のものです。
12/04/07 20:59:15.02 MAorgco6
VC++は設定パスを辿って最初に見つけたライブラリを使う
DXlibはリリースビルド時はDxlib.libを、デバッグビルド時はDxLib_d.libを使う
多分このあたりをきちんと理解してないだけだと思われ
425:名前は開発中のものです。
12/04/07 21:43:26.37 eJGei3wu
>>424
激しく初耳だ。改めて自分の無知さが恥ずかしい。
でもログに幾つか出力するマクロを加えてビルドしただけなんだけど何故こうなるのか…
426:名前は開発中のものです。
12/04/07 21:48:24.77 eJGei3wu
あと現在の問題点で、
ウインドウモードにすると左下によくわからないアイコンのようなものが表示されることがある
DrawBox関数でFillFlagをtrueにすると描画されなくなる(falseだとしっかりと描画される)
ってのがある。
まあなんとかなる程度だからいいけど。
誰か情報があったらお願いします。
427:名前は開発中のものです。
12/04/08 05:17:12.70 jgma09be
て
428:名前は開発中のものです。
12/04/08 05:18:45.07 jgma09be
お、規制解除された
今更だけど、以前、急にDXライブラリ製のゲームだけ動かなくなって、
その時はグラボのドライバを入れ直したら直った、ってことがあったよ
429:名前は開発中のものです。
12/04/08 08:55:45.89 GXyS4reM
そういえば他のグラボの人がvirtual boxで再現確認ってしてるのかな
そこで再現されないならグラボが原因ってのはありうるわけか
430:名前は開発中のものです。
12/04/11 11:19:33.85 zPibrwBZ
DXライブラリを使おうとする人は、大抵普通のWin環境持ってるからなあ。
431:名前は開発中のものです。
12/04/11 15:54:22.25 RWWoJ9Z8
linuxでわざわざdirectx動かすより
openglつかったほうがいいんじゃないか?
432:名前は開発中のものです。
12/04/11 22:09:21.55 nOhzJPxm
初心者スレから誘導されて来ました
LoadSoundMem()とPlaySoundMem()で効果音を鳴らしています。
再生が終了する前に同じ音を鳴らすと、最初の音が終了してしまいます。
2つの音を鳴らすにはどうすればよいでしょうか
DuplicateSoundMem()などで事前に複数のハンドルを用意しておくしか無いでしょうか
433:名前は開発中のものです。
12/04/12 01:11:38.36 vUJcZSD8
>>432
前にここで同じ事書いたけど回答得られなかったな
その方法で解決してると思うよ
434:名前は開発中のものです。
12/04/12 01:26:00.01 C5XFHCZT
そりゃリファレンスに答えが書いてあるんだから回答得られなくて当たり前だろw
わからない人ほど基本から外れたがるのは何なんだろうな
435:名前は開発中のものです。
12/04/12 01:48:42.49 2MiPPbSn
わからんからだろ
436:名前は開発中のものです。
12/04/12 10:59:13.60 OCMdHEJy
シンプルに考えるなら、DuplicateSoundMemで取得したサウンドハンドルを配列なりlistなりで保持しておき、
CheckSoundMemで再生中ではないハンドルを検索して、そのハンドルの音声を再生って感じかね。
437:名前は開発中のものです。
12/04/12 12:58:33.07 ZywlwjDx
同時発音数だけハンドル生成してインデックス付けて循環、発音チェックとかはやらない
438:名前は開発中のものです。
12/04/12 13:15:12.55 yHa5EyEH
現実的な話をすると一つの音を複数再生させるよりも
複数の音を一つの音として再生できるようにした方が聴いた時に自然になる
439:名前は開発中のものです。
12/04/12 13:56:41.46 3dAghtwS
ゲーム的な話をすると、ほとんどのゲームは同じ効果音は重ねて再生せず、前の効果音を止めて再生してる
でも違和感ないでしょ?
440:名前は開発中のものです。
12/04/12 14:00:52.33 oGuhhIRs
同じ音を重ねてもうるさいだけだしな。
でもまぁ、432はどうしても重ねて鳴らさないといけないような特殊な事をやりたいのかもしれんし。
例えば楽器代わりに使うとか。
441:名前は開発中のものです。
12/04/12 14:06:41.42 3dAghtwS
もしくはステレオやサラウンドで空間表現がしたかったりかな
442:名前は開発中のものです。
12/04/12 14:12:15.80 7rRe2PMr
便乗になるのだけど、SEで連続して爆発する音の場合、
DuplicateSoundMemで複製しておいて
ずらしてならすってことでいいのかな?
443:名前は開発中のものです。
12/04/12 14:16:15.86 LYx5lLkn
2Dなら>>439、3Dなら>>438のやり方を推奨
444:名前は開発中のものです。
12/04/12 16:25:46.11 OCMdHEJy
左右のスピーカーに割り振るような場合とかは、途中で切れると困る
445:名前は開発中のものです。
12/04/12 19:16:36.29 SCZHIOGy
具体的な使用場面を明確にすることが先決かな
446:名前は開発中のものです。
12/04/12 19:41:17.26 wDm4eTwP
DuplicateSoundMemって再生カーソルの複製作ってるだけで
バッファのコピー作ってないと思うから
メモリ浪費が大きいということはないと思う。
447:名前は開発中のものです。
12/04/13 02:13:36.59 RpSfv+HU
誰もメモリ消費量の話してないし憶測で適当なこというなやボケ
448:名前は開発中のものです。
12/04/13 02:14:26.85 Vtmv2oG8
横から罵倒とか何様のつもりだボケ
449:名前は開発中のものです。
12/04/13 02:48:39.53 UHnz960b
>>432です、皆さんありがとうございます
>>440>>445
そうですね、ある意味楽器みたいな感じなんです
STGやアクションで、自分のいる位置や敵撃破位置で、SEが変わったらどうなるかな?と思いまして
450:名前は開発中のものです。
12/04/14 01:25:36.60 NRsL35Yq
PlaySoundFile ( PlaySoundMem ) と PlayMusic の違いがわからん
451:名前は開発中のものです。
12/04/14 01:48:16.31 c5bRA40t
PlayMusicはストリーミング
PlaySoundはバッファリング
じゃなかったっけ?
452:名前は開発中のものです。
12/04/14 02:10:11.51 qbHzTos0
DirectXの音管理がDirectMusicとDirectSoundに分かれてた名残
MIDIを使わないのなら総てPlaySoundでOK
453:名前は開発中のものです。
12/04/14 11:11:22.92 5BUazka2
PlayMusicにハンドルがない不思議
MCIと一緒のせいだろか
454:名前は開発中のものです。
12/04/14 14:37:37.12 d2QxVYyl
PlayMesicMem()あるよ。リファレンスにはないけどね
455:名前は開発中のものです。
12/04/16 20:47:38.30 sqQ7wHbj
そういえばたまにバージョンアップせずに過去のバージョン使ってる人いるけど、なんなんだろうな
設定で単純にファイル差し替えるだけにできるのに
456:名前は開発中のものです。
12/04/16 20:52:42.97 CbrcIT4F
闇雲な「ライブラリのアップデートで動かなくなる」みたいな状況や言葉がやたらネット上にあるから普通怖いでしょ
457:名前は開発中のものです。
12/04/16 20:53:44.62 OkxR79A2
そんなの滅多にないが
それにバックアップはとっておくべきものだろうし
458:名前は開発中のものです。
12/04/16 21:13:57.25 fElCZsp5
使いたい機能が特になければ新しいのじゃなくてもそれほど困らないんじゃ?
459:名前は開発中のものです。
12/04/16 22:56:27.24 Tub7X132
単にめんどいからじゃね、つまりあまり考えてないという
460:名前は開発中のものです。
12/04/16 23:28:07.89 bZELwB4q
ライブラリの更新は基本的に自作ソフトのメジャーアップデートに合わせるし
特にクリティカルなバグフィックスでもなきゃアップデートしないよ
無駄な作業が増えるだけで大して意味ないもん
461:名前は開発中のものです。
12/04/16 23:52:39.17 hF/64Hcu
2.x→3.xのとき、当時作ってたゲームが動かなくなったなあ
462:名前は開発中のものです。
12/04/17 09:22:13.78 cmj6scJE
c++の命名規則ってどうしてる?
c#とかjavaだとクラス関数の先頭を小文字にするけど
C(DXLIB, Win32, DirectX)だと大文字だよね。
463:名前は開発中のものです。
12/04/17 10:24:51.26 FXYZrvCf
制作集団に特に決まりがなければ好みの問題です
464:名前は開発中のものです。
12/04/17 10:59:40.38 YZv8T9Gr
>>462
>c#とかjavaだとクラス関数の先頭を小文字にするけど
C#は先頭大文字でしょ
465:名前は開発中のものです。
12/04/17 13:29:17.05 kV92Gyue
クラス
Ckurasu
変数
kurasu
466:名前は開発中のものです。
12/04/17 16:24:27.01 DcBjzTk2
m_value
467:名前は開発中のものです。
12/04/17 17:21:28.16 sMJ/oSzG
staticなクラスとシングルトンの差が分からないんだけど
468:名前は開発中のものです。
12/04/17 17:32:22.46 r51DMbgu
静的メンバ関数はクラスのインスタンスが生成されなくてもアクセスできる
静的クラスはいつインスタンスが生成されるか分からない
静的メンバ関数から静的クラスの生成を確定させれば、ちょっぴり安心
469:名前は開発中のものです。
12/04/17 20:45:14.74 icgY8HP5
>>467
static なクラス
初期化プロセスが自動で発生しない。
解放の必要がない。が、解放プロセスが自動でコールされないことを意味する。
シングルトン
初期化プロセスの発生するタイミングが不定 (意図的に呼べば確定は可能)
唯一のインスタンスをメソッド内でstaticに確保すれば
終了前に必ず解放プロセスが呼ばれることを期待できる。
(ポインタを確保してnewした場合はデストラクタが呼ばれないので注意)。
正直、あんまり変わんないけどね。
半分は趣味。
470:名前は開発中のものです。
12/04/17 21:38:21.03 TBQVpXJP
>>468
それだけだとVCだと非スレッドセーフだからちょっぴり安心なのか
471:名前は開発中のものです。
12/04/18 01:00:15.20 fDV6H22e
staticなクラスってクラスのメンバが全てstaticっていう意味なんじゃないの?
472:名前は開発中のものです。
12/04/19 12:47:22.43 pxg6qWV/
Chidoriとかあったの覚えてるか?国産3Dフリーライブラリということで応募したら、Facebookで友達と認められなきゃダメだという奇妙さ。
それでも待ってたら、向こうからあなたはどういう立場でどういう用途で使うのか教えて、それを審査してDL許可が出るだって
日本はホントライブラリくらいで閉鎖的でダメ。こんなことだから日本は世界から取り残されてガラパゴスになる
以上愚痴終わり
473:名前は開発中のものです。
12/04/19 12:56:10.17 sPfCIXdo
ガラパゴス自体はなにも悪くないけどな
その環境に対して最適化されてるってことだから
474:名前は開発中のものです。
12/04/19 13:02:45.48 uyLIiFt/
物を作る人間なら何かを他人のせいにしたらオシマイっすよ
違うと思うことは自分で覆せばいいだけ
つうかソース公開して改造も認められてるDXライブラリスレで言うべき愚痴じゃないだろ
475:名前は開発中のものです。
12/04/19 14:52:07.70 ISIfegPQ
>>472
「ぐらいで」っていうならそれを自分で準備しなきゃね。
誰もあなたのために無償労働したくはないでしょ。
フリーを銘打っていて実は…ってのは悪質だが、他人に求めすぎてて
しかも「こんなことだから」って合理化するのはとても格好が悪いよ。
476:名前は開発中のものです。
12/04/19 15:11:33.73 sPfCIXdo
合理化じゃなくて正当化な
477:名前は開発中のものです。
12/04/19 15:31:36.39 ISIfegPQ
すまん。心理用語の合理化ね。
478:名前は開発中のものです。
12/04/19 16:17:19.48 2+pU6vOV
>>475
こういう狭小が奴が多いから、海外のように大規模フレームワークを制作して
多くの会社で共有しようって流れにならないんだよな
他人に頼らず、自社製のしょぼい独自フレームワークにこだわった結果が今の現状
479:名前は開発中のものです。
12/04/19 16:20:18.87 ISIfegPQ
>>478
あほいうなよ。それはビジネスとしてかあるいは協力体制の契約を
おこなってやってるものだ。一方的な関係じゃない。
480:名前は開発中のものです。
12/04/19 16:22:32.95 4OYFZy3w
次の荒らしの口実は日本の閉鎖性かw
ここはDXライブラリスレですから言い争いは他のスレでやってください
481:名前は開発中のものです。
12/04/19 16:27:37.68 sPfCIXdo
日本のに比べて海外のは世界で通用する汎用性が~だったら海外の使えばいいんじゃw
482:名前は開発中のものです。
12/04/19 17:10:46.76 2+pU6vOV
DXライブラリは好きだから荒らす気はないよ
設計思想も共感できるしね
あくまで現状を語っただけ
売れるものを大量生産するハリウッド的思想はやっぱり儲かるんだよ
映像はすごいが、どれもよく似たパターンだなってのはあるけど
じゃあ、日本が独自性があるかって言うと世界的に見たら確かにあるが
国内で比べると、判子アニメ、判子ゲームだらけ
だったら、もっと技術提携するような方向にもっていけないのかなと思うよ
海外のフレームワーク使えっていうけど、いろんな意味で無理でしょ
483:名前は開発中のものです。
12/04/19 17:17:13.28 ISIfegPQ
国内ゲーム企業の技術提携はあっていいと俺も思う。
あと、DXライブラリ作者さんに少し報われてほしいな。
484:名前は開発中のものです。
12/04/19 17:18:09.50 QpkDmGOt
サイト見てきたけど、どう見てもフリーライブラリじゃないだろ
有償で法人向けに提供されているようにしか見えないよ
個人や同人で使うならこういうのは実績ないと厳しいんじゃないか
485:名前は開発中のものです。
12/04/19 17:22:04.83 ISIfegPQ
無償提供はしてるらしいぞ。たぶん売れなかったんだろ。
あるいは、フレームワークのシェアを広げて何か付加価値の部分で商売する目的かも。
まあ、それでもどこの馬の骨ともしれない奴にぽいとただであげるよ、
とはいかないのは当然の措置だよね。
486:名前は開発中のものです。
12/04/19 18:09:39.23 Z6NQbpXt
無償版はウォーターマークが常に表示されるとか
使わせる気無いなw
487:名前は開発中のものです。
12/04/19 18:12:57.47 JZ1Plsdi
体験版か
488:名前は開発中のものです。
12/04/19 18:54:45.18 nL4dPgzp
企業の技術提携どころか社内でも技術共有できずに、
車輪の再発明を繰り返してたりするらしい
489:名前は開発中のものです。
12/04/19 19:00:51.25 62tTC7bW
ありそうな話だ。
490:名前は開発中のものです。
12/04/19 19:16:37.37 2+pU6vOV
技術で食ってきた日本人の気質がそうさせているんだろうな
もう個人プレイでやれるような時代じゃないのに
491:名前は開発中のものです。
12/04/19 19:20:16.67 2+pU6vOV
教育もまともにせず、ようやく使えるようになったころにはもういい年で
新しい発想も生まれず、頭の硬い地味な作業を繰り返すだけの人間に育つ
保身のための行為が自分の首を占めている結果になっているのにも気づかないんだよね
492:名前は開発中のものです。
12/04/19 19:44:38.26 62tTC7bW
よくわからんのだが、ここでそういう毒を吐く事が君にとって何かプラスになるのか?
新しい発想のキッカケになるとか。
493:名前は開発中のものです。
12/04/19 19:45:10.88 sPfCIXdo
思いついたことをその度垂れ流すな
そういうのはtwitterでやれ
494:名前は開発中のものです。
12/04/19 20:02:45.98 rhTaoDYw
>技術で食ってきた日本人の気質がそうさせているんだろうな
こんなこと言ってる時点で現場にいない人間なのがまる分かりなんだが
495:名前は開発中のものです。
12/04/19 20:06:20.79 sPfCIXdo
個人プレイでやれないのは才能・実力不足だしね
496:名前は開発中のものです。
12/04/19 20:13:17.02 2+pU6vOV
>>494
現場といってもいろいろあると思うけどね
>>495
それはそうだが、Unityのようなソフトウェアを個人で作れますか?って話
497:名前は開発中のものです。
12/04/19 20:22:36.75 sPfCIXdo
もういいから
498:名前は開発中のものです。
12/04/19 20:28:54.19 llBpt5eP
うざいから
ゲームエンジン総合スレ
スレリンク(gamedev板)
こっちでやれ
499:名前は開発中のものです。
12/04/19 20:50:30.28 JfKbnz4T
むしろゲームハード・業界板向けだろ。
URLリンク(anago.2ch.net)
500:名前は開発中のものです。
12/04/20 00:27:41.69 LVyH3nbi
siv3Dは大学のチームでやってるんか?
個人だとseleneの二の舞になりそう
501:名前は開発中のものです。
12/04/20 05:48:49.83 QRHU35vB
個人プレイで一番つらいのは時間だな
いくら時間あっても足りねえよ
502:名前は開発中のものです。
12/04/20 08:38:06.21 ytlVzcrB
DXライブラリの入出力関数しか使わないんだけど他に使うものあるの?
まあゲームによって違うとは思うけど
503:名前は開発中のものです。
12/04/20 13:33:54.52 iSPOVfuZ
>>502
他の奴も1つ2つ使ってることはあるけど、俺もだいたいそんな感じかなあ。
DXライブラリがそういう理念で作られてるというのもあるだろう。
504:名前は開発中のものです。
12/04/20 13:44:15.87 BJ0/LrO+
ゲームプログラムで面倒なのってほとんど入出力じゃねーの。
505:名前は開発中のものです。
12/04/20 14:52:39.63 DWIKZtqP
XOBXのパッドに対応してないのかな
スティックと十字キー押しても、戻り値0
506:名前は開発中のものです。
12/04/20 15:09:13.34 zxwJsUat
シンクパッドの真ん中のボタンも使えるようにならないかな?
507:名前は開発中のものです。
12/04/20 15:14:01.37 iSPOVfuZ
箱のパッドって、仕組みからして違うんだっけ?
508:名前は開発中のものです。
12/04/20 15:32:07.72 BJ0/LrO+
XBOXのドライバはどうしたんだ。
509:名前は開発中のものです。
12/04/20 17:32:38.16 e4qNB1Ch
ここの人たちがどんなゲームを作ってるのか気になる。
普段俺の手の届かない次元で話ししてるからなぁ
510:名前は開発中のものです。
12/04/20 19:03:34.51 C5cZq6LS
DXライブラリを使って汎用ゲームエンジン組んでるだけでゲーム自体は普通のSTGだな
511:名前は開発中のものです。
12/04/20 20:24:31.42 JPhLpB9e
俺もただの2Dゲー作ってるだけだよ。(先日完成して今は何も作ってないけど)
ただ、ここで出るプログラミング話は全く付いていけてないw
512:名前は開発中のものです。
12/04/20 22:51:32.60 DWIKZtqP
エロゲって素直にいいなさいよ
513:名前は開発中のものです。
12/04/20 22:55:29.04 iSPOVfuZ
DXライブラリでエロゲってことは、スクリプトローダとかそういう系統か。
514:名前は開発中のものです。
12/04/20 23:07:09.31 8sRHzIee
脱衣STGかもしれぬぞw
515:名前は開発中のものです。
12/04/21 00:34:11.13 fS6DJLOg
DXライブラリでエロゲって商業だとちらほらみるな
516:名前は開発中のものです。
12/04/21 01:18:43.90 muN1+m+6
ブロック崩しと
517:名前は開発中のものです。
12/04/21 02:59:16.54 +R2G5xox
DXライブラリを使って普通の2DSTG作ってるだけだよ
いつになったら完成するのやら
518:名前は開発中のものです。
12/04/21 03:35:50.68 KpdwKgSD
>>505
DxLib.hでGetJoypadDirectInputStateを検索してみな
この関数使えばXBOXのパッドの入力も取れるよ
519:名前は開発中のものです。
12/04/22 10:55:03.64 kg6EG9U2
3.07fが出てた
520:名前は開発中のものです。
12/04/22 16:35:31.17 7iFZqzNj
>>518
一部だけね
521:名前は開発中のものです。
12/04/22 19:05:05.19 GAb19Bzs
>>520
ん?
一応ガイドボタン以外は全部取れたと思うが・・・
522:名前は開発中のものです。
12/04/22 23:38:24.47 J5Yh/ZmE
箱? 箱◯?
523:名前は開発中のものです。
12/04/24 00:10:53.93 nOBOEirj
ま、UNITYみたいのが出てきたいまDXライブラリは役目を終えつつはあると思う
UNITYスレもスレ住人もくそ杉だが
524:名前は開発中のものです。
12/04/24 00:30:15.61 C19dNN09
そう、それはよかったね
525:名前は開発中のものです。
12/04/24 01:53:19.94 cPXNnGH0
3Dしかまともに作れないからなぁ・・・
確かに次の時代のゲーム開発環境ではあるけど、まだプログラムする意味が無くなる程の代物ではないかな
ADV作るならNScripter・吉里吉里、2DRPG作るならRPGツクール
これに
3Dゲームを作るならUnity
が加わった感じ
当然3DならどんなジャンルでもUnity使った方が良いというわけでもないけど
526:名前は開発中のものです。
12/04/24 02:41:00.88 pixaW8Xr
2dアクションゲームを作るならDXライブラリでいいと思う?
527:名前は開発中のものです。
12/04/24 02:53:12.06 mwz0LFvI
いいと思う。
ただ時代の流れで、肩身が狭いのは覚悟しておく必要があるね。
見栄えはやっぱり3Dの方がいいし。
(もちろんテクスチャやモデリング次第だが、最近は技術が成熟してきてるし、ツール系も充実してきてるようだし)
528:名前は開発中のものです。
12/04/24 02:55:25.79 csmob4DT
DXライブラリはあくまで描画や音楽再生を手軽にできるだけだから、
ゲームの動作は全部自分で書かないといけないのは変わらないことに注意だ
2Dアクション程度ならステージエディタを用意する以外はそれほど難しくないと思うけど
529:名前は開発中のものです。
12/04/24 03:24:03.70 YK27atVn
C/C++勉強用としてなら、まだまだ最前線で戦ってる印象
530:名前は開発中のものです。
12/04/24 08:04:36.86 Of4oYWoA
自分で書かなきゃいけないのが逆に勉強用としてはいいよな
本音言えばもうちょっと製作支援になるのが欲しいけど
ちょっとしたのでいいからキャラモデル作ってくれるのとか
531:名前は開発中のものです。
12/04/24 11:33:10.85 4IkrpGAX
俺はそういうツール化するのはヤダな。
あくまで個人的な話だが、DXライブラリは、俺にできない事をサポートしてくれて、
俺にできる事は自分でやらせてくれる、ちょうどいいレベルのものだ。
532:名前は開発中のものです。
12/04/24 11:34:43.61 csmob4DT
ゲーム用3Dモデルなんて、「ちょっとしたツール」レベルがプロユースレベルな世界だぞ
533:名前は開発中のものです。
12/04/24 18:01:55.40 H7+1pTLB
ちょっとしたモデル Lv60と。
534:名前は開発中のものです。
12/04/24 18:04:04.62 H7+1pTLB
unityってDXライブラリで整理された同様のゲームよりコードより重くなるよな
触った事ないからわからないけど、
プログラム並みに自由度あるのか?
◯◯ゲームツクールと同じ気がしなくもない
535:名前は開発中のものです。
12/04/24 18:05:59.14 H7+1pTLB
もっと言えばマインクラフトと同じものを作ろうとしたときC++やjavaみたいにストレートに作れるのかと・・・
536:名前は開発中のものです。
12/04/24 22:57:48.35 ZOT7AkmC
作れる作れないはライブラリにあらず
作者の意気込みできまる
537:名前は開発中のものです。
12/04/24 23:35:26.90 aU/j2TaN
まぁ、コストは多少度外視してでも、
手段は選ばずに、目的を実現しちゃえばいいよな、
趣味の世界なら。
538:名前は開発中のものです。
12/04/24 23:45:51.60 vQvq3rL1
重さはある程度作れるようになってから考えればいいよ。
それとUnityはプログラム使うよ。
539:名前は開発中のものです。
12/04/25 00:20:29.17 BPiF5OeU
最近はツクールもかなりプログラム寄りの作り方が出来るらしいしなー…
540:名前は開発中のものです。
12/04/25 00:24:58.57 Gh4S025H
ツクールで3Dゲーム作れないだろ
541:名前は開発中のものです。
12/04/25 01:37:10.11 fyDcYZ+l
と思うじゃん?
ポリゴンが表示できないだけで3Dはできる
542:名前は開発中のものです。
12/04/25 02:53:25.54 iSIcHNw0
ツクール系でFPS作ってるのってなかったっけ……?
543:名前は開発中のものです。
12/04/25 03:32:38.11 13BCaGhK
たしかにDoomみたいなやつは作れそうな気がするな
544:名前は開発中のものです。
12/04/25 07:08:28.30 uSnNSbDV
3D格闘ツクール
545:名前は開発中のものです。
12/04/25 09:46:06.37 /P+hidJR
>>544
あれなんて選択肢から用意されてるモーション選んで差分調整するだけじゃん
546:名前は開発中のものです。
12/04/25 09:50:25.48 fyDcYZ+l
アレはただのモーションエディット機能の付いた格ゲー
547:名前は開発中のものです。
12/05/02 18:12:06.06 y6BLahRk
GraphBlendRectBltで合成した画像って
たとえばキャラチップの透過部分は優先される?
水画像をキャラ部分だけに合成したいんだけどそこ上書きされると困るんだ
548:名前は開発中のものです。
12/05/04 18:27:02.38 vCHh+N25
透過って工夫しないと前後関係が狂うよな
549:名前は開発中のものです。
12/05/06 22:47:15.54 WhAnw8ZQ
DXライブラリにマウスカーソルを変更する関数ってある?
指マークにしたり砂時計にしたりする奴
550:名前は開発中のものです。
12/05/06 23:35:26.61 DxjrJISV
マウスカーソルを非表示にして、マウスポインタの座標に任意の画像を表示するやり方ではだめなの?
551:名前は開発中のものです。
12/05/06 23:37:17.82 WhAnw8ZQ
だめなの!
552:名前は開発中のものです。
12/05/07 11:45:33.03 3UubK6Dz
やってること同じだとおもけど
なんでだめなの?
553:名前は開発中のものです。
12/05/07 13:09:13.22 LmhjfTpa
作ってるのがゲームじゃなくてツールだから
それでOKならすでにやってるし
554:名前は開発中のものです。
12/05/07 14:05:10.42 HNg0tXA5
理由になってないし、DXライブラリに拘る理由も分からんし。
555:名前は開発中のものです。
12/05/07 14:19:27.30 LmhjfTpa
DXライブラリのゲームで使うエフェクトエディタなんだよ
556:名前は開発中のものです。
12/05/07 14:28:38.37 QjWZaIgH
ツールならほかにもGUIいるしなぁ。
スクロールバーとか全自作するぐらいなら他の言語使ったほうがいい。
557:名前は開発中のものです。
12/05/07 16:02:14.35 LmhjfTpa
WinAPIでできたけど、ちょっとチラつくな
このくらいは仕方ないか
558:名前は開発中のものです。
12/05/08 14:27:58.57 XU/nbluC
ツールはC#でDxLibのがよさげやね
559:名前は開発中のものです。
12/05/08 18:24:11.12 U1Qqw03N
今さっきゲーム用のグラフィック書いてた所....
もうこれだけで10日くらい費やしてる。
しかも静止画。
まぁ2Dスクロール作ろうとしてるんだが...
デザインだけでこれだけかかるとやる気はあっても
時間が足りなさすぎる。
書いた絵を動かさないといけないって考えると途方もない
よな。そもそもゲームって大人数で数カ月何年かけて作るもんだよな。
一人でやろうとして馬鹿みたいだ。
皆できないと思って諦めよう....
560:名前は開発中のものです。
12/05/08 18:25:44.22 U1Qqw03N
ゲーム作る時はやっぱ、大人数でやるべきだ。
DXライブラリは便利だがやっぱ時間かかりすぎる。
自分の役割が音楽であれ画像であれ、プログラム部分であれ、
確実に関わってるなら自分で全部作れなくても嬉しいだろ。
561:名前は開発中のものです。
12/05/08 18:44:39.52 MlgRjvwb
どんな超大作作る気か知らんが、基本的にゲームなんて一人で作った方が楽だぞ
コードとグラフィックと音楽とか分野で分けて3人体制とかならわからんでもないが、それでも相当大変だぞ。
大人数で数か月何年かけて作るもんって、
それは最近のプロ(最新のグラフィックで3Dバリバリのゲーム作るような)に限った話。
試しに一人でテトリスでも作ってみなよ。
しっかり全ての機能を詰め込むと、それなりに時間かかるけど途方もないって程じゃない。
プロが大人数で何年もかけて作ったゲームよりも、素人一人が短期間で作ったテトリスの方が何倍も面白いだろうな。
562:名前は開発中のものです。
12/05/08 18:51:30.61 wKw8BPWu
最初は糞みたいなグラだろ、普通。
エンジン作ってるときなんかCUIの数字の羅列と睨めっこだぞ?
で、完成に近づいてきたらちゃんとした絵を描く。
絵心が無いならとりあえず60点程度の絵は描いて公開。
で、絵師を募る。
563:名前は開発中のものです。
12/05/08 18:52:01.21 U1Qqw03N
例えば熊のキャラクター描くじゃん。
それをさ、動かすには、色々なアングルから描かないといけないでしょ?
しかも、プログラム使って動かせるんじゃね?とかも思うわけ。
プログラムとデザインの間で何か巧い事できないかなと思うと
プログラムもデザインも捗らないんだよ....
総合的な動作機能の結集がゲームなわけで、
単にツール作ったり、マンが描いたり、音楽作ったりするわけじゃないでしょ。
テトリスくらいなら10日あれば作れると思うけど。
564:名前は開発中のものです。
12/05/08 18:56:26.48 KIKAQOnq
では残念ながら、ご縁がなかったということで。
565:名前は開発中のものです。
12/05/08 19:11:31.50 LsYiAlVD
>それをさ、動かすには、色々なアングルから描かないといけないでしょ?
3Dやればいいじゃん。
俺はできんからコツコツやるしかないけど。
566:名前は開発中のものです。
12/05/08 19:12:48.02 MlgRjvwb
動かすって一言でまとめられても、こっちは君の頭の中まで見えないからなあ。
普通2Dで動かすって言ったら、基本1枚だろ。もちろんQVなんかだと多少枚数増えるけども。
プログラムを使って動かすとかも意味不明、部品に分けてアニメーションするってことか?
基本的にゲームで難しいのは、面白いアイデアと、最終調整なんだよね。
コード、絵、音楽は単に作るだけだよ。
商業レベルのテトリスを10日で作れる能力があれば、そんなくだらないことで愚痴ってないだろと思ってしまうな。
567:名前は開発中のものです。
12/05/08 19:13:18.19 U1Qqw03N
>>565
2Dが好きなんで。3Dは神の上だろ。凡人の俺には無理だ。
色んな機能詰め込んで、目に見えない部分で快適な動作するような
スクロールゲーム作りたい。
そういやゲーム会社勤めてる人って多い人では月250時間くらい働くそうだな。
どんだけゲーム作るの大変なんだよ....
体もつのか?
568:名前は開発中のものです。
12/05/08 19:24:47.39 U1Qqw03N
>>564
だな。少なくとも大学の授業期間やるもんじゃない。
569:名前は開発中のものです。
12/05/08 19:40:13.52 KIKAQOnq
ここはゲームを作る人のための板なんです。
ゲーム作り自体の経験の有無はともかく、制作に興味のない方は、ここに居ても余り役に立ちませんよ。
参考 URLリンク(togetter.com)
570:名前は開発中のものです。
12/05/08 19:58:21.11 dnlbnzGD
絵は簡単でいいから動くゲーム作って公開してしまえば、
そのゲームに絵を付けたいってやつが出てくるかも知れないぞ。
571:名前は開発中のものです。
12/05/08 20:12:03.76 wKw8BPWu
>>563
それは単にアイディアが固まってないだけじゃね?
572:名前は開発中のものです。
12/05/08 20:15:19.74 D7xPHi12
ゲームなんか作ったって金がもらえるわけでもいい大学にいけるわけでも就職に有利になるわけでも出世に有利になるわけでもないからな
資格の勉強したり友人と交友深めたり読書でもしてた方がマシ
商業レベルのゲーム作ろうと思ったらそれこそ人生の一部をドブに捨てる覚悟が必要になる
なんの見返りもないのに人生を捨てる馬鹿はいないわけで
573:名前は開発中のものです。
12/05/08 20:19:19.26 LsYiAlVD
学生が暇つぶしか現実逃避だかで気軽に手を出してみたが良いが
製作の厳しさを知って挫折感を味わったというだけのお話。
574:名前は開発中のものです。
12/05/08 20:42:30.68 tUp/FLet
DXライブラリで一番分かりやすい解説サイトってどこだろう?
館でいいのかな
575:名前は開発中のものです。
12/05/08 20:50:11.08 LsYiAlVD
公式リファレンス。
576:名前は開発中のものです。
12/05/08 20:52:31.88 tUp/FLet
確かにリファレンスは一個一個は分かりやすいけど
組み方が分からないとな…
577:名前は開発中のものです。
12/05/08 20:56:30.35 IvFN0rbw
あれで組み方がわからないってどういうことなんだ
578:名前は開発中のものです。
12/05/08 20:57:56.44 CD5cDomn
DXライブラリ以前にゲーム作ったことがないのだろ。言わせんな恥ずかしい。
579:名前は開発中のものです。
12/05/08 21:13:23.77 dnlbnzGD
館でいいと思うよ。
580:名前は開発中のものです。
12/05/08 21:15:58.26 LsYiAlVD
DXライブラリが解り易いのは公式リファレンスだ。
プログラムの組み方知りたいなら他所へ。
581:名前は開発中のものです。
12/05/08 21:17:57.36 NUwLyfbY
マニュアルの方しか見てなくて,ゲームのサンプルがあることに気がついて
いないって事は・・・ないよな?
582:名前は開発中のものです。
12/05/08 21:23:04.55 L+B6daUo
>>581
うわああああごめん本当ありがとう
こっちの方が参考になりそう
583:名前は開発中のものです。
12/05/08 23:09:13.67 pQJ579z8
挫折しないための鉄則があるかもしれない
・1日で完成するゲームを作って発表しろ(習作でもなんでもいい)
・それができたら2日で完成するゲームを作(略)
・それができたら4日で完成するゲームを作(略)
・それができたら8日で完成するゲームを作(略)
日数の増やし方は適当。実際にはもっと適した日数があるかもしれない
584:名前は開発中のものです。
12/05/08 23:20:38.15 ZUBEYPbm
>>583
確かに作る事は楽しくなるかもしれんが、何を目指すんだろww
挫折せずに楽しくゲームを作り続けるだけじゃ。
585:名前は開発中のものです。
12/05/08 23:21:25.79 ZUBEYPbm
でも良い案だと思う。
いつかそれを試すか。
後3年は無理だが....
586:名前は開発中のものです。
12/05/09 01:02:13.00 C9Sg667m
絵がかけないから3Dに逃げたんだけど今度は大きさが合わないでござる
587:名前は開発中のものです。
12/05/09 05:57:02.47 QHiUcLvL
ちゃんと1mm=1単位
とか決めて作らないと……
588:名前は開発中のものです。
12/05/09 07:08:45.85 BZtoCYkJ
ゲーム作ること自体が楽しい
589:名前は開発中のものです。
12/05/09 18:40:34.57 dJBnz5Pn
ステフスレでグラフィックだけ募集したらいいんじゃないか
590:名前は開発中のものです。
12/05/09 19:24:08.53 fBkaoQm7
マジレスすると中学の時に戻りたい。
中学の時にプログラミング勉強してたらよかった。
あの時ゲームしかしてなかった。
今は単位を取る事のほうが大事。
591:名前は開発中のものです。
12/05/09 21:09:43.56 rUsvNlt6
>>380
この件、うちの環境で試してみたら、同様に固まってしまいます。DXライブラリを自前で
コンパイルする以外の方法で既に解決してる等の情報があったら解決法の提供いただけるとうれしいです。
こちらの環境:
ホスト/ゲスト共にWindows XP Pro. SP3 (DirectX 9.0c)、コンパイラ: Visual Studio 2008 Express
DXライブラリ: 3.05 (最新の3.07fにしても解決せず)
VirtualBox: 4.1.14
3Dアクセラレーションと2Dビデオアクセラレーションは有効。
VirtualBox Guest Additionsのビデオドライバインストール済。
見た目の現象も >>381 の↓と同様。
> ウィンドウは出るけどそのまま固まって応答なしになるって感じ
Log.txtに出るメッセージも同じ
「IDirect3DDevice9 オブジェクトを取得します...ハードウェア頂点演算を使用します」
で終わってる。
ChangeWindosMode(TRUE)して、SetGraphMode()で指定したサイズのウィンドウが
出るので、そこまでは動いてるっぽい。固まってる状態でタスクマネージャで見ると状態=応答なし。
>>388
うちでもdxdiagではDirect3D 7のテストが下記エラーで失敗する以外は
正常(バウンスする□やXロゴの立方体が正しく表示される)。
| ステップ 40 (バック バッファを1つ持つフリッピング プライマリ サーフェスを作成中): HRESULT = 0x88760064(エラー コード)」
>>414 のSetWaitVSyncFlag(FALSE);も入れてみたけど解決せず。
Log.txtも「IDirect3DDevice9 オブジェクトを取得します...」で終わるのも変わらず。
Debug/Releseビルド共に同じ現象で解決せず。
元レスの人はDXライブラリを自前でdebugビルドしたものにしたら動いたようですが、こちらは未確認。
時間があれば週末にでも >>399 含めて試してみるつもりですが、
既に解決済だったら徒労なので何か情報ありましたらお願いします。
592:名前は開発中のものです。
12/05/09 21:36:58.04 CQqmGqdX
>>590
正直、大学の時期を逃したら先はないよ。
就職後は時間に余裕がなくなる一方だ。
※ ただしニートを除く
593:名前は開発中のものです。
12/05/09 21:45:30.54 uIe4Uns+
しかし一番いいのは大学でしっかり勉強する事だ。
594:名前は開発中のものです。
12/05/09 21:50:19.11 BhwDzGzN
>>590
今プログラミングやれよ。好きなだけsin、cos使えるんだぞ
595:名前は開発中のものです。
12/05/09 22:07:36.38 tsrIJ06j
DXライブラリのゲームが動かない場合は、directXのツールで異常なしと表示されてても、グラボのドライバを入れなおせば治る場合が多いよ
596:名前は開発中のものです。
12/05/09 22:22:14.21 7036Lux4
>>592
就職して10年経ったら会社辞めてプログラミングするわ。
597:名前は開発中のものです。
12/05/09 23:41:17.09 9iScSVCb
いまやらない奴が10年後に何をやるって?
時間が無いとか逃げてるようじゃ向いてないよ。
時間は無いものじゃなく、作るもんだ
598:名前は開発中のものです。
12/05/10 00:47:47.27 2KkjXKar
ゲーム作りなんてほどほどに諦めとけ。
10年古い遊びだし、ニートになったらどうするつもりだ?
599:名前は開発中のものです。
12/05/10 01:52:46.02 UJVg5yao
サインコサインタンジェントが全然わからん
sin cosはセットで使って角度から座標を求める
tanはなんだろ?
600:名前は開発中のものです。
12/05/10 02:09:50.75 ETRl6Ipe
ゲーム製作では、アークタンジェント(タンジェントの逆関数)で、座標から角度を求める。
自機狙い弾を撃たせる時とか、使用頻度は高い。
601:名前は開発中のものです。
12/05/10 02:25:10.92 iDwpb+K6
実際にそんな処理をやってたら重くてしょうがないw
数学関数の呼び出しはループの中では極力行わないのが常識。
602:名前は開発中のものです。
12/05/10 06:18:14.97 vzflkD1H
昔はゲームコンテストに中学生が入賞して大金を手に入れたり
ゲームプログラマーデビューしたと聞いた
603:名前は開発中のものです。
12/05/10 06:35:35.77 UZbNhvsp
中村光一のことかなと思ったけどちょっと違うか…
昔はネットも普及してなかったけどそういう夢はあった時代だねえ
604:名前は開発中のものです。
12/05/10 07:38:40.06 8vGyKgxt
中村祐一
605:名前は開発中のものです。
12/05/10 10:05:38.16 tesXth+b
ゲームはオワコン
606:名前は開発中のものです。
12/05/10 12:09:07.74 ZDbcr+Is
>>601
そんなに重い?
想定するPCで処理落ちしない程度に抑えるのは当然として、仕様を諦めるほどのものか?
マウスカーソルの方に向きが変わるエフェクトだって毎フレーム角度を取らなきゃ出来ないだろうし、そういう表現を全部諦めなきゃいけないほど今のPCって遅い?
私も実際そういうの作ったけど、重いと言われた事はないなぁ。もっと重くなりそうな処理はたんまりあったのに。
607:名前は開発中のものです。
12/05/10 12:16:27.13 tfJkmKLP
sinテーブルとか使ってた頃の常識じゃないかな
608:名前は開発中のものです。
12/05/10 12:34:52.15 4XOda0N/
10数年前の常識だから、今はバンバン使ってもいい
つーか使わなきゃ3Dゲーム作れないよ・・・
609:名前は開発中のものです。
12/05/10 13:22:25.06 v9pLXRdM
sin cos テーブルなら俺今も使ってるけどね。
同じ計算何度もさせるのに、いちいちsin cos 再計算させるとか無駄だし。
610:名前は開発中のものです。
12/05/10 15:04:57.12 kc9Z57zY
テーブルなんて使ってたら超長距離の狙撃ゲーとかできなさそう
611:名前は開発中のものです。
12/05/10 15:11:34.69 tfJkmKLP
テーブルの間の値を取るときに線形補完でもすれば結構使えそうな気はするな
612:名前は開発中のものです。
12/05/10 15:21:30.43 VHianwBM
内積とか使わないの?
613:名前は開発中のものです。
12/05/10 15:23:18.02 v9pLXRdM
そんなピンポイントな仕様の時だけテーブル使わなければいいだけじゃ。
CPU性能が上がったからテーブル使わなくていいじゃん、て理屈なら
メモリ増えたからテーブル大きくしてもいいじゃん、って手もあるし。
614:名前は開発中のものです。
12/05/10 16:45:22.46 dVfrJx5F
でかいテーブルにキャッシュ圧迫される位なら素直に計算したほうが速いと思う
615:名前は開発中のものです。
12/05/10 16:58:49.22 dtfgAWXR
インタプリタで弾幕STGが作れる時代だぜ?
616:名前は開発中のものです。
12/05/10 18:55:39.93 v9pLXRdM
俺も最初は普通に計算させていたが、「これテーブルでいけるんじゃね?」と思って
テーブル処理させるようにしたら、スピードは変わらなかったがCPUファンが急に静かになった。
また、随分前に別のスレで同様の議論が起こった時、サンプルコード作って実測値を求め、
コードとその結果を晒すと、今までなんだかんだと言ってた連中は黙り込んだ。
つまり比較検討すらせずに論じてたわけだ。
よって俺は、PC性能が向上したからテーブル処理は不要という説は机上の空論だと思ってる。
617:名前は開発中のものです。
12/05/10 19:02:46.00 sVBnl2Jo
三角関数のコストの話題をsinテーブルで例えたのは俺だけど
特に誰もそれを不要とか言ってないからね
俺もちゃんと的確な場所で使えば今でも十分通じる最適化の手法だと思っております
618:名前は開発中のものです。
12/05/10 20:11:40.30 ZR8vamBu
テーブルで処理してる人って固定小数点数とか使ってるの?
俺は浮動小数点数使ってるんでテーブル化の恩恵とかいまいちピンとこない
グラフィックの処理限界が先に来るんでCPUの処理速度に無頓着なのもあるんだろうけど
619:名前は開発中のものです。
12/05/10 20:51:13.05 mUHUEJ/5
VCで数学系の関数を高速化する命令ってなかったっけ? 内部でテーブル作ってくれるやつ
620:名前は開発中のものです。
12/05/10 21:35:16.35 2KkjXKar
アプリケーションの計算頻度しだいで必要としか言いようがない。
621:名前は開発中のものです。
12/05/10 21:41:39.79 dtfgAWXR
数年前のCPUでさえ、普通に毎回計算しても弾幕シューで一万発60フレーム出せるし
core2とかなら更に数倍計算できるだろうし
622:名前は開発中のものです。
12/05/10 21:52:54.52 e/HoFmGV
1日目 dxlibraryをインストール
2日目 visual c++をインストール
3日目 Dxlibraryのサンプルプログラムを観賞
4日目 リファレンスを見て関数勉強
5日目 リファレンスサイトを探す
6日目 you tubeを見て作品観賞
7日目 ニコニコ動画を見て作品観賞
8日目 Dxlibraryの普及度をネットで調べる
こんな感じで一向にゲーム作る気になりませんでした^o^
やる気はあるんだよ?
バイトしてるほうがマシだなでもww
623:名前は開発中のものです。
12/05/10 21:56:57.00 8OIpRinM
sinテーブルなんかは最適化には有効だけど、
わざわざsinテーブルなんて作るよりベタ書きでいいじゃんって話でしょ。
毎秒何フレーム描画したいかにもよるけど、どんな酷い書き方しても今のCPUなら最低でも60fpsは出るぞ。
そもそもcore2なんて化石だしなあ。
三千円出してSandyのCeleronでも買えばいい。
624:名前は開発中のものです。
12/05/10 22:01:40.33 8OIpRinM
>>622
お前みたいなやつに限ってやる気はあるってのが口癖だったりするんだよな。
自分でもう一度眺めてみろよ。
既にdxlibをインストールしてるのに、後から普及率を調べたり
リファレンスがあるのに、別のリファレンスサイトを探したり、
今までいろいろなゲームを見たことがあるはずなのに、今さらゲーム作品を鑑賞している。
全部プログラムを書くことからの逃げでしかないだろ。
1時間程度でvc++インストールしてdxlib入れて、リファレンスとにらめっこしながら書きはじめない時点でやる気が無いのと同じ。
625:名前は開発中のものです。
12/05/10 22:01:42.65 K6/fMJqa
atan2は普通に使ってるけど、
1/60sec.内に必ず処理が終わるようにしなければならない、っていう決めのもとで、
newとdeleteなど動的なメモリ確保する処理がこわくて使えない
具体的にはSTLのmapがこわくて使えない
低確率であろうとも負荷が集中して1/60secを超えるリスクがもしあるのなら、と思って使ってない
そんなことがあるのか、よくわからないんだけど
で、全インスタンスを予め確保して使ってる
アクションゲーならあらかじめ敵最大1000匹とか決めておいて、インスタンス1000個を配列で確保して、
で1個1個に生死フラグをもたせてる
626:名前は開発中のものです。
12/05/10 22:07:23.83 feNuwH83
>>621
自分弾幕やらないからよく分からないのだけど
解像度800x600 で 8x8の小さなドット敷き詰めても 7500発にしかならないと思うんだ
一体どんなゲーム(計算方法が分かっているならツール?)なんだろ
627:名前は開発中のものです。
12/05/10 22:08:02.47 e/HoFmGV
>>624
石橋を叩いて渡るタイプだから俺はw
628:名前は開発中のものです。
12/05/10 22:12:18.01 e/HoFmGV
どっちかっていうと勉強できない奴がゲーム作るのに逃げたって風潮なのに
回転座標とか行列とか、三角関数とか嫌にならないのかね。
629:名前は開発中のものです。
12/05/10 22:15:05.37 dtfgAWXR
>>626
あくまで昔作ってたゲームでどこまで弾が出せるかの計測の結果だから、実際のゲームでそんなに出したわけじゃないよ
なので、普通にゲーム作る分には三角関数は最適化しなくても余裕はあまりまくるって意味
>>627
やらない奴のテンプレすぎるw
630:名前は開発中のものです。
12/05/10 22:15:53.49 e/HoFmGV
内積はベクトルが作る面積、外積は体積だよな。
631:名前は開発中のものです。
12/05/10 22:17:05.95 dtfgAWXR
高校の頃は、ゲームに活用できる単元だけテストの点数高かったな
ゲーム制作に活かせることなら興味モリモリだろ普通
632:名前は開発中のものです。
12/05/10 22:39:01.08 yUL5kazs
>>627
渡ってないだろw
633:名前は開発中のものです。
12/05/10 23:03:40.82 um7ucooq
目的なくリファレンス見ても何も頭に入らないと思うんだが
634:名前は開発中のものです。
12/05/11 00:12:18.56 7pB6w4/u
ロダやパス聞いて叩かれてるタイプ
635:名前は開発中のものです。
12/05/11 00:16:59.89 IxDfbQFz
グローバル変数使いまくってたのをクラスにまとめてすっきりしたと思ったら100エラー越えて泣いた。
オブジェクトの宣言てどこですればいいの。もうexternは使わんと決めたお…
636:名前は開発中のものです。
12/05/11 00:19:27.34 GbmOtmCH
同じスタイルでやるならexternの数を減らせる以外の効果は無いと思うよ
externが一個で済むようになるならいいじゃん
637:名前は開発中のものです。
12/05/11 00:46:06.52 IxDfbQFz
>>636
散らかってた変数や関数を複数のクラスにまとめたってこと。そして素人の俺はクラスの数だけexternすることに。
もっとゲーム設計に適したやり方はないの?とお前さんらに泣きついた次第
638:名前は開発中のものです。
12/05/11 00:53:39.42 N2bOf4fY
セーブ・ロードするんでもなきゃ、下手にクラスにまとめないほうがいいよ
クラスにまとめるくらいなら、ネームスペースで囲っとけ
639:名前は開発中のものです。
12/05/11 01:04:26.09 IxDfbQFz
>>638
クラスは便利って聞いたから慣れようとしたんだけどね。いろいろ試してみる
640:名前は開発中のものです。
12/05/11 02:39:58.68 bSxE0QNK
クラスの実体をグルーバル変数にしない→どうやって実体化したクラスにアクセスするか?→ポインタ(リファレンス)を渡す
後はメンバのアクセス権とかを設定すればなんとなくC++っぽいプログラムになる
641:名前は開発中のものです。
12/05/11 02:51:15.70 B2rtNnmh
基本的にexternてextern "C"位しか使わないはずだけどな
ポインタの引数渡しだとかシングルトンとかでポインタ返したりするので間に合うし
#pragma once等で多重インクルード防止してるよね?
642:名前は開発中のものです。
12/05/11 08:33:33.00 ZM042uCS
目的が達成されればやり方はなんでもいいんだよ
643:名前は開発中のものです。
12/05/11 10:30:32.73 3e5VHKoo
クラス設計見てないからなんとも言えんが、
ゲーム総括クラスを一つwinmainで
メッセージループ入る前やWM_CREATEで生成、終了時破棄ってのが普通じゃないか?
ってかDXライブラリ関係ないな。クラス設計スレあったと思うよ。
644:名前は開発中のものです。
12/05/11 10:45:55.87 vcjHam5B
>>625
毎フレームmapに自前でnewはあんまやらないと思う
別コンテナにすでにインスタンス確保してあるなら、
そのポインタかスマートポインタを入れたらいんじゃね
645:名前は開発中のものです。
12/05/11 17:14:52.22 ROU9gqxB
DXライブラリって直接半透明に画像描画することって出来ないのかな?
透明メッセージ枠やりたかったけどSetDrawBlendModeが必須なのか…
646:名前は開発中のものです。
12/05/11 18:12:28.51 dJRyU0/j
普通は、それができるようにDXライブラリを更にラッピングして描画関数やフレームワークを作る
647:名前は開発中のものです。
12/05/11 18:21:46.43 ZalIzh5v
α情報ある画像ならいけるよ
648:名前は開発中のものです。
12/05/11 19:17:48.33 3dGi95mh
透明メッセージ枠くらいならアルファ画像の方がいいんじゃないかな。
649:名前は開発中のものです。
12/05/11 22:34:22.76 4SsxSVut
フリーゲーム紹介サイト一覧(登録関係)
URLリンク(www.geocities.jp)
ゲームを制作したらここへ
650:名前は開発中のものです。
12/05/11 23:02:20.93 y/guoP93
自貼りするのは構わんが、あちこちのスレにマルチはするなよ。
651:名前は開発中のものです。
12/05/11 23:46:30.66 o/+Gc2jH
透明画像なんて使えたのか…
652:名前は開発中のものです。
12/05/12 00:05:05.70 c1qmluZz
>>644
ありがとう
STLのmapでのinsert/eraseでsecondをポインタにするのなら、
ほとんどnewとかdelete発生しない
(か発生してもサイズが小さいから、負荷が集中しても1/60sec超えるほどにはならない)
ってことか
mapが内部的に保持している要素数をオーバーしたときに再配置が生じるくらいかな…
先に大量に配置してからclearしておけばいいのかな
1/60secに常に収まることが必要な敵オブジェクトやタスクの管理にもmapは使えそうな気がしてきた
必要に応じてvector/set/multimapあたりになるのかもしれんけど
653:名前は開発中のものです。
12/05/12 00:12:48.35 nwxeejja
宣言した変数に文字を代入したいんだけどcharやintじゃダメなのかな
char Sound = BGM1; みたいにやってるんだけどどうも美味くいかない
文字はcharだと思ってたんだが
654:名前は開発中のものです。
12/05/12 01:06:33.81 nwxeejja
ごめん分かり辛かったかもしれない
--main.cpp-----------------------------------------------
int BGM001 = LoadSoundMem( "BGM/音声.mp3" );
int BGMVol = 255; //BGM音量
int SEVol = 255; //SE音量
char SoundSet,SoundVol = BGM001 , 255;
void Sound_On();
--Sound.cpp----------------------------------------------
char SoundSet = 0;
int SoundVol = 0;
void Sound_On(){
ChangeVolumeSoundMem( SoundVol, SoundSet );
}
--------------------------------------------------------
こんな感じで指定するだけで流すBGMとその音量を楽に変えられるようにしたいんだけど
文字列が使えないとなるとここからどうすればいいんだろう全く分からない
655:名前は開発中のものです。
12/05/12 01:14:46.09 Sk4hsssu
Cの基礎文法から地道に勉強したほうがいいよ
勉強するのが嫌ならchar[]とかstringで検索
656:名前は開発中のものです。
12/05/12 10:20:02.82 oiw6jIIK
おっぱい
657:名前は開発中のものです。
12/05/12 11:08:26.00 4PAPvi2J
>>654
ツリーマップとかハッシュマップがしたいんじゃないか?
658:名前は開発中のものです。
12/05/12 11:33:22.89 pM6R2rdg
stringってなんだよ
char*やchar[]となにが違うんだ
659:名前は開発中のものです。
12/05/12 11:44:07.77 pM6R2rdg
動的に配列を確保したぃだけどできる?
kurasu hoge[] = new kurasu[i]
660:名前は開発中のものです。
12/05/12 11:44:13.65 7ZI1drDU
なにって、文字列長可変できることに決まってるじゃまいか
661:名前は開発中のものです。
12/05/12 11:46:31.53 7ZI1drDU
>>659
vector使っとけ
662:名前は開発中のものです。
12/05/12 13:15:24.26 Y7LnpGkk
>>654
色々とダメすぎ。
char型にint型を代入しようとしているし、
char SoundSet,SoundVol = BGM001 , 255;
こんな代入ってできたっけか?
少なくとも、このコードで文字列を使うようなところはないぞ。
LoadSoundMem()の引数で使うのなら別だけど。
最低でも、配列ぐらいは勉強しようぜ
663:名前は開発中のものです。
12/05/12 13:20:23.81 scKJS9wa
>>654
"BGM/音声.mp3"以外に文字列使ってるところないと思うけど
あとcharは+-127で 255いれるならアンサインドしないといけない。
SoundVol = BGM00はキャストしないといけないけど
int型のハンドルからcharにいれるとおかしくなる
664:名前は開発中のものです。
12/05/12 13:33:12.14 e6ix4ssi
charがsignedとは決まってないぞ?
unsignedとも決まってないが
665:名前は開発中のものです。
12/05/12 14:03:15.85 Cm45Qp6Q
>>664
釣乙と思って調べてみたらマジで処理系依存だった。
今まで何も意識してなかったんだぜ。
666:654
12/05/12 14:28:24.06 6R8HK7WJ
ダメ過ぎてごめんなさい
charもstringも使わずに出来ました、レスくれた人ありがとう
667:名前は開発中のものです。
12/05/12 16:54:50.46 MLybp27S
atan2って0渡すと落ちない?
668:名前は開発中のものです。
12/05/12 17:17:40.32 aTzzNn3r
c#用のdxlibがあるらしいけど、
使い心地はc用と比較してどう?
669:名前は開発中のものです。
12/05/12 17:49:08.27 bBRavtqR
>>667
処理系依存なのでVCは0を返す
BCCならエラーになるかも
GCCは0だったかな?
670:名前は開発中のものです。
12/05/12 18:04:49.21 e6ix4ssi
>>667
C99対応処理系の場合、設定次第で例外を生成する
671:名前は開発中のものです。
12/05/12 18:47:25.96 dhHNv3dR
>>668
構造体名が全部大文字だったり
C#ならenumを使うようなところが全部const静的メンバだったり
C#を使い込んでいる人ほど使いにくいと感じるかもしれない
個人的な感想をいうと
「どうしてもC#で使いたい人向けにとりあえず用意しました」
という感じが強い
使い心地という観点では、正直あまり良くない
まぁ、もともとCやC++用のライブラリだから仕方ないんだけどね
672:名前は開発中のものです。
12/05/12 19:15:17.60 qdtYJdCq
enumで定義して欲しいとかはC/C++でもあるけどね
演算に利用するような定数でもなければ、型で縛っといてくれた方が安全だし
673:名前は開発中のものです。
12/05/12 22:25:31.97 0khMsYy7
練習に簡単なじゃんけんゲー作ってたら面白くなってきた
674:名前は開発中のものです。
12/05/12 22:35:13.58 vkMbVikO
どうせ軽いフレームワークは自作するんだろ?
そのついでにC#らしからぬ所を隠してしまえばいい。
675:名前は開発中のものです。
12/05/12 23:07:24.89 zvVDUBCv
>>652
再配置ってvectorなんかで起こるメモリの再割り当て?
↑ならmapでは特に気にしなくていんじゃないかな
676:名前は開発中のものです。
12/05/13 00:34:39.15 a5SCC/ey
ゲームプログラミング作り難しすぎ。
O型のやつは大雑把だから細かいプログラミングは絶対不向きだな。
677:名前は開発中のものです。
12/05/13 00:59:03.31 2yoWSG9U
言い訳乙
678:名前は開発中のものです。
12/05/13 01:59:31.47 SIc+R5jE
>>675
そうなん?
例えば10個の、敵その他オブジェクトへのポインタをmapにinsert/eraseをしてて、
場面によってオブジェクトが1000個に増えるようなときって、
mapが持ってるメモリ上の領域って10個分から1000個分に拡張されるんじゃないかなとか思う
でそのときに再配置というか、追加割り当てが発生するんじゃないかなとか
まぁその規模の処理で1/60秒食われるわけもないから、気にする必要もないのか…
679:名前は開発中のものです。
12/05/13 02:18:54.50 oOXluPnN
プログラミングが難しいとか正気か?
680:名前は開発中のものです。
12/05/13 02:30:01.68 ClwAHpRU
こういう場で血液型占い持ち出すやつは文系でも最下層の人間だろうから難しくても無理はない
681:名前は開発中のものです。
12/05/13 05:10:58.13 lpryfgyO
>>678
最初にリザーブしとけばいいんじゃね?
682:591
12/05/13 08:53:27.43 8OrJeLU+
>>591
DXライブラリをビルドして試してみました。
>>399 さんの推測で当たりのようです。
DxGraphics2.cppの4134~4168行をコメントアウトして
GRH.FrameTime=16;
にしたら動きました。(16という値は1000(ms)/60(fps)=16.666...ですよね多分)
上の行番号はDXライブラリ3.05での値で3.07だと変わっていると思うので、
// 1フレームの時間を取得しておく
のコメントの部分を探して、そこを同様に変更すればとりあえず回避できると思います。
ログ出力を埋め込んで見たところ、当該処理の中で呼び出している
GetRasterStatus()×4のうち、2番目のfor(;;)ループ
(// VBlank が終わるのを待つ)が無限ループしてるようです。
回避策は分かったけど、正しい修正方法までは分かりませんでした。
当該処理の中で呼び出しているGetRasterStatus()がおかしな値を返して
来ている?ようですが、原因まで調べるだけの知識・スキルは有りませんでした。
公式サイトの掲示板の方にも報告しようと思いますが、VirtualBox固有の問題
だと思うので、作者さんのところに環境が無いと調べて対策するのは難しいでしょうね...
683:名前は開発中のものです。
12/05/13 09:01:44.64 9MSRAsYc
>>679
じゃあジャンケンのプログラムを余計なとこは省いてレス行以内で書けるか?
684:名前は開発中のものです。
12/05/13 09:21:17.97 NHkyJdx+
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void shoubu(int a, int b) {
char* hand[] = {"グー", "チョキ", "パー"};
printf("あなた:%s vs 相手:%s\n", hand[a], hand[b]);
if (a == b)
printf("あいこだった\n");
else if ((a+1)%3 == b)
printf("あなたの勝ち!\n");
else
printf("相手の勝ち!\n");
}
void main() {
unsigned int a;
srand(time(0));
printf("あなたの手は?(0=グー, 1=チョキ, 2=パー):");
scanf("%d", &a);
shoubu(a%3, rand()%3);
}
685:名前は開発中のものです。
12/05/13 09:29:20.51 EZnOWHsv
なにこれうごかない
686:名前は開発中のものです。
12/05/13 09:30:56.65 oOXluPnN
ちょ、俺書いてたのにw
687:名前は開発中のものです。
12/05/13 09:52:50.74 w1fS3w9l
w
688:名前は開発中のものです。
12/05/13 09:58:44.99 AAmzPGEo
>>671
ありがとう
公式に機械的にc#用に変換したとあったね
おとなしくxna使うわ
689:679
12/05/13 10:02:11.55 oOXluPnN
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
if( DxLib_Init() < 0 ) return -1;
int game=0,zibun=-1,aite=0,hantei=0,temp=0;//ゲームの状態・自分・相手・判定・勝敗チェック用の
char* hand[] = {"グー", "チョキ", "パー"};//パクった グー=0 チョキ=1 パー=2
char* win[] = {"勝ちました", "負けました", "あいこでした"};
SRand(GetNowCount()); SetDrawScreen( DX_SCREEN_BACK ) ;
while( ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0 ){
switch(game){
case 0://初期化
aite=GetRand(2); game=1;
break;
case 1://入力待ち
DrawString(0,0,"グー=Z チョキ=X パー=C 選んでからスペースキーでバトル",GetColor(255,255,255)) ;
if(zibun!=-1)DrawFormatString(0,32,GetColor(255,255,255),"現在の選択は「%s」",hand[zibun]) ;
if(CheckHitKey(KEY_INPUT_Z))zibun=0;
if(CheckHitKey(KEY_INPUT_X))zibun=1;
if(CheckHitKey(KEY_INPUT_C))zibun=2;
if(zibun!=-1 && CheckHitKey(KEY_INPUT_SPACE))game=2;
break;
case 2://判定
DrawFormatString(0,0,GetColor(255,255,255),"自分の手は「%s」、相手の手は「%s」",hand[zibun],hand[aite]) ;
if(zibun==aite)hantei=2; else{
temp=zibun;if(temp==2)temp=-1;if((temp+1)==aite)hantei=0;else hantei=1;}
if(zibun!=-1)DrawFormatString(0,32,GetColor(255,255,255),"%s。エンターキーで再戦、ESCで終了",win[hantei]) ;
if(CheckHitKey(KEY_INPUT_RETURN))game=0;
break;
};
ScreenFlip(); ClearDrawScreen();
}
DxLib_End(); return 0;
}
690:名前は開発中のものです。
12/05/13 10:06:18.59 oOXluPnN
コード汚すぎるけどDXライブラリで動く的な
691:名前は開発中のものです。
12/05/13 10:07:06.00 W1RKjCLb
DXライブラリ関係ない話が多いなw
>>685
全角スペース消せ
692:名前は開発中のものです。
12/05/13 10:09:01.24 Ls9MBT4q
ksに付き合うなよ…w
693:名前は開発中のものです。
12/05/13 10:18:47.38 oOXluPnN
問題を出されると組みたくなるのはプログラマの性
694:名前は開発中のものです。
12/05/13 10:27:17.86 pjQ/YiEQ
>>689
いいね
695:名前は開発中のものです。
12/05/13 11:18:22.18 SIc+R5jE
>>681
reserveはvector系にはあるけど、map系にはないみたい
>>652のやりかた(最初にたくさん確保してからclear)をすればいいのかもしれない
696:名前は開発中のものです。
12/05/13 12:16:43.99 8C9TJ7oh
mapって配列で保持してるとでも思っているか…
697:名前は開発中のものです。
12/05/13 12:17:22.35 2jBPxDkl
>>678
再配置ってのが
push_backしまくってvectorが確保したメモリ超えたときに起こる
メモリの再確保&要素全コピー&古い領域解放のことだと思って
mapじゃ起こらないから気にしなくていんじゃねって思ってレスした
vectorは>>681に同意でreserveとセットだと思ってる
698:名前は開発中のものです。
12/05/13 12:38:55.03 SIc+R5jE
>>696,697
たしかに、その話ではないね。
言いたかったのは、
・mapの実装が、要素間をポインタでリンクしてるものだとする。
・mapに要素を追加した場合は、
既存の要素が持っているポインタ値が、新要素へのリンクを示す値になる
だから…
あっごめん再配置の問題ないわー
699:名前は開発中のものです。
12/05/13 17:18:26.44 JYF+zVYV
途中で何度も挿入と削除繰り返す場合は
要素でアクセスする必要ないならlistのが良いし
ソート不要ならunordered_maptも考慮してもいい
700:名前は開発中のものです。
12/05/13 18:37:46.05 SIc+R5jE
>>699
ありがとう
例えば敵オブジェクトを1000要素の配列に入れて、存在フラグtrue/falseで管理し、
存在フラグtrueのものだけ処理を行う、という用途で、
要素検索によるランダムアクセスしないなら、
listが向いてるって感じか
用途に応じて選ぶ際の参考になるわ
701:名前は開発中のものです。
12/05/13 18:38:44.99 pSj6hJ1W
map, vector, listでクラス使う際は
ポインタ <T*> を使うのがいいんだな
javaやってて気付いた
702:名前は開発中のものです。
12/05/13 22:06:28.55 4FieMYmt
vectorでどうやって動的にクラス配列確保するんだよ( ;´Д`)
703:名前は開発中のものです。
12/05/13 22:18:11.78 pSj6hJ1W
だからポインタ使えって。コピーコンストラクタ書かずに済むし速い。
プリミティブなら逆にポインタ使わないほうがいいけど。
704:名前は開発中のものです。
12/05/13 23:02:43.31 SIc+R5jE
>>701の<T*>をぐぐったけどよくわからんかった
ので>>702もよくわからんし>>703もわからん
もちろんプリミティブならそのままsecondに代入しちゃってのはわかる
705:名前は開発中のものです。
12/05/13 23:22:05.25 SToQPpoQ
普通にvector使えばいいんじゃないの?
706:名前は開発中のものです。
12/05/13 23:22:50.12 pSj6hJ1W
>>704
Hogeなら vector<Hoge*>ってこと。
するとSTLが管理するのはポインタの配列だけで
ポインタが指すインスタンスは結局自分でnew(), delete()する必要があるね。
vector::push_back()とかにあわせて
参照先new(), delete()するラップクラス作っちゃったり。
707:名前は開発中のものです。
12/05/14 00:20:26.40 nfhDOHHW
ああ、T*というところがわからなかったけど、
要はmapならsecondにはポインタを入れておけばいいってことで、
>>644と同じことをいってるってことね
708:名前は開発中のものです。
12/05/14 12:57:31.44 BTxAOBmy
mapならというかコンテナ全般、プリミティブじゃないなら
ほとんどの場合ポインタかスマートポインタになると思う
インスタインス生成する場合でも生成してからポインタをコンテナに入れる
709:名前は開発中のものです。
12/05/14 20:31:57.64 wi3mQ0Av
敵がドアを破って追いかけてくるゲーム作りたいけど何時間くらいで
作れますか?
マップは平面です。
100時間くらいで作れますかね?
710:名前は開発中のものです。
12/05/14 20:55:24.27 nluLiaGY
>>709
どんなゲームかよくわからないけど、一般に絵描くのに時間がかかると思う
711:名前は開発中のものです。
12/05/14 20:57:44.59 wi3mQ0Av
ドンキーコングみたいなゲーム作るには何時間くらいかかりますかね?
ディクシーのポニーテールジャンプみたいなアクションとか難しいですか?
712:名前は開発中のものです。
12/05/14 20:59:03.55 nfhDOHHW
DXライブラリスレで質問したということは、
ツクールなどでなく、プログラムを0から作るということだよね
プログラムの経験がないなら、プログラムのやり方をつかむまでにも、時間がかかると思う
713:名前は開発中のものです。
12/05/14 21:00:26.92 ARfdhxrz
使う言語が分からん。
使うツールが分からん。
どんな設計するか分からん。
そもそもどんなゲームか分からん。
>>709の技量が分からん。
本当に>>709だけだったら1時間もかからないんじゃない?
__人≡_扉_敵≡_扉___
↑を適当に表示すれば?
714:名前は開発中のものです。
12/05/14 21:13:16.20 fXKpuvEK
手を動かさない限りは100万年あってもできないからw
715:名前は開発中のものです。
12/05/14 21:48:26.61 nluLiaGY
>>711
難しくはないけど、何時間で作れるかはわからない。開発時間なんて測ったことないから。昨年作った自分のゲーム(STG)見たらデバッグでのプレイ時間は今調べたら12時間くらい。だから製作時間は100時間は超えてると思う。
俺は1年で1作品作ってるけど1年の内この期間は言語の勉強して、この期間はライブラリ作って、みたいな感じ。ゲーム作ってる期間は3ヶ月くらい。
参考になりましたでしょうか?
716:名前は開発中のものです。
12/05/14 21:51:45.72 FOic/R1y
話変わるけど、>>715さん。
シンプル500って知ってるかい?
あぁいう感じのゲーム好きなんだわ。
500の脱出ってしってる?
あんな感じのインターフェースが良いな。
初心者です^ω^
言語はCです。(C++は無理)
ライブラリはDxlibraryとvisualC++
717:名前は開発中のものです。
12/05/14 21:58:12.39 nHTiVln5
(C++は無理)
visualC++
718:名前は開発中のものです。
12/05/14 22:28:40.41 Fjz7pfxe
>>716
ああいうのはフラッシュのほうがいい
719:名前は開発中のものです。
12/05/14 22:37:14.19 M7E7ECcT
>>716
ClassはまだしもStringとか使ってないの?
720:名前は開発中のものです。
12/05/14 22:39:41.11 FdCjrB5P
「free game classic(フリーゲームクラシック)」とは?
3ヶ月ごとに開催される個人運営のコンテストでみんなの投票で
順位を決めます。
「プレイ時間は90分内」「先行公開が可能」など、ルールがあるので要注意。
3位までにギフト券3000~1万円が贈られるます。
ゲームを作ってコンテストに参加するもよし、ただ遊ぶでもよしです。
721:名前は開発中のものです。
12/05/14 22:54:07.17 FOic/R1y
>>718
フラッシュだとツール臭するからな。
CやBASICで10年以上前の簡単なPCゲームみたいなん作るのが楽しいんだよ。
あーコン部思い出すわ。
722:名前は開発中のものです。
12/05/14 23:07:35.73 Y0QiG0Ej
10年程度じゃまだレベルたけーぞ。
723:名前は開発中のものです。
12/05/14 23:13:10.08 ZvZF0l1B
>>720
ぐぐった。そしてなんだこの残念感。
724:名前は開発中のものです。
12/05/14 23:16:49.28 FOic/R1y
>>722
違うって。
12年前くらいのPCゲーム。
Shock Priceの500円の脱出ってゲームしってるか?
あぁいう簡素だけど、コミカルでわくわくする雰囲気の
レトロゲー作りたいんだよ。
昔に戻れる。
パソコン部思い出せる。あーあのころに帰りたい。
725:名前は開発中のものです。
12/05/14 23:21:21.72 FOic/R1y
>>722
お前コン部の楽しさしらないだろ?
公立なのに夏にクーラー利いた部屋に出入りしたら
勉強できないのにコンピュータだけは得意なメガネ君がカタカタやってる。
で俺は話ついていけないから、今度のコンクルール何出そうか?みたいな
話題提供したら乗ってくれる、色々教えてくれる。楽しいぜ?和気藹藹。
女子はパソコン苦手だから、固まってお喋りしてる。可愛い子もいた。
土曜日なら先生少ないから、サッカー部の生徒が可愛い女子目当てに
乱入しちゃったりしてさ。
あのころに戻りたい。
726:名前は開発中のものです。
12/05/15 00:21:21.90 I2SNujz0
コンピュータ部ってX6800、PC98、FMタウンズの勢力争い三国志みたいなとこだった
727:名前は開発中のものです。
12/05/15 01:02:26.15 3TH09wJu
>>725
俺の知ってる部活と違う。クーラーしか共通点がない。
全員でエロゲのセーブデータ解析&先公から頼まれた市販ソフトのコピー遂行。
解析データは投稿。>>725はどこの世界に生きてたんだよ・・・
728:名前は開発中のものです。
12/05/15 01:09:35.50 G9xvbrPp
>>725
俺もdoubtだわw
「パソコン」が通称だった時代は、まだ全く身近じゃなかったんじゃないか?
サッカー部に女子がまとわりついてるってんなら分かるが。
あと、
>Shock Priceの500円の脱出ってゲーム
アマゾンのユーザレビューでボロクソ言われてんなww
729:名前は開発中のものです。
12/05/15 02:01:02.79 G9xvbrPp
「パソコン」はまだ言うなw
スマソ
730:名前は開発中のものです。
12/05/15 02:28:36.70 I26iNYfr
マイコン
731:名前は開発中のものです。
12/05/15 04:55:54.75 l3PfYtxB
コンピュータの話をするとそんなもん何の役に立つんだと
老害教師に鼻で笑われたなー
732:名前は開発中のものです。
12/05/15 06:22:59.75 WoSDo/nx
実際役に立たないから困る
733:名前は開発中のものです。
12/05/15 08:27:06.44 n+C8wzG1
実際ゲームのメイン部分ってwhileじゃないと駄目なの?
GPの館に書いてあったんだが
734:名前は開発中のものです。
12/05/15 08:46:09.63 P26WoJ+E
他の制御構文は
for:初期化式と再初期化式が省略可能だが余分
do~while:初回無条件に実行が必要じゃない
goto:基本的に使用は避ける
無駄が無いからwhileを使う
735:名前は開発中のものです。
12/05/15 10:45:28.39 /AN6bfUC
while以外に何を使いたいんだ?w
736:名前は開発中のものです。
12/05/15 11:24:27.70 7q5MiGtI
do~whileを使うプログラマ、使わせるSEはクズ
737:名前は開発中のものです。
12/05/15 13:32:48.02 DvZhu9E1
統一させないといけない仕事ならともかく、
趣味でやる分には好きにすればいいと思うよ
738:名前は開発中のものです。
12/05/15 15:26:41.12 WoSDo/nx
while(true)よりfor(;;)の方が速いらしい
739:名前は開発中のものです。
12/05/15 15:36:07.96 7MbmXZQt
そもそもそれぞれ機能が違うんだから「ループ処理」みたいにバカな一括りにしてないで使い分けろよw
740:名前は開発中のものです。
12/05/15 17:48:29.94 K4tOkwgR
そんな微妙な差をきにするほどのゲームなのかと聞きたい
741:名前は開発中のものです。
12/05/15 18:39:55.59 WoSDo/nx
for, foreach, while, doはforに統一してもいいよな。
for(int i=0; i<5; i++){}
for(Type object : array){}
for(true){}
{}for(true)
742:名前は開発中のものです。
12/05/15 20:11:20.70 jK/Ti//s
>>740
宗教寄りな個々の拘りの問題で、出来上がる物にそこまで影響してこないでしょ
>>736 がそう思う理由を聞きたい。普段から殆ど使わないけど、なにかか不味かったけ?
743:名前は開発中のものです。
12/05/15 20:18:12.31 FJN+ySbI
do~whileの存在なんて忘れかけてたわw
744:名前は開発中のものです。
12/05/15 20:30:17.74 Q/+zfBD6
do~whileは一生使わないと思う
745:名前は開発中のものです。
12/05/15 21:38:56.48 NycYNCvV
僕この前使ったことあるよ!!
二次元上の点をランダムな点(ただしPCの半径n以外)を得るコードの時に人生で初めて
746:名前は開発中のものです。
12/05/15 21:42:25.47 I2CLfunR
do whileはstd::next_permutationで使うくらい
747:名前は開発中のものです。
12/05/15 22:14:03.49 AbQ+Urgd
do{
処理;
if(エラーチェック1) break;
処理;
if(エラーチェック2) break;
処理;
return;//正常終了
}while(false);
エラー処理
return;
これでgoto要らず・・・
748:名前は開発中のものです。
12/05/15 22:15:08.62 SjeSUqBD
構文がもし do while(条件) { ... } だったら、もうちょっと使ってたかもしれない
749:名前は開発中のものです。
12/05/15 22:34:26.99 AbQ+Urgd
あと有名なのははDuff's Device
send(to, from, count)
register short *to, *from;
register count;
{
register n=(count+7)/8;
switch(count%8){
case 0: do{ *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while(--n>0);
}
}
750:名前は開発中のものです。
12/05/16 01:14:43.27 E/82p3zm
>>749
なんだこれは
751:名前は開発中のものです。
12/05/16 01:33:14.92 E/82p3zm
>>659だけど
他で作った好きな要素数の配列をnewしてアドレス変数をポンポン交換してって
使い終わったやつはdeleteで開放
で擬似的に動的配列になるかね
日本語意味不明だけど解読してくれると嬉しい
752:名前は開発中のものです。
12/05/16 01:53:38.37 uCI89rGL
配列は定数しか無理だよ
動的配列のvectorじゃだめなん?
753:名前は開発中のものです。
12/05/16 03:41:31.70 veKNCjZ1
vectorが内部でやってることだろ。
基本を抑えずvector使っても結局詰まるよ。
754:名前は開発中のものです。
12/05/16 04:11:42.74 xN96LXhW
vectorとか適当にぶん回しても要素1000くらいまでならマジ優等生
何も考えずにvector使えばいいよ
755:名前は開発中のものです。
12/05/16 20:28:31.12 veKNCjZ1
おまじないプログラマーの甘言を真に受けないように
756:名前は開発中のものです。
12/05/16 21:05:20.10 Zs3i0kMO
プログラマーとして一流になる必要などなくて、ゲームが作れればいいんだから、
さっさとvector使えばええやん
C++ STL vectorとかでぐぐれば資料もたくさんあるから、必要な情報も得やすい
757:名前は開発中のものです。
12/05/16 21:17:43.67 xcEAC60x
名前空間とかわけわからんdせう
758:名前は開発中のものです。
12/05/16 21:22:50.79 xcEAC60x
クラスをインスタンス化する時コンストラクタやiniメソッドでメンバを初期化するとする
この時わざわざ
class Constructor{
private:
int x,y,z;
public:
Constructor(tmpx,tmpy,tmpz){
x=tmpx;
y=tmpy;
z=tmpz;
}
}
って名前変えて一個ずつ代入していくのが面倒なんだけど、この方法しかないの?
Constructor(x,y,z){}
が出来るならいいんだけど
759:名前は開発中のものです。
12/05/16 21:52:32.82 Ii6Gjoka
Constructor(int tmpx, int tmpy, int tmpz) : x(tmpx), y(tmpy), z(tmpz) {}
とかどうよ
760:名前は開発中のものです。
12/05/16 22:06:52.36 xcEAC60x
やっぱなんかダサイねん(´・ω・`)
tmpとか無くしたい
x→tmpx→x
↓
x→x
761:名前は開発中のものです。
12/05/16 22:10:09.69 DWTPf8LX
テンプレートで初期化を自動化するstatic関数作ればいいじゃん
こういうのってC++でもできるよね?
762:名前は開発中のものです。
12/05/16 22:13:40.69 xcEAC60x
なんかこう、パラメータヒントの変数名がtmpでダサい(´・ω・`)
763:名前は開発中のものです。
12/05/16 22:22:46.08 GI6piSjh
大文字・小文字で区別ができるんじゃ?
764:名前は開発中のものです。
12/05/16 22:23:30.21 aRUZ3+na
同じ名前でもいいぞ、混乱しないようにメンバ変数にthis付けたほうが安全だけど
765:名前は開発中のものです。
12/05/16 22:30:48.24 uOBgzP4U
class point {
private:
int x,y;
public:
point()
{
*this = point(x,y);
}
point(int x,int y) : x(x),y(y)
{
}
};
ってダメかね
766:名前は開発中のものです。
12/05/16 22:54:49.23 vXiMaXO2
>>758
内部変数とアクセッサ・引数用の変数ネーミングのルールを作る。
内部変数は省略形で書き易く、アクセッサ・引数用は分かりやすく。
それ以上気にすると先に進まん。
なんかいい方法があれば後で直せば良いや、くらいで。
767:名前は開発中のものです。
12/05/16 23:53:20.10 O28tHfhr
>>764
安全っつーか、thisつけないとアクセスできないでしょ
768:名前は開発中のものです。
12/05/17 00:12:52.18 lbGUPy7y
俺ならこうだな
変数は構造体の中にまとめる
変数が増えても構造体をいじるだけでいい
typedef struct xyz
{
int x;
int y;
int z;
}stXYZ;
class Constructor
{
private:
stXYZ xyz;
public:
Constructor(stXYZ *pstTmp)
{
memcpy(&xyz,pstTmp,sizeof xyz);
}
};
//呼び出し側
stXYZ stTmp = {1,2,3};
Constructor constructor(&stTmp);
769:名前は開発中のものです。
12/05/17 00:24:19.25 Jj8o5dc4
>>768
(・δ・`)
770:名前は開発中のものです。
12/05/17 04:59:40.80 4FnschNb
>>767
初期化子リストじゃだめなの?
class foo
{
public:
foo (int x, int y) : x(x), y(x) {}
private:
int x,y;
};
771:名前は開発中のものです。
12/05/17 08:20:02.90 XdhnKfWC
できればコンストラクタに引数渡したくないな
772:名前は開発中のものです。
12/05/17 09:51:33.09 Jj8o5dc4
よくわからんけど引数から直接メンバにデータを渡す事は変数介さないと無理でok?
773:名前は開発中のものです。
12/05/17 10:48:59.52 72LABUA9
そこは見た目だけの問題だからintとか組み込み型だと最適化で消える場合もある
774:名前は開発中のものです。
12/05/17 12:18:20.00 kt0acN7f
レベル高すぎてついていけない
775:名前は開発中のものです。
12/05/17 12:51:45.63 XdhnKfWC
別にsetter, getterない publicなメンバ変数を持ってもいいし、
visual studio c++ 専用だけどpropertyという機能もある
776:名前は開発中のものです。
12/05/17 16:09:41.33 jk5kVr/j
>>774
安心しろ、俺もだ
777:名前は開発中のものです。
12/05/17 16:36:03.67 LEC6LKtf
C++の構造体ってデフォがpublicなクラスみたいなもんだし
メンバ関数作って使い方の感覚得るとかいんじゃね
778:名前は開発中のものです。
12/05/17 17:43:23.17 ucuijB6C
厨房だけど、何からすればいいか分からん
C言語は入門書一冊熟読した
知識はそれだけです
779:名前は開発中のものです。
12/05/17 17:53:24.70 A/eH0jcf
何すれば良いか分からんやつは大抵できないから好き勝手ゲーム作ったりしてれば良いと思う
780:名前は開発中のものです。
12/05/17 18:19:27.36 Le624jWk
ファミコンのマリオみたいなの作るといいよ
あの滑らかなジャンプの曲線の動きとか作るのすげー勉強になるし、実際に動いてるの見ると楽しい
781:名前は開発中のものです。
12/05/17 18:25:10.94 sA5HBbyr
>>778
作りたいもの作ればいいよ。
作りたいものがなければ違うことやればいいと思うよ
782:名前は開発中のものです。
12/05/17 18:42:01.27 Lq82mTDs
ちょっと待て、熟読したとは言ったが、実際にコードを入力して試したのか?
ともかく、DxLibとC言語で簡単なゲーム作る本があるから探して買うか図書館で借りるかして試してみればいいよ。
783:名前は開発中のものです。
12/05/17 18:44:31.06 CIWlPPKp
昔はベーマガを見て覚えたもんだが
784:名前は開発中のものです。
12/05/17 19:04:17.83 1miPR200
俺は見た(読む)だけじゃ絶対身につかなかったな。
実際に動かして見てやっと理解できる。
785:名前は開発中のものです。
12/05/17 21:17:20.29 MVax3Amg
俺はサンプルプログラムを1個改造して、
次のサンプルプログラムを1個改造して、
気に入ったのがあったら沢山改造して、というのを繰り返して身に着けたな
786:名前は開発中のものです。
12/05/18 00:14:29.29 4zRGqSRr
URLリンク(rpg.nengu.jp)
このサイトのソース読みながら覚えたいのですが
RPG.vcprojをドラッグアンドドロップして
vc++2008に変換しようとすると
「ゲームファイルの初期化に失敗しました」と何度試しても出ます。
VC++2010は低スペなので使えないのですがどうすれば変換できるのでしょうか
もしダメならこれ以外でVC++2008で公開されているrpgのサンプルがあれば教えてください
お願いします
787:名前は開発中のものです。
12/05/18 00:56:44.66 Kw1eEMY1
staticで保持して置いた配列を使い終わったら開放したいんだけどどうしたらいいでしょうか?
788:名前は開発中のものです。
12/05/18 00:58:13.40 gx1xQNnD
staticの固定長配列はプログラムが終了すると自動的に解放されます
それ以外に開放手段はありません
789:名前は開発中のものです。
12/05/18 00:59:03.38 Kw1eEMY1
関数func1,func2でそれぞれstatic変数を宣言した時、中身は共通になりますか?
790:名前は開発中のものです。
12/05/18 00:59:42.96 mamO/m7+
C++なら終了するまでスコープから外れないので解放されない。
解放する必要があるなら、
配列へのポインタで変数を確保してnewでヒープを確保、
必要になったらdeleteすればok
791:名前は開発中のものです。
12/05/18 00:59:50.88 Kw1eEMY1
>>788
ありがとうございます
792:名前は開発中のものです。
12/05/18 01:00:56.05 mamO/m7+
>>789
関数内で宣言されるstatic変数はスコープは関数の内部のみ。
従って別物。
793:名前は開発中のものです。
12/05/18 01:04:36.26 Kw1eEMY1
>>790
なんかよくわからないので具体的にコード書いてくれると嬉しいです。
・配列arrの引数m分だけ要素数を持つint型配列を引数&pに作成する関数
とかだとわかりやすくて自分が喜びます。
図々しくてすみません。
794:名前は開発中のものです。
12/05/18 01:05:51.71 Kw1eEMY1
やはり某製作支援サイトのようにメインループの前に変数宣言した方が良いのかな・・・
795:名前は開発中のものです。
12/05/18 01:20:06.21 mamO/m7+
>>793
//えーと、
// 適当な配列
int[] arr = {0,1,2,3,4,5,6,7,8,9,}
void dynamic_array(int*& p, int length)
{
//lengthnこのintを確保
p = new int[length];
// arrからコピー
for(int i = 0; i < length; ++i)
{
p[i] = arr[i];
}
}
// pを解放するときは、
// delete[] p;
796:名前は開発中のものです。
12/05/18 02:44:50.20 g6CQrJUG
>>793
>>795 のSTL版
#include <vector>
void dynamic_array(int*& p, int length)
{
auto v = std::vector<int>(length);
p = v.data();
}
797:名前は開発中のものです。
12/05/18 12:33:49.02 AXglkRe5
なんでここC++スレになってるんだ
798:名前は開発中のものです。
12/05/18 12:39:42.25 aBuN5zeL
DXライブラリで詰まる人はcなのかライブラリなのか区別が付かないからではないでしょうか
799:名前は開発中のものです。
12/05/18 12:52:20.63 tTxAGc55
俺みたいにDXライブラリに頼らなくてはゲームも作れないレベルの人間だと
C++についてもよくわかってなかったりするからつい、だろうね。
他のスレだと”DXライブラリに頼らなくていい人”ばかりに思えて気後れする。
800:名前は開発中のものです。
12/05/18 14:58:56.44 AqX5CuAi
>>796
dynamic_array終了時に開放されね?
>>787が単にヒープに置きたいということでなければ>>795の方法しかないと思う
もしくはvector自体new/deleteするか
801:名前は開発中のものです。
12/05/18 21:35:11.00 0qQFV47b
今時ダウンロードしてまでゲームやる人いるのかね
802:名前は開発中のものです。
12/05/18 22:52:22.12 Avt8/Znc
>>800
>vector自体new/delete
スマポをnewするとか意味ないだろ。
>>796はドヤ顔でSTL勧める本人がSTLを理解してなかった良い例。
803:名前は開発中のものです。
12/05/19 00:27:03.52 VD4oJ3BE
STLのmapに(キー重複しない)insertを繰り返していくと、
メモリはわずかながら消費されていくと思うんだけど、
それってnewが繰り返されてるってことだよね。
アクション性の高いゲームでメインループ内でnewとか使っていいのかな。
普段は軽い処理でも、メモリ確保と開放が絡むと、どこかでカクついたりしないか心配。
気にせずやってるけどカクつきなんて発生したことないよ、ということなら安心なんだけど。
804:名前は開発中のものです。
12/05/19 00:28:28.08 r1qEY4jZ
冷静に考えて、今時って携帯ゲームやネトゲが主体だろ?
DXライブラリでパソコンで動くゲームって当たり前だが
そういうのが逆に新鮮じゃね?
805:名前は開発中のものです。
12/05/19 00:49:21.53 TBtSNI4j
>>803
もしも、メインループで毎フレームほど行なうっていうのなら、
そういう処理を行なう事自体を、見直す必要があると思うけど。
806:名前は開発中のものです。
12/05/19 01:02:15.71 a+urZXjQ
GCが起動するわけでもないならnew/deleteにあまり神経質になる必要はないと思うけど・・
807:名前は開発中のものです。
12/05/19 01:10:30.26 ZOsD1vO4
>>803
new deleteが重いというけど、なにをnew deleteするかでまた違うのよ。
new int とか new char[32] みたいに1回で終われば気にするほどでもない。
new Hoge で Hogeのコンストラクタの中でまたたくさん new() よばれているような
階層深く大きいクラスのnew, deleteが重いから、
その場合だけオブジェクトプールを検討すればいい。
808:名前は開発中のものです。
12/05/19 01:27:35.13 QmsbQiPL
一応ラウンド(ステージ)管理クラス生成時に
設定されたキャラクターの数だけ配列を宣言する形なんだけど
配列用ポインタを持たせたら、参照先が使い捨てになる。
で、動的に配列の要素数を操作すればポインタで使い捨てじゃなくてもいいんじゃないかと
809:名前は開発中のものです。
12/05/19 02:35:24.88 ZOsD1vO4
それは最大数がステージの開始時にわかってて、
最大数分のメモリを確保しっぱなしにするって話だろ?
それができる(普通な)規模のステージならそれがいい。
ステージだとかシーンと呼ばれる単位で一括確保・解放できればそれがベスト。
810:名前は開発中のものです。
12/05/19 09:17:44.64 9Hyd3HTN
最近のPCの場合、個人制作のゲームなら
全部メモリ確保してもいいともうけどな
811:名前は開発中のものです。
12/05/19 10:43:57.82 lxOdfsYj
new/delete遅い遅いっつーけどwinの実装はくそ速いぞ。
一定サイズ以下ならただのプールからの切り出しだし。
812:名前は開発中のものです。
12/05/19 10:46:39.32 VD4oJ3BE
>>807
オブジェクトはゲーム起動時に最大数をメモリ確保してある前提だったりする。
そこで、mapにinsertするpairが仮にintとポインタだったとして、
insertのときにそのintとポインタ分の小さいnewが起動するし、
eraseのときにはそれがdeleteされると思う。
で、その回数が膨大になったとき、GCみたいな時間くう処理が起動して
カクついたら困るなーと。特にアクション性の高いゲームだと。
たとえばメモリを新たに大量確保する処理が起動して時間くうとか。
そんなものは発生しない、なら、安心してコンテナ使ってゲーム作れるんだけど。
アクション性の高いゲームでも普通にコンテナ使うのが定番だよ、ということなら安心なんだけど、
そのあたりよくわからなくて。
813:名前は開発中のものです。
12/05/19 11:09:09.97 ArUyj87Z
>>809
具体的なコードがわからないんだよ
class RoundAdmin{
Character character[];
RoundAdmin(int i){
for(int t=0;t<i;t++){
character[i] = new Character;
}
}
}
814:名前は開発中のものです。
12/05/19 11:09:37.11 ArUyj87Z
iPhoneスペース無視されてワロタ
815:名前は開発中のものです。
12/05/19 11:24:53.82 8/80f/4q
>>812
メモリを確保する時間よりも、メモリが確保できるかどうかが問題だな
コンテナが定番かどうかはこういうのが詳しい
URLリンク(d.hatena.ne.jp)
個人・小規模でPCゲー製作ならSTLで充分かと
816:名前は開発中のものです。
12/05/19 11:38:54.28 ArUyj87Z
>>813続き
イメージとしてはこれができたら楽なんだ
winmain(~~~~~){
int state;
while(error()){
switch(state){
case 0:
RoundAdmin RAdmin=new RoundAdmin();
break;
case 1:
state=RAdmin.Func();
break;
case 99:
delete RAdmin;
break;
}
}
}
817:名前は開発中のものです。
12/05/19 11:52:46.30 aIMhivPJ
try,catch,throwじゃ駄目なのか?
818:名前は開発中のものです。
12/05/19 12:00:09.24 gXEjt6C9
goto使えば良いんでね?
819:名前は開発中のものです。
12/05/19 12:22:43.39 VD4oJ3BE
>>815
ありがとう。参考になる
自分はまさに個人・小規模でPCゲー製作だから、
out of memoryの心配だけはないんだよな
820:名前は開発中のものです。
12/05/19 12:24:45.52 HSIQMcFD
オーバーライドして作ったクラスのオブジェクトをコンテナに突っ込んでイテレータで回しながら共通関数を実行するんだろ
821:名前は開発中のものです。
12/05/19 12:49:35.26 JpqeYW60
>>820
ポリモーフィズムと言え。ややこしい
822:名前は開発中のものです。
12/05/19 12:58:30.97 zRojJiyg
>>816
OGRE3DのAdvancedOgreFrameworkがシーンの使い分けを解りやすく実装してるよ
仕組みだけなので2Dでも十分使える、ただ3DゲームならOGRE3D使ったほうがDXライブラリより楽だけど
823:名前は開発中のものです。
12/05/19 13:12:00.32 dlfQry7w
メモリ確保かー。
そういえばこの間、少し大きめの構造体の配列を用意しようとしたんだけど
STRUCT_HOGE hoge[1024];
だと実行時エラーで、
STRUCT_HOGE *hoge = new STRUCT_HOGE[1024];
だと問題なく動くってことがあった。
頭では理解してたけど、実際遭遇したのは初めてだった。
824:名前は開発中のものです。
12/05/19 13:46:07.27 PlH7X2T2
>>823
初心者が良くやるミスだね
825:名前は開発中のものです。
12/05/19 14:26:49.52 1CGbweqQ
ちなみにそれ原因は何ですか?
826:名前は開発中のものです。
12/05/19 14:51:44.70 VD4oJ3BE
stackとheapでぐぐれ