1 名前:名前は開発中のものです。 mailto:sage [2010/10/04(月) 17:24:47 ID:zBoueRHu] Cを習得した程度のスキルでも、 GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。 【公式】 homepage2.nifty.com/natupaji/DxLib/ 【過去スレ】 DXライブラリ 総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1197468399/ DXライブラリ 総合スレッド 2008 pc11.2ch.net/test/read.cgi/gamedev/1224923873/ DXライブラリ 総合スレッド その3 pc11.2ch.net/test/read.cgi/gamedev/1238429676/ DXライブラリ 総合スレッド その4 pc11.2ch.net/test/read.cgi/gamedev/1249822550/ DXライブラリ 総合スレッド その5 pc11.2ch.net/test/read.cgi/gamedev/1259912953/ DXライブラリ 総合スレッド その6 hibari.2ch.net/test/read.cgi/gamedev/1267108154/
513 名前:名前は開発中のものです。 mailto:sage [2010/12/28(火) 22:20:47 ID:mz1FzYji] softimageとか言うのを使ったらできたわw
514 名前:名前は開発中のものです。 mailto:sage [2010/12/28(火) 22:20:48 ID:WLmNs1bp] 色コードはプレイする環境によって変わってくる仕様なので解析するのはちょっと面倒だと思いますが GetColor2という、ドキュメント化されてない関数でRGB値は取れるみたいですよ extern int GetColor2( int Color, int *Red, int *Green, int *Blue ) ; // 画面モードに対応した色データ値から個々の3原色データを抜き出す
515 名前:名前は開発中のものです。 mailto:sage [2010/12/29(水) 18:15:22 ID:G0RIxFok] SaveDrawScreenToBMPってサイズ制限ある? 250x8000くらいで試すと強制終了したんだが
516 名前:名前は開発中のものです。 mailto:sage [2010/12/29(水) 18:23:36 ID:G0RIxFok] サンプルコードも貼っとくか。SaveDrawScreenToBMP関数の先で強制終了している。 #include "DxLib.h" // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE); if( DxLib_Init() == -1 ) { return -1 ; } int W = 256; int H = 8000; int screen = MakeScreen(W, H); SetDrawScreen(screen); DrawBox(0, 0, 0,2000, GetColor(0xff, 0x00, 0x00), TRUE); DrawBox(0,2000, 0,4000, GetColor(0x00, 0xff, 0x00), TRUE); DrawBox(0,4000, 0,6000, GetColor(0x00, 0x00, 0xff), TRUE); DrawBox(0,6000, 0,8000, GetColor(0xff, 0xff, 0x00), TRUE); SaveDrawScreenToBMP(0, 0, W, H, "output.bmp"); DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
517 名前:名前は開発中のものです。 mailto:sage [2010/12/29(水) 22:06:16 ID:SA3aEaKL] おまえのスクリーン環境がそのサイズに対応してないんじゃないのか?
518 名前:名前は開発中のものです。 mailto:sage [2011/01/01(土) 06:38:58 ID:jkvcK/MP] あけましておめでとう 今年もDXライブラリにお世話になります
519 名前:名前は開発中のものです。 mailto:sage [2011/01/07(金) 11:39:21 ID:8D9xj+sX] 新年早々バージョンアップきてるな
520 名前:名前は開発中のものです。 mailto:sage [2011/01/07(金) 16:38:30 ID:ksMhJX/5] ConnectNetWorkってスレッドで実行すると GetLostNetWorkが取れなくなるだね... 接続を非同期でやる場合どーすりゃいいだ?
521 名前:名前は開発中のものです。 mailto:sage [2011/01/09(日) 15:07:16 ID:riAmXpMv] 最近じゃ動画サイトを利用したアピールも多くなってきたけど、 実際、プレイ動画のキャプチャってどうやってる? フリー版に挿入されるロゴが目立ちすぎる(ゲームの重要情報と被る)とか、 相性が悪いのか上手くキャプチャ出来ないとか、そんなのばっかりだ。
522 名前:名前は開発中のものです。 mailto:sage [2011/01/09(日) 15:19:11 ID:DphiUSmk] WMEのPC用の高品質VBRかアマレココ(外部コーデック使えばロゴ出ない)で撮ってaviutlでエンコこれ最強
523 名前:名前は開発中のものです。 mailto:sage [2011/01/10(月) 04:40:56 ID:98VKFiRq] 「ふぬああ」と「SCFH」で録って「aviutl」でエンコ
524 名前:名前は開発中のものです。 mailto:sage [2011/01/10(月) 15:27:41 ID:3Lnx4KMp] あとはコーデックかな。 プレイ動画に適したシェアウェアってだけに、アマレココのコーデックはかなり使いやすいと感じた。
525 名前:名前は開発中のものです。 mailto:sage [2011/01/11(火) 18:50:23 ID:ahTB1MTp] ロゴ入ったらすげぇ安っぽい
526 名前:名前は開発中のものです。 mailto:sage [2011/01/12(水) 23:59:17 ID:IX6UcwL7] アマレココ使ってる。 アマレココ + AMV3ならロゴも出ないし。
527 名前: [―{}@{}@{}-] 名前は開発中のものです。 mailto:sage [2011/01/13(木) 17:14:55 ID:gTveb5NK] ひょっとしてLoadGraphで読み込む画像のサイズが大きい程、 実際に描画するサイズに関わらず、その画像の描画速度が落ちる?
528 名前:名前は開発中のものです。 mailto:sage [2011/01/13(木) 18:27:31 ID:KfPfaEX5] 日本語でおk
529 名前:名前は開発中のものです。 mailto:sage [2011/01/13(木) 19:04:43 ID:d0pyhd8k] DrawRectGraphとかLoadDivGraphの話っしょ
530 名前:名前は開発中のものです。 mailto:sage [2011/01/14(金) 10:40:57 ID:uYO5nSwA] 同じ画面で使う画像はできるだけ一つに纏めた方が一般に描画は速くなる
531 名前:名前は開発中のものです。 mailto:sage [2011/01/14(金) 10:58:09 ID:npwMhXbr] この場合は、そのまとめた画面が大きくなれば描画が遅くなるのか、って質問だけどね。 ちなみに俺は知らん。
532 名前:名前は開発中のものです。 mailto:sage [2011/01/15(土) 23:02:05 ID:EUnBWKwY] 320×320の画像ファイルを32x32で表示すんのと 64×64の画像ファイルを32x32で表示すんのとでは速度違うの? ってことじゃね
533 名前:名前は開発中のものです。 mailto:sage [2011/01/15(土) 23:26:11 ID:/eCruyJX] 二日も経つのに質問の正しい意図の説明がないとか。
534 名前:名前は開発中のものです。 [2011/01/15(土) 23:45:05 ID:9C1Hf1/U] サブ関数中でWaitKey中にウインドウが閉じられたりして終了されたときに プロセスが残るんだけどどうすればいいのかな
535 名前:名前は開発中のものです。 [2011/01/15(土) 23:46:02 ID:9C1Hf1/U] ミスった ×WaitKey ○WaitTimer
536 名前:名前は開発中のものです。 [2011/01/16(日) 00:51:04 ID:c7K8Nuaq] サーセン自己解決しましたww
537 名前:名前は開発中のものです。 mailto:sage [2011/01/16(日) 02:19:17 ID:1qe/HxOd] 解決したなら、結果も書けよ
538 名前:名前は開発中のものです。 mailto:sage [2011/01/17(月) 20:35:56 ID:CJVx/DXa] どうせDxLib_Endしてなかったって落ちでしょ
539 名前:名前は開発中のものです。 mailto:sage [2011/01/20(木) 20:32:07 ID:fPAiy4d6] やっぱり画像サイズが小さい方が高速なようだぞ msdn.microsoft.com/ja-jp/library/ee422132 (v=VS.85).aspx >テクスチャー サイズ >テクスチャー マッピングのパフォーマンスは、メモリーの速度に大きく依存します。 >アプリケーションのテクスチャーをキャッシュする際のパフォーマンスを最大限に高める方法がいくつかあります。 > >?テクスチャーを小さくする。テクスチャーが小さいほど、メイン CPU の 2 次キャッシュに格納される可能性が高くなります。
540 名前:名前は開発中のものです。 mailto:sage [2011/01/21(金) 01:10:43 ID:W9RTX3n7] その解釈で大丈夫か? 俺はその下に書いてあることの方が気になる
541 名前:名前は開発中のものです。 mailto:sage [2011/01/21(金) 02:09:10 ID:wzKupONA] サイズを統一しろとか、正方形のほうがいいとか?
542 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 08:33:51 ID:q+kP4u3W] >>540 キャッシュに格納されればその方が高速だろうからいいんじゃね?
543 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 17:06:43 ID:nWmDlCxz] >>539 サイズが小さいほどキャッシュヒットしやすくてGPU処理が高速になるのは確かだけど それでテクスチャの切り替えが増えたらCPUネックになって結果遅くなるけどね。 32x32のテクスチャ数十枚用意してチップ並べるよりは1枚のでかいテクスチャに並べたほうが全体では遥かに速い。
544 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 17:13:16 ID:f1kvmWCd] UV座標の変化で画像の切り替えをシミュレートした方が速いってこと?
545 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 17:21:24 ID:nWmDlCxz] DXLibレベルの3Dや2DでGPUパワー使い切るなんて事はまずないし大半がCPUネックだからね。
546 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 17:39:36 ID:H9c8Zqw4] 2Dゲームは意外にグラフィック関係の負荷が大きいぞ CPUのほうが遥かに余裕がある
547 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 18:35:47 ID:nWmDlCxz] >>546 確かにシェーダーバリバリ使ってればそうなる可能性もあるね。 シェーダー使うでもない弾幕STG程度ならGPUだけ安物とかじゃなきゃ逆転しないけど。
548 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 19:38:33 ID:IvAtt79g] DXライブラリ使っててネックになりがちなのはソフトウェアイメージだと思う シェーダ使いまくってもGPU使い切るのは難しいけど それと同じことをCPUでやったらすぐ遅くなる
549 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 20:25:57 ID:0zyiUhkk] シェーダ使うような人ってDirectXを直に叩いてそうなイメージあるんだけど、なんでDXライブラリわざわざ使うん? やっぱり楽だからなのかな
550 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 22:43:09 ID:Z/kvqeQz] DXライブラリで作成 → DirectXも勉強しよう → 最低限の自作ライブラリ完成 → あれ、DXライブラリでよくね?
551 名前:名前は開発中のものです。 mailto:sage [2011/01/23(日) 23:46:26 ID:KWKtz5p6] ディアドラエンプティは多分GPU使い切ってた・・・
552 名前:名前は開発中のものです。 mailto:sage [2011/01/24(月) 01:28:52 ID:wjN8XYMH] 2d画像大量描画で重くなるのはCPUのせいなん?
553 名前:名前は開発中のものです。 mailto:sage [2011/01/24(月) 09:19:47 ID:KVnOBkQs] >>552 弾幕STG程度の数ならCPU。 あるいはGPUがウンコな場合じゃないかね。 CPUがCore-i7だったら最低でもGTX460くらいは乗ってないとアンバランスだよ。
554 名前:名前は開発中のものです。 mailto:sage [2011/01/24(月) 12:14:25 ID:1+lLPttT] 弾幕STGでネックになるのは描画のほうだ 自機と敵弾だけのヒットチェックなら、PEN4でも千発くらい余裕 あんまりいい加減なことばっか言うなよ・・・
555 名前:名前は開発中のものです。 mailto:sage [2011/01/24(月) 12:55:34 ID:ML4bQUJ7] 答えの出ないことで言い争うなよにゃー PCのスペックのバランスも、ゲームの処理の組み方も人それぞれなのに決まった答えなんてあるわけないじゃないかー とりあえず、今でもユーザが多いと思われるペンティアム4&格安のグラボのPCなら、 描画も処理もボトルネックになりうる ついでにメモリコピーも 弾幕シューティングだって見やすいように弾を大きさ順にソートしたりすると通常なら2000発位でメモリコピーの限界がくるし、 ソートするのをポインタに置き換えてもせいぜい8000発 あたり判定も、自機だけじゃなく地形や弾消し効果のある装備やギミックとかあったらそれともしないといけない。 (弾消し効果のあるオブジェクトをばらまくボムとか) そうなるとCPUがキツい 描画もいろいろ派手にやろうとしたら当然キツくなるし それぞれのゲームでどこがネックになってるのかは知らないけど、 一概にまとめてしまうことほどいい加減なことはないと思うよ
556 名前:名前は開発中のものです。 mailto:sage [2011/01/24(月) 21:43:33 ID:0k067Wc4] MSXのゲームを再現したものを作っている俺には関係の無い話だ
557 名前:名前は開発中のものです。 mailto:sage [2011/01/24(月) 22:36:16 ID:KVnOBkQs] >>554 一応言っておくとDrawの内部処理はCPU時間だからな。
558 名前:名前は開発中のものです。 mailto:sage [2011/01/25(火) 07:36:37 ID:NxzPZBrJ] >>556 もちろんSCREEN 1/2, 1/4の再現で作ってるんだろ? まさかSCREEN5なんて甘えてないよな?
559 名前:名前は開発中のものです。 mailto:sage [2011/01/25(火) 08:42:34 ID:yWcoJylW] MSXは憧れの高機能マシンだったなあ
560 名前:名前は開発中のものです。 mailto:sage [2011/01/26(水) 04:12:58 ID:ytMOHDuv] MSXがMicroSoftXの略だったって話を考えると MSのXもDirectになったり箱になったりして随分遠くまで来たもんだ
561 名前:名前は開発中のものです。 mailto:sage [2011/01/28(金) 23:21:46 ID:PzwgS6UW] >>559 MSXが憧れってじゃあお前は何を使ってたんだw
562 名前:名前は開発中のものです。 mailto:sage [2011/01/29(土) 00:07:20 ID:9LQ+YQfG] ファミリーベーシックだろう
563 名前:名前は開発中のものです。 mailto:sage [2011/01/29(土) 00:32:54 ID:ZIlDfxx5] せめてVIC-1001で。
564 名前:名前は開発中のものです。 mailto:sage [2011/01/29(土) 08:54:49 ID:dRLffL3I] X68をメインマシンにしている時に、MSX2が安くなったので買ってみたけど、あの仕様に頭抱えて結局プログラムはしなかったなw
565 名前:名前は開発中のものです。 mailto:sage [2011/01/31(月) 21:56:46 ID:4ery4aCN] 描画を別スレッドに投げたいんだけど、上手くメインループと同期がとれないんだけども、どうしたらいいだろう
566 名前:名前は開発中のものです。 mailto:sage [2011/02/01(火) 03:48:11 ID:79+HC0cS] 別スレッドに投げるってそういうことじゃないの?
567 名前:名前は開発中のものです。 [2011/02/01(火) 11:31:33 ID:A4LUO7Q2] 描画みたいな終了までずっと継続してるもんを同期取ったら意味なくね?
568 名前:名前は開発中のものです。 mailto:sage [2011/02/01(火) 20:20:20 ID:A8vzk+3q] >>565 msdn.microsoft.com/en-us/library/ms686967%28v=VS.85%29.aspx 条件変数はVista以降用らしいから使わないほうがいいかもね
569 名前:名前は開発中のものです。 mailto:sage [2011/02/01(火) 22:47:16 ID:rB9l6gPH] 初心者です。 色コードについて教えてください。 int Cr ; Cr = GetPixel( X , Y ) ; と書いて取得した色コードってどういう数値になってますか? ちなみに、座標(X , Y)の色は白です。
570 名前:名前は開発中のものです。 mailto:sage [2011/02/01(火) 23:33:01 ID:Jeb3TyFU] それ俺がこの前質問したジャン 俺はsoftimageでやったよ
571 名前:名前は開発中のものです。 mailto:sage [2011/02/01(火) 23:38:10 ID:WZpjV7+o] FF(255)が全部入るんじゃないの? (255 , 255 , 255) そのまんまだけど…
572 名前:名前は開発中のものです。 mailto:sage [2011/02/01(火) 23:50:03 ID:rB9l6gPH] >>570 すみませんでした。 >>67 で >白ドットのコード取得すると . GetPixel(x, y) = 0x 00 .FF FF FF って書いてましたね。 でも、 0x 00 .FF FF FF の00とFFの間に . を入れるとエラーになるんですが・・・。 質問を変えます。 >>569 でカラーコードを取得したCrを文字列として表示させるにはどうしたらいいですか? int Cr2; Cr2 = GetColor( 105 , 255 , 255 ) ; // 文字列の描画 DrawString( 0 , 0 , "Cr" , Cr2 ); こういう風に書いて、Crの中身のカラーコードを見たいんですけど、 これだと、Crっていう文字列が表示されるだけです。
573 名前:名前は開発中のものです。 mailto:sage [2011/02/01(火) 23:59:47 ID:Jeb3TyFU] いや俺は>>67 じゃねえよ別のレスだよ どうもGetColorで取得した数値は1バイトずつRGBAとかの順で入ってるわけじゃないみたいなんだよ 内部で色をどう扱ってるのかわかんないんだけどバイト単位じゃなくて数ビット単位で色情報を格納してるっぽいんだよな ほんとちょっと込み入ったことをやろうとすると途端に行き詰るライブラリだよな
574 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 00:07:05 ID:QU1cQpLp] >>573 重ね重ね失礼しました。 失礼ついでに、もう一度>>572 の後半の質問をさせていただきます。 getpixelでCrに取得したカラーコードが内部的にどうなっているか、 確かめるにはどうすればいいですか。
575 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 00:12:24 ID:bu2pPj/w] デバッガで止めたらわかるでしょ
576 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 00:56:18 ID:QU1cQpLp] わかりません
577 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 00:58:26 ID:QU1cQpLp] あ、なんか語弊のある言い方でした。 わかんないってのは、デバッガで止めても分からないっていう言う意味じゃなくて、 どこをどうやれば取得した数値を見れるのか分からないっていみです。
578 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 01:07:44 ID:IbX6J+DE] >>514 自分のレスだけど><
579 名前:名前は開発中のものです。 [2011/02/02(水) 01:23:53 ID:IDILEoBM] 社内ニート乙
580 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 01:47:04 ID:Ps3b48Dw] 16進数で表示するだけだと思うが
581 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 02:17:28 ID:QU1cQpLp] 完璧な初心者で、大学もIT関連とはまったく関係ないところをでているのですが、 DXライブラリを使ってゲームを作りたいと思います。 プログラムを深く理解したいとか、自由にプログラミングできるようになりたいという願望はありません。 ただ、イメージするゲームが出来上がりさえすればいいのですが、 参考になるホームページなどあったら教えてください。
582 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 02:27:51 ID:LfAwm6D2] DXライブラリの公式サイト にしても自由にプログラミングできるようにならずに イメージどおりのゲームが作れるとは思えんのだが。
583 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 03:25:08 ID:uDDktiLn] >>581 完璧な中級者になってください
584 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 04:48:25 ID:8khvOAMj] >>581 上級者になれとは言わないけど、C言語の基本もできてなさそうなレベルで 「画材の使い方は知らないけど自分の思い通りの絵が書きたいです! どうしたらいいですか?!」 とな
585 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 07:42:19 ID:r0Z7INQe] >>581 プログラミングの習得を特に目標とせず、単にゲームを作りたいだけなら、 RPGツクールやNScripterに代表されるゲーム作成ツールも選択肢に入れたほうがいいかも。 特定ジャンルに特化したツール(RPGツクール等)から、汎用的なゲームが作れる物(MMF2など)、 無料のものから有料のものまで、幅広く揃ってる。 これ以上はスレ違いなんで、質問スレに行ったほうがいいかもしれんけどね。
586 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 19:23:38 ID:TCBQkI8b] >>581 ゲーム作りたいだけならHSPのほうが楽だと思う
587 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 19:31:23 ID:bu2pPj/w] 習得が簡単なのは確かだけどHSPを"使う"のは難しいぞ 複雑になってくると低レベルすぎて追いつかなくなる
588 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 19:44:15 ID:QU1cQpLp] >>585 ネット対戦が前提なので、どの言語やスクリプトで作るのがいいか聞いたらVc++を紹介されたわけです。 というか、質問スレじゃなかったんですね。
589 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 20:01:33 ID:hzv/tgOd] HSPで作られた良ゲーも多いんだけどな ガンデモニウムとかパチュリとか スレチだけど ところで、OGGとかのBGMを再生時の読み込み時間を待たずに再生する方法ってないのかな…… メモリに全部読み込む以外で
590 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 20:07:20 ID:Ps3b48Dw] それも俺が質問したジャン ストリーム再生でやれ
591 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 20:09:51 ID:3KL3OrrJ] ストリーム再生は普通にリファレンスに書かれてたと思うんだが……。
592 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 20:22:30 ID:3VQRK4Ax] ツクールとかに当てはまらないジャンルならC#+DxLibがオススメ 言語を選ぶ時はエディタの機能も考慮に入れたほうが後々幸せになるよ
593 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 20:41:28 ID:hzv/tgOd] うぉ、音再生関係のトコしか見てなかった 今見つけたありがとう
594 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 20:59:52 ID:+8ZX/yRT] >>592 あ? VS2010disってんの?
595 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 21:26:32 ID:bu2pPj/w] C#もVSファミリーだろ ためしにVC#触ってみたらいかにVC++が時代遅れか分かるよ どっちがいいとかではなくてあくまでIDEの出来の話ね
596 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 22:13:17 ID:TCBQkI8b] >>587 作りたいゲームの規模によるが個人制作うレベルならHSPで十分だと思う それで物足りなくなったら他の言語やればいいし
597 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 22:38:30 ID:Jp9xxVEL] >>594 VS2010でC++のサポートが厚くなったとか?
598 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 22:47:54 ID:+8ZX/yRT] >>597 入力補完もストレスないレベルにまで上がったし、十分 2008のは産廃だったけど
599 名前:名前は開発中のものです。 mailto:sage [2011/02/02(水) 23:13:16 ID:Jp9xxVEL] へー、今度C++使う必要性ができたら使ってみるわ
600 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 01:54:23 ID:9LpGik7P] C++は難しいね 心が折れそう C#に転向する事も考えるべきか
601 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 06:42:07 ID:Y3/6o9hp] >>572 全くスルーされてた俺のレスにレスが付いてたので驚いたw . は間隔調整の為に入れただけだから無視してくれw
602 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 06:48:28 ID:Y3/6o9hp] >>572 "Cr" じゃなくて "%X" なら表示されるんじゃね 違ったらC言語のprintf文のとこでも参照してくれ
603 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 06:52:12 ID:Y3/6o9hp] C系なら初心者ならCでやっとけばいいんじゃね HSPでもいいけど
604 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 07:29:31 ID:eEyTX7bP] Cだと標準ライブラリがちょっと悲しすぎるぞ Windowsでやってるなら素直にC#がいいと思う DXライブラリは面倒になるが・・・
605 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 07:35:00 ID:eEyTX7bP] C#のダメなところは.NETに完全に依存しちゃうところ(プログライミングはやりやすいけど) ほかにはメモリの使用量を抑えるのが難しいのはあるけど、最近のマシンでそんなの気にして制作遅れたりバグ入れたりするぐらいだったらGCに頼ったほうがよい C++をきちんと使えるのは才能のある人だけだよ CやC++の資産がある場合は自分のわかる範囲で使うってのはあるけど・・・
606 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 08:28:54 ID:lL8C3R3E] まともな経験があるマなら各言語プラットフォーム毎の経験と資産は きちんと蓄積&管理されてるはずなので、 ケースバイケースで言語プラットフォームは自然に切り替えるでしょ なんでもかんでもこれ!なんてのは現実的じゃないし
607 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 08:54:08 ID:/gPXlpFb] C#はデコンパイルできちゃうから嫌い
608 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 13:58:09 ID:fGyqttfC] ゲーム関連の本がだいたいC++で書かれてるから プログラム素人だけどC++勉強しながらやってる俺みたいなのもいる
609 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 15:00:34 ID:bDkYlLGV] C++でポインタ使いまくりのプログラミングに慣れた自分にはC#でゲームを作るのが難しそうに思えてしまう…… 弾幕STGみたいなオブジェクトを大量に生成するゲームならC++で、そうでない大人しいゲームならC#でもいけそうなイメージ C++はなんでもできる&書いた通りに動作してくれるってのが大きいと思う メモリとかも無駄に使用しないし、慣れれば高速なコードか書きやすい web上のドキュメントや書籍が多いのも強み
610 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 15:14:13 ID:Hk0Hmg4J] C#では構造体が値型だから弾幕とか大量に生成するものに役立つかもね クラスでもあらかじめ用意しておけばいいだけだけど
611 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 17:51:32 ID:6H4JqMlQ] C++わからなくて投げ出した奴がC#なら使えるとは思えないな オブジェクト指向とかきちんと理解した上で使う分には C#の方がずっと使いやすいしライブラリも充実してて楽だけど そこに行くまでの難易度はそんなに変わらん気がする むしろC#はライブラリ使うのにもオブジェクト指向を強制されるから最初に覚えることはC++より多いような
612 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 18:42:39 ID:56AassLl] >>611 どんな理由をつけてもC++が難しいC#が易しいという事実は変えられない C++が困難なのはメモリ管理とメモリ周りのバグ問題とシステムの不安定化 配列範囲オーバーなどエラーチェックも貧弱すぎたり、すぐに発症しない潜在的なバグも多いから対策が難しい そもそもオブジェクト指向はそんな難解なものじゃないと思うけど、何でそんなもので躓くのかわからん .NETのクラスや構造体なら2〜3時間勉強すればすぐに習得できる、大学受験の勉強に比べれば簡単なものだ
613 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 19:04:03 ID:gm3wvLOR] >すぐに発症しない潜在的なバグも多いから対策が難しい たとえば?
614 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 19:22:23 ID:eEyTX7bP] C++は簡単にやばいコードが書けちゃうのと、例外周りが洗練されてないと思う あと、LINQとラムダ式はいいぜ! ラムダ式はBoostにもあるみたいだけど、使いやすそうには見えない オブジェクト指向なんてこだわる必要ないと思うな クラスライブラリの扱いは慣れたほうが良いけど
615 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 19:33:35 ID:3u282UvH] C++はSTLとboost使ってなんぼ テンプレートは良いな DXライブラリは算術系がだるいから他のライブラリから引っ張ってきたら楽
616 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 19:43:45 ID:1Y7LXctB] テンプレートは深入りしないのが大切 C++は手段が目的化しがち
617 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 21:34:09 ID:nMZv1rw7] C++よりC#が簡単てネタかと思ってたが本気か クラスを理解しないと使えないはずだけど ベターCみたいな使い方なのだろう
618 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 21:49:29 ID:RrMzr2Df] なんとかしてC#は難しいと言うことにしたいんですね
619 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 21:56:17 ID:1Y7LXctB] ゲーム作り自体の方がよっぽど難しい 言語なんか道具、理解してはじめてスタートライン
620 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 22:18:07 ID:Hk0Hmg4J] 最期まで作る忍耐力が問題。RPG作ってた筈なのにいつの間にか放置してるわw
621 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 22:19:16 ID:zXV2l6v9] どっちが難しいかなんて人によりけりだろ。 俺にとってはメモリ管理なんかよりオブジェクト指向のほうが厄介だった。 ただ、初期の段階では、C++のほうが単純だから、 取っ付き易い気はする。まあ、C#使ったことないんだけどさ。
622 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 22:56:55 ID:Bd1QwGmt] ゲームが作れりゃいいんだよ、とC++でBASICみたいな組み方しかしてない俺が言ってみる。 オブジェクト指向? なにそれ。
623 名前:名前は開発中のものです。 [2011/02/03(木) 23:53:40 ID:oJ9LxkAh] 何で作るかじゃなくて何を作るかだと思うわ
624 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 00:41:23 ID:597nw0QH] ナニで作るかは重要じゃない。 でもナンで作るかは重要だぜ。
625 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 00:47:31 ID:tSG+uAMN] C/C++以外カス
626 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 00:57:03 ID:gYkXmix/] C++か・・・これまでの負の遺産を全部捨てたら使ってやってもいいよ
627 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 00:58:12 ID:dtLxRZPd] 何が悪くて何がいいのか分からない俺はとりあえずC++を勉強している
628 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 01:05:58 ID:DD99IIri] 複数やったほうがいいよ 思い込みだけで他の言語叩く子にならないように
629 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 01:11:49 ID:597nw0QH] Cやアセンブリを学んで、コンピュータの基礎を理解したり、 JavaやC#を勉強してオブジェクト指向やクラス化の重要性に気付いたり、 PerlやPythonに触れて目的ごとの向き/不向きを感じ取ったりすることはあるかもね。
630 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 02:05:25 ID:3/Y06AUg] マルチですいませんが、分かりましたら教えてください。 /| / | / | / | x / | / | /θ |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ y この角度、θを求めるためには θ = atan2 ( y , x ) ; って書けばいけるかと思ったんですが、だめでした。 ------------------------------------------------------------------------ atan2 Error:オーバーロードされた関数"atan2"の複数のインスタンスが引数リストと一致します: ------------------------------------------------------------------------ って、エラーがでます。どう修正すればいいですか?( )の中身がおかしいんでしょうか?
631 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 10:56:35 ID:nHohQiTe] ちゃんとコードを書きなさい どうせx,yの型がintだからとかそういうのじゃないの
632 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 11:29:10 ID:597nw0QH] 図のx,yの位置については触れたほうが良いのかしら?
633 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 11:44:14 ID:FnunGuWc] 言語の話になるといつも学習論や効率論になるけど 世の中EXCELやRPGツクールなんかでSTGとか作るような奴だっているんだから どんなもの使っても作りたい物を完成させた奴が勝ちだと思う
634 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 12:52:26 ID:uMhav2M7] マルチポストですかやれやれ
635 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 13:25:29 ID:IKcKTpst] >>633 確かに同人ならどんな開発環境を使おうと自由だけど >>611 みたいな嘘撒くのは辞めたほうがいい、初心者や入門者が可哀想だ どうあがいてもC#・Java・VBなどの方が難易度は低い、C++自信なくて諦めても前者で十分やっていける
636 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 13:35:23 ID:tJPYGZbh] 初心者には嘘かどうかの判断基準もまだ無いんだからお前も同類だけどな
637 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 13:36:36 ID:dPpvdfF6] 初心者はC#やJAVAから入れってのはどこでも言ってることだしな
638 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 14:20:17 ID:nHohQiTe] だいたい、絶対的に”初心者向けだ”と言い切れる言語なんてない 目的によって変わってくるし、言語の難易度もひとつの指標に過ぎない。 ただ、簡単なゲーム作りや、多くの人が思うアプリ製作を目的にするなら、 GUIを非常に作り易いC#やJava、VBで始めるべきだろうな。 まあでも、C++でオブジェクト指向わかんねって投げ出した奴は、 たとえC#をやったとしても出来ないとは思う
639 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 14:38:04 ID:MVi9WYrf] 実例を交えたわかりやすいドキュメントが沢山ある言語こそが「初心者向け」という持論 初心者に必要なものは言語の簡単さよりも、最初の壁をいくつか超えるためのやさしい解説だと思う 初心者ならC#やJAVAから、ってのはゲーム意外の一般的なプログラムでのことなんじゃないかな C++以外はゲーム制作の為の解説サイトとかかなり少ないし
640 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 14:41:03 ID:CU+f2z6I] よくわからんなぁ。 初心者の話してるんだよな? 俺はC++とDXライブラリでゲーム作ってるし作ってきたが、実際のとこC++を使いこなしてるわけじゃない。 初心者に毛が生えた程度だ。けど、何の問題も出ていない。 例えば>>612 の言ってるメモリ管理だのメモリ周りのバグだの、なんて全然考慮してないし存在すら知らない。 むしろそういう事を気にするようになったら上級者だよな? 初心者にはそんな事全然関係ないよ。 初心者にとって易しいってのは、システムまわりの安全性なんかじゃない。 覚える事が少ない段階でも動く物が作れる事。そして、手軽に勉強できる(資料が簡単に手に入る)事だよ。
641 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 15:17:25 ID:E/T+upxq] C#やJavaなどの方が難易度は低い、というのは(覚えることが少なくて済む)という 意味じゃない むしろ C++の方が覚えることは少なくて済むような気もする C#やJavaの場合、覚えたことをそのまま使うパターンでのプログラミングが多い それだけ高レベルのライブラリやらオブジェクトやらが揃ってる →それらの使い方を覚えなきゃならんから、覚えることが多い C++の場合、覚えたことを組み合わせて応用するというプログラミングが要求される →だから、サンプルコードがたくさんあると楽できる もちろん(C#には応用なんて要らない)とは言わないけどな
642 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 15:19:45 ID:+mRmK1/Q] >覚える事が少ない段階でも動く物が作れる事。そして、手軽に勉強できる(資料が簡単に手に入る)事だよ。 これはもっともな正論だね。 しかし、これさえも出来ない初心者が多くいるのは事実だ。
643 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 15:31:20 ID:4gaOamZV] 事実だ(キリッ
644 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 15:32:36 ID:B/8/xRi6] DXライブラリは遊びながらC/C++覚えるにはいいんでないかな コンソール並におまじないが少ないから学習の邪魔にならない C#でもC#+XNAとかになると完全に初心者お断りだよ
645 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 15:41:20 ID:zvmJIej4] >>640 お前の作ったプログラムを公開するとき このプログラムは予期せぬ動作を起こす可能性があるため 自分のパソコンが壊れてもいい人だけ実行してくださいって注意書きをちゃんと付けろよ。
646 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 15:43:37 ID:FTwi59ne] boost使おうとするともれなくテンプレート、メタプログラミング、 ジェネリックの知識が必要になるんだけどね まあ最初が楽かどうかで選ぶならツクールとかになっちゃうから言語の比較は意味ないな
647 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 15:45:42 ID:nHohQiTe] 最低動作環境― OS : WindowsXP SP2 以上 でいいだろ
648 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 16:19:24 ID:cCo0ykp3] HSPでいいと思うよ
649 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 16:25:18 ID:v+xsDxji] >>646 別に「もれなく」ではないだろ
650 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 16:39:47 ID:B/8/xRi6] テンプレートなんてマクロに毛が生えただけ 所詮言葉遊びのパズル
651 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 17:13:25 ID:FTwi59ne] >>649 詳しくどうぞ
652 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 17:16:28 ID:bvXT0uLK] >>651 別にBoostはそんなに敷居高くないぞ・・・
653 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 17:21:27 ID:FTwi59ne] ああ「もれなく」って言葉が気に入らなかったのか
654 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 17:50:00 ID:bf3eC1dG] CとC++がごっちゃになってんじゃね Cは簡単、>>640 が良い例、でもメモリ管理は必須だぞ C++全開で書かれたソースは難しいが ほとんどの場合Cから初めても進むにつれC++寄りになるから続ければ勝手に読めるようになる webで勉強するならC/C++が一番資料多い DXライブラリ+Cは初心者におすすめできると思うぜ んで、さらに時がたつとC#でツール作成してるはず
655 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 18:08:50 ID:nHohQiTe] なってないだろ。 DXライブラリのサンプルコードもC++だし、 ほとんど大多数がC++で開発してると思うぞ。 まあ、ほとんどの、C++の入門サイトも入門書も、 Cから受け継いだ構文・機能の説明を省いてるから、 必然的にCを学ばなきゃいけないのが現実かもしれんが。
656 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 18:54:22 ID:MVi9WYrf] 龍神録のトコなんかC++使ってるのに書き方がまんまCなんで、 クラスもオブジェクト指向もSTLもBoostも使わなくてもあれくらいのモノは作れるってののいい見本だと思う 別にゲーム作るのにオブジェクト指向もBoostも必須なわけではないし、 そんなのが必須になってくるくらいの規模の大きい作品を作ろうとするのは初心者には無茶 使えれば便利だけどね C++はCに機能が追加されたものなんだから、無理に追加されたものを使おうとしなければ、 C++がCより難しいってことはないと思う
657 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 19:14:23 ID:gYkXmix/] 話が噛み合ってないな。寝言で会話してるみたいw
658 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 19:22:22 ID:lLkvF9Gs] 噛み合ってないなw そりゃ使ってるのはC++だろw
659 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 20:05:12 ID:CU+f2z6I] >>654 >でもメモリ管理は必須だぞ メモリ管理って言うけど、具体的に何をするのかピンとこない。 大事なのはわかるんだけどさ。 俺はオブジェクト指向わからんし、クラスの使い方すらも理解していない。 主に使う変数はほとんどグローバルで配列の数も全て固定。 ポインタもどうしても必要な部分以外使ってない。 エラーが起こるとしたら配列範囲オーバーか0除算くらいで、その程度ならなんとでもなる。 あとはDXライブラリで読み込んだ画像データ等を必要に応じてDeleteしていく、くらいしか気をつけてない。
660 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 21:12:04 ID:6/uiWO3/] メモリ管理というと win98ぐらいの時には メモリークリーナーが便利だったな
661 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 22:25:14 ID:N2iHbnIF] メニュー画面やステータス表示など、決まった場所に数字や 文字列を表示するXとYの位置を直にソースコードに書き込むと 頻繁に位置を変更する時ビルドに時間がかかったり 後でわかりにくくなるので、テキストにずらっと位置情報をまとめて それを読み込んで使っています しかし位置情報というのは細かいものまで含めてたくさんあるので 「こんなものまでいちいち読み込んでやるべきなのか?」 と疑問に思うことがあります 皆さんはどうしてますか? 私のやりかたはおかしいでしょうか
662 名前:名前は開発中のものです。 mailto:sage [2011/02/04(金) 22:47:43 ID:bHk+Uq52] >>661 着眼点はよいです ソースコードに埋め込まないほうがよいのは確かです(最低限マクロか定数として分離させるべき) 複雑になってくると自分でも混乱しますけど、それをうまくやる方法ってのは正解はないです 一定の開発スタイルを決めるとそれなりに整理はできるんですが・・・
663 名前:名前は開発中のものです。 [2011/02/05(土) 01:16:00 ID:a1DliHej] ゲームつくりの最中にそういうこと考える人はだいたい完成させられない
664 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 03:59:26 ID:0SOpPPRW] >>659 メモリ管理とは違うけど、とりあえずグローバル変数を極力使わないところから始めてはどうか。 これくらいなら、Cの入門書にも書いてあるレベルだし、慣れれば手間ですらなくなるし。 >>661 小規模開発なら、細かい数字は外部に置かなくても、そこまで問題にはならないと思うよ。 ただし、>662の言う通り、#defineなりconstなりで分離させておくべきだと思う。 >>663 休憩中とか散歩中とか仕事中に考えればいいのよ。
665 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 10:11:08 ID:LqlwHybZ] DXライブラリで文字を書いて、ワードとかメモ帳に出力する方法ってしらない?
666 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 10:18:58 ID:0SOpPPRW] >>665 ワードやメモ帳に、文字列を食わせる方法ってあるのかな。 一旦テキストファイルに出力するのが簡単なんじゃない?
667 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 10:29:33 ID:97+pwl5O] ワードならCOM経由であらゆる操作が出来るけどC++からだとクソ難しいので.NETかスクリプト言語推奨 メモ帳ならキー送るしかない
668 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 10:31:13 ID:LqlwHybZ] 直接ワードやメモ帳に出力できなくてもいいんです。 DrawString を使うと、画面に文字が描画されますが、 それをコピーペーストしてワードに貼り付けることが出来るならそれでもかまわないんです。 実際はできません。 私はまったくの初心者なので、質問がおかしいところもあるかもしれませんが、 >>666 の テキストファイルに出力する っていうやり方を教えてもらえないでしょうか。 どういう関数を使えば出来ることなんでしょうか?
669 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 10:38:37 ID:97+pwl5O] クリップボードに入れるにはWindows APIのSetClipboardData関数を使う ファイルへの出力は、DXライブラリの関数を使ってもいいけど普通はC++の標準ライブラリの 入出力機能を使う どちらにしてもスレ違い
670 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 10:54:09 ID:fuYn973K] >>668 ファイルへ書き出すなら fopen, fprintf, fclose クリップボードへ入れたければ GlobalAlloc,GlobalFree, GlobalLock,GlobalUnlock, OpenClipboard,EmptyClipboard,SetClipboardData,CloseClipboard を使うといいよ
671 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 10:57:01 ID:LqlwHybZ] ありがとうございます。 利用できる関数がそんなにあったんですね。
672 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 21:47:08 ID:zsx+Wg5G] >>659 タスク用のワークエリアを確保したり開放したりしないんだろうね 最初にがばっと確保して、タスクごとに使いまわす
673 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 22:05:24 ID:GZLq5iGw] それは古に廃れたというタスクシステムのことですか?
674 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 22:07:15 ID:n/4Fp6g/] またタスクシステムバカが来たか
675 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 22:19:11 ID:op8JGqIp] そんなメモリの節約に必死になるなんて、 PSPのソフトでも開発してんのか
676 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 23:11:04 ID:7xJ6Lxp5] PSPは酷かったな
677 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 23:41:09 ID:LazTXNwj] PSPでは金玉を回転させるアプリしか作らなかったな
678 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 23:56:58 ID:5PjJbGzB] ちなみにメモリ管理ってメモリを節約するためじゃないからな
679 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 23:58:41 ID:5PjJbGzB] 訂正 >ちなみにメモリ管理ってメモリを節約するためじゃないからな ちなみにメモリ管理ってメモリを節約するためだけじゃないからな
680 名前:名前は開発中のものです。 mailto:sage [2011/02/05(土) 23:59:53 ID:LazTXNwj] メモリ管理という言葉が漠然としすぎていて、 具体的にどういった事をメモリ管理というのか実例を説明してほしいですね
681 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 00:42:48 ID:hi6mskVF] newしてdeleteするってのもメモリ管理、というか普通こっちの意味じゃね?
682 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 00:44:00 ID:edmoP5Oc] sharedptrさいきょう!!!
683 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 00:47:12 ID:Bcoc3jNp] ポインタにNULLを入れて何回でもdeleteしてやる
684 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 00:50:45 ID:Bp6r7tC9] newって何でOSが管理してくれないんだよ
685 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 00:51:42 ID:bBxVkAP5] 初心者がC++を扱うのはメモリ管理をしないといけないから難しい、 って主張だったのに、初心者はnew・deleteは使わないと思うんだけどな…… だから話がループするのかな
686 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 00:55:29 ID:hjXl231Y] C++初心者じゃなくて、new,delete初心者と呼ぼうw
687 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 01:21:28 ID:KavCN3Ib] いまだにnew, deleteの必要性がわからなくて使っていない。
688 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 01:24:03 ID:Bp6r7tC9] 俺は配列を最大でいくつ確保すればいいか不明な場合newを使ってる。 他に使い道あるの?
689 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 01:27:00 ID:KavCN3Ib] >>688 よく知らないけど、そういう場合ってvectorとか使うんじゃないの? まぁ自分は決め打ちでドカッと多目に配列を確保。
690 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 01:40:42 ID:edmoP5Oc] よく考えたらnew/deleteを目にみえる場所で使わないためのvectorだったりするのか いままで気付かなかったわー
691 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 01:46:35 ID:Wfa4vAEK] 結局このスレはC++初心者ばかりだったということですねw
692 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 01:46:56 ID:k3JuiCGX] >>690 いや、根本的に違うだろjk・・・ newはポリモーフィズム使うなら必須っていうかC++使っておいてポリモ使わないとかなにその苦行
693 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 01:48:40 ID:edmoP5Oc] Cで多態させるのにnewとかいらなくね?RAIIあるし
694 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 01:54:34 ID:k3JuiCGX] >>693 は? 多態とRAIIに何の関連性あるんだアホか マジでガチ初心者だらけじゃねえか
695 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 01:57:17 ID:fHNV/tRC] 例えば敵キャラのデータに配列を使うとして、 敵キャラが最大で100体でるのか、それとも10000体以上でるのかわからない、ってのだと PCの動作環境はどうやって決めるんだろう。 最初に「最大1000体、これ以上は出さない」と決めておけば 1000体動くかどうか確認して、「ちゃんと動くな。ではこのPCの性能を最低環境としよう」ってできると思うけど。
696 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 02:01:52 ID:edmoP5Oc] >>694 ちょっと間違って理解してるような気がするので聞いてみるけど newがポリモーフィズムに必須というのはどういうこと?
697 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 02:11:58 ID:KY5hMpMn] ツリーとかグラフ系のデータ構造扱うときはnew必要じゃね? 動的に何かを生成するときは普通使うよね。 ないとできないわけじゃないけど・・・
698 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 02:22:41 ID:bBxVkAP5] >>695 基本的には一番重いシーンで快適に動く環境を推奨スペックとして表記するのが普通 その敵が10000体出るっていうのが滅多にないことなら、それとは別に、普通に遊べるスペックを動作スペックということにしとけばいいと思う newだけど、使い方で一番イメージしやすいのはシーンの管理だと思う タイトル画面でプレイ開始を選択した時点で、外部からタイトル画面クラスをdeleteしてゲームクラスをnewする 外部では常にNULL以外のクラスをアップデート、的な あとは、糞大きいクラスを実体化するとき、newやmallocを使わないと失敗して落ちる場合があるってくらいかな ポリモーフィズムはシラネ
699 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 02:43:28 ID:FYHHz7EY] >>697 と同意なんだけど それ以外のやり方あるなら教えてもらいたい
700 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 02:45:17 ID:k3JuiCGX] >>696 こういうことだよ ideone.com/Bcd5F っていうかまず、RAIIが何か行ってみろよマジ・・・
701 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 02:52:22 ID:k3JuiCGX] スマートじゃなかったから書きなおし ideone.com/48UwA
702 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 03:32:24 ID:3eWOv2dl] あるクラスに、別クラスのインスタンスを持たせたい場合、 自分はポインタにしちゃうことが多いかなあ。 >>698 Stateパターンだっけ?
703 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 03:40:14 ID:k3JuiCGX] >>689 シーンクラスを継承したタイトル画面・ゲーム画面クラスをメインループで常にupdateするっていうのはポリモーフィズムだべさ・・・ Scene* p; p = new Title(); or new Game(); while(...){ p->update(); } 的な。
704 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 03:42:45 ID:KavCN3Ib] クラスに別クラスのインスタンスを持たすこと多いけど、やっぱポインタにしないと駄目なんかな… 何か管理が面倒そうでポインタにしてない
705 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 03:46:23 ID:KY5hMpMn] >>704 別にオッケーだべ というかほとんどの言語ではデフォルトが参照だべ
706 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 03:49:17 ID:KavCN3Ib] >>703 あ、やっぱ一般的にはそんな風にシーン管理するのね。 なんかかえって難しそうに感じて、ベタにswitchで回してしまう。 書き方としてはギリギリ読めるんだけど、実感としてポリモの便利さがピンと来ない。
707 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 03:55:02 ID:LAhGvLpb] まあポリモーフィズムなんてただの暗黙のswitchなんだからそれでも問題ない
708 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 04:01:41 ID:bBxVkAP5] >>702 ,703 アドリブプログラマだから設計パターンとか用語の定義とかは知らないんだよ…… こうやったら管理しやすくないかなー、ってテキトーに書いてるだけだし これがポリモーフィズムなら、規模の大きなゲーム作ろうとすれば自然に身につくものなんだと思う
709 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 04:16:03 ID:FRrxkwCp] シーンみたいに柔軟性が求められるところを抽象化してもあまり得しないけどね
710 名前:702 mailto:sage [2011/02/06(日) 04:49:13 ID:3eWOv2dl] >>704 自分も最初はクラスの実体を持ってたけど、必要に迫られてポインタに移行した。 やり方は他にもあるんだろうけどねー。
711 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 05:49:43 ID:Bcoc3jNp] 実態を持つ方がコンパイル時間がかかる
712 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 07:03:48 ID:wzAw0A/n] 傍から見てて思ったんだが別にポリモ使うのに new/delete 必須じゃなくね
713 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 07:50:12 ID:vYbU4BgG] 必須じゃないね void f(Obj* o) {
714 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 07:51:36 ID:vYbU4BgG] 途中でかきこんだわ・・・ void f(Obj* o) { o->update(); } ObjA a; ObjB b; f(&a); f(&b); こういうこともできるわけだし
715 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 08:17:22 ID:DfvbrRc2] ぶっちゃけゲームが出来上がることが最優先なので とりあえずCで書き始めて、できる範囲でC++化することにしているよ 現段階では、クラスが変数と関数のセットであることくらいしか使えてねーけどなw
716 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 09:29:09 ID:vYbU4BgG] それでいいと思うよ そりゃC++を完璧にマスターしてから作ったほうが圧倒的に効率いいだろうけど C++は十年勉強して先輩のコーディング盗んでようやく半人前の世界だからねw
717 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 09:36:50 ID:hi6mskVF] 慣れが大事だし使い続けるのが良いと思うよ 使ってるうちに理解が深まる
718 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 10:00:06 ID:stjfxyZ6] new、deleteどころかオブジェクト指向プログラミングをしなくても、 ゲームは普通に作れるからな。初心者にとって無関係といえば無関係だろ。
719 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 12:17:01 ID:+QgrF6fp] オブジェクト指向勉強したかったらJavaやC#でやったほうがいいと思うよ C++ではノイズが多すぎて本質がわかりにくい いちいちクラス作るのも使うのもめんどくさすぎ
720 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 12:27:24 ID:Bp6r7tC9] visualC++は自動でクラス作ってくれるじゃん
721 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 12:34:00 ID:+QgrF6fp] そんな機能が必要なこと自体がおかしいんだよ 別にC++のオブジェクト指向が使えないと言ってるんじゃなくて、 勉強の妨げになる余計なものが多すぎると言ってるだけ
722 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 13:08:48 ID:stjfxyZ6] それは同意できるな。 C++はCとのしがらみのせいで無駄に複雑になってる。 純粋にオブジェクト指向を学びたかったら、 しがらみを完全に断ち切ったC#、Javaのほうが分かりやすい
723 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 13:14:20 ID:KY5hMpMn] オブジェクト指向を学びたい!のなら教育用の別の言語をオススメするが、Windowsの実用言語として同時に学ぶならC#かなぁ .NET FrameworkとVisual Studio Expressは非常に強力 Javaもいいんだけど、標準クラスライブラリだけだとWindowsアプリケーションをさくっと作るみたいな使い方が難しい 俺がJavaに詳しくないだけかもしれないけど、GUIの作成周りがどうも・・・
724 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 14:10:59 ID:k3JuiCGX] >>714 実質的に必須だろ・・・ 引数の参照使って多態もできるけど、それはあくまでも関数レベルの話なんだし そりゃ部分的には参照使うほうがスタック領域のオブジェクト使うから早いけど、 例えば敵が格納されてるリストの中に複数種類の敵入れたりするときどうすんだよ 古典タスクでも使うのか?
725 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 17:08:03 ID:FRrxkwCp] ゲームはオブジェクトの振る舞いを場合によって変化させないといけないから オブジェクト指向を使うにしても結構訓練を必要とすると思うよ
726 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 22:24:40 ID:gmKYG7No] enumのパラメータの名前がよく被る どうしよう
727 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 22:30:00 ID:Eb0WRl87] クラスに持たせて、クラス名::enum
728 名前:名前は開発中のものです。 mailto:sage [2011/02/06(日) 22:48:27 ID:Bcoc3jNp] enumに型名を付けるとfor文で回せなくてめんどくさくね enum STAGE { FIRST, SECOND, THIRD, STAGE_NUM, }; for(STAGE idx=FIRST; idx<STAGE_NUM; idx++){ } こういうことができない。 enumは型名がない方がよくね
729 名前:名前は開発中のものです。 [2011/02/06(日) 23:56:26 ID:o0IXDaRU] C++ってメモリの操作がこまめに出来るからプログラミングの勉強にすごいなると思う
730 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 00:06:53 ID:o+ZRLSEj] for(int idx=FIRST; idx<STAGE_NUM; idx++){ } は出来ないの?
731 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 00:13:22 ID:o7zGWqwC] >>729 低レベルな作業が勉強になるというなら クラスもnewもdeleteもテンプレートも使うべきじゃないよ せっせとHSPみたいなコード書いてればいい
732 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 00:29:30 ID:d7Cek6eo] >>731 HSPは勉強にもってこいなのか?
733 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 00:36:10 ID:o7zGWqwC] 低レベル(!=簡単)な言語の例として挙げただけ もちろんハード寄りの低レベルな知識は大事だけど プログラミングには抽象化も重要だ アセンブラには関数がないからC言語より勉強になるの?
734 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 00:46:04 ID:5kwAP+20] >>728 なんでforで回せられないん?
735 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 01:07:36 ID:ln0Hp/Vm] intでできたは
736 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 05:11:14 ID:WyOjR7J5] HSPって低レベルだっけ
737 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 05:20:57 ID:z2dDXVbA] なにげにアレHSP用の関数実装とか無しに外部DLL呼び出せたりして面白いよね HSPでdxlib使ってる人っている?
738 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 05:32:21 ID:2KMBKGJ1] HSPは参照というものが存在してなかったはず。抽象度という意味ではかなり低レベルかと
739 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 11:25:04 ID:b8F3RAga] 低レベルって、低級言語って意味で言ってるんだよな?
740 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 12:56:25 ID:InNumn8p] HSPか 初心者の勉強に向いてるの?
741 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 13:20:20 ID:tg7ZaRxP] HSPは小学校用と思った方がいい。入口がかんただが、複雑になると泥沼。
742 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 13:29:51 ID:InNumn8p] >>741 有難う。
743 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 15:19:07 ID:PS0gfCYa] HSPは勉強用ではなく体験用と思えばとてもすばらしい環境だな 手軽に弄って手軽なものを作る分には最適だが本格的なものを作ろうとした時に どうしても仕様上の不便さが目立ってしまう 元々のコンセプトがそういう方向性なんだから本来の目的は達成している筈なんだが 簡便さゆえに万能を求められてしまうなんたらかんたら〜はスレ違いの話だな まあ勉強が目的なら応用性の高い言語を選択した方が回り道は少ないだろうな 逆に見ればそれ程大規模でもなく複雑な表現も処理速度も必要としないようなソフト製作であれば HSPでも十分だとも言える 多少の知識があればDXlibの2D機能ぐらいなら一応使えるしな
744 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 17:36:43 ID:orHlWPg7] ちょっとした動作デモが、1時間くらいで組みあがったりしたのを見てビビった
745 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 19:07:46 ID:4Bjtftyn] HSPで簡単と思える程度のゲームなら他の言語でも簡単なんじゃね
746 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 19:11:19 ID:z2dDXVbA] 他の言語て
747 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 19:15:19 ID:4Bjtftyn] 日本語でおk
748 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 20:57:52 ID:cLL/ycl2] 他の言語でもおk
749 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 21:06:03 ID:WyOjR7J5] HSPって低級言語だっけ
750 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 22:03:36 ID:ao/YIlT9] 一般には高級言語に分類されてる
751 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 23:04:20 ID:wF/kiWoY] せめてクラスか構造体があればな
752 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 23:15:47 ID:OcsNs/sY] クラスはHSPのコンセプトからはずれると思うが、構造体は欲しいな
753 名前:名前は開発中のものです。 mailto:sage [2011/02/07(月) 23:30:15 ID:OcsNs/sY] そういえばそれ以前に妙ちくりんな型変換をなんとかして欲しいな
754 名前:名前は開発中のものです。 mailto:sage [2011/02/08(火) 01:11:11 ID:zz8oJ9kr] 俺的にはHSP=BASICって感じ。高望みはしないし、人に勧める気もしない
755 名前:名前は開発中のものです。 [2011/02/08(火) 16:05:17 ID:6L0TPnqD] すれ違い
756 名前:名前は開発中のものです。 mailto:sage [2011/02/08(火) 17:54:15 ID:+ML1FjeC] から生まれる
757 名前:名前は開発中のものです。 mailto:sage [2011/02/08(火) 20:35:13 ID:SsLD3XMz] 小さな愛
758 名前:名前は開発中のものです。 mailto:sage [2011/02/09(水) 02:00:42 ID:5lfRH9sH] AIにいい参考資料ってやっぱ本買うしかないのかな? 全くイメージが出来ない
759 名前:名前は開発中のものです。 mailto:sage [2011/02/09(水) 02:47:15 ID:ieGKHoAe] AIって言われても漠然としていて何を知りたいのか分からん
760 名前:名前は開発中のものです。 mailto:sage [2011/02/09(水) 09:32:08 ID:56rbMTpR] 実例で学ぶゲームAIプログラミング www.oreilly.co.jp/books/9784873113395/
761 名前:名前は開発中のものです。 mailto:sage [2011/02/09(水) 20:36:21 ID:v7oSuKhP] いわゆる和ゲーのAIと、洋ゲーのAIじゃあ全然違うだろうな
762 名前:名前は開発中のものです。 mailto:sage [2011/02/09(水) 20:57:36 ID:7Rex9UNl] 勇者が死ぬとメガザル
763 名前:名前は開発中のものです。 mailto:sage [2011/02/09(水) 21:04:48 ID:bxVvIYXu] FF13だっけ?味方の戦闘AIの設定いじって戦うやつ ドラクエであれやってみたら結構楽しそう
764 名前:名前は開発中のものです。 mailto:sage [2011/02/09(水) 21:52:06 ID:MQeJ0Td3] どうだろうな。 「HP50%以下でホイミ」と指定されていれば、その通り行動しないとマズいけど、 「いのちだいじに」なら、殺られる前に殺れというのも選択肢に入る懐の広さはあるだろうし。 一応、キャラごとの性格設定や、プレイヤーが勝手に想像する余地というメリットもあるからなあ。
765 名前:名前は開発中のものです。 mailto:sage [2011/02/09(水) 23:34:22 ID:gbbiuBkv] 今現在で実用的な意味でのAI というと特定の条件下での話になっちゃうからね 目的とゲーム条件と製作者の好みで決めちゃうところが大きいかと
766 名前:名前は開発中のものです。 mailto:sage [2011/02/12(土) 13:12:29 ID:nJI+bwQD] ぐぐっても見つからなかったので質問です。 リフレッシュレートに依存せず、指定したfpsで処理を行う場合のサンプルがあれば、 その場所を教えてほしいです。 dxlib wiki かなにかがないか探したのですが、見つかりませんでした。 同梱のhelpだと、リフレッシュレートにあわせて処理を変えてしまえというものはあったのですが、 fps60固定でやりたいので、使えませんでした。 普通の2DアクションゲームならどのゲームでもやってるFAQ・TIPSだと思いますし、 wikiにも真っ先に掲載されるようなネタですので、 自分の拙いコーディングと調査で時間食うより、サンプルコピペで一瞬で済ませたいです。 実現方法としては、 ・flip時に待たない ・自前で待つ:msec単位の現在時刻取得APIを利用し、sleepする(?) あたりでいけるとは思ってます。 ご存じの方、よろしくお願いします。
767 名前:名前は開発中のものです。 mailto:sage [2011/02/12(土) 13:16:58 ID:hgni81jL] >>766 >自分の拙いコーディングと調査で時間食うより、サンプルコピペで一瞬で済ませたいです。 それを自前でやればスキルアップでほかの部分もより良いコーディングができるようになるかと。 最近はPCも液晶ばっかりで大抵リフレッシュレートが60Hzだから垂直同期依存のソフトも多いんじゃないかな。 まぁ、無精せずにじっくりやれって事ですw
768 名前:名前は開発中のものです。 mailto:sage [2011/02/12(土) 13:30:22 ID:qAUrfDwp] >>766 時前でレートを作ると、がたつき(ティアリング)がおきるぞ、わかってるのか?
769 名前:名前は開発中のものです。 mailto:sage [2011/02/12(土) 16:16:10 ID:mJ46d9vv] リフレッシュレートに依存しないって言うから、 可変FPSの話かと思ったが、どうやら違ったようだ。
770 名前:名前は開発中のものです。 mailto:sage [2011/02/12(土) 16:34:22 ID:WPIK0Noa] 龍神録プログラミングの館の43章、「きっちりFPSを制御してみよう」に解説がある SetWaitVSyncFlag()で垂直同期を切れば思い通りになるはず
771 名前:766 mailto:sage [2011/02/13(日) 09:42:41 ID:KpZXeEQj] >>770 教えていただいたとおりに実装したところ、思い通りになりました。ありがとうございます! 一番時間かかった問題(sleepでやると2回に1回くらい描画結果がwindowに反映されない)は、 PC再起動でなおりました。 >>767-768 アドバイスありがとうございます。ティアリングは覚悟済みです。 余談ですが、もちろん普通に垂直同期を待つモードもついています。 今回は1関数コピペで済むレベルなので不精しましたが、 そうでない場合はいただいたアドバイスどおりじっくりやりたいと思います。
772 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 10:32:36 ID:kx3d0uWe] listのイテレータをstaticで持っておきたいのですが そのイテレータを使い終わった時に初期化したいです しかし一体何を入れればいいのかわかりません 別に初期化しないでもバグにならないように設計すればよいのですが 何か気持ち悪くて・・・
773 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 10:45:00 ID:hu/634nm] 初期化しないで使い、毎回使うときに初期化するのが基本だけど、 どうしてもってのならNULLを入れとけばいいです NULL(=0)は絶対にポインタとしてあり得ない数値なんで、it==NULLなら参照しない、って使い方が出来ますにゃ (当然、NULLが代入されてるイテレータで要素を参照してしまうとアプリは落ちる)
774 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 20:49:33 ID:RSQiCP9S] イテレータstaticでもつって何に使うの
775 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 12:10:06 ID:POOkR4PO] 当たり前すぎるのか検索しても引っかからないのですが、 3Dモデルのデータにはテクスチャファイルは埋め込めないんでしょうか? ごちゃごちゃするのでまとめたいんですが…。 それとも最終的にDXアーカイブにすれば(mv1のみ?)でまとめろって話ですかね。
776 名前:名前は開発中のものです。 [2011/02/17(木) 18:48:14 ID:L+DlSeIR] DrawRotaGraphってめっちゃ重かったりする? 擬似3Dゲームを作ろうと思ってマップや敵を回転させてたらめっちゃ重い
777 名前:名前は開発中のものです。 [2011/02/17(木) 18:54:18 ID:s7Rh9Whn] 原因はお前のクソコード
778 名前:名前は開発中のものです。 [2011/02/17(木) 19:06:21 ID:L+DlSeIR] ひょっとして、画像のロードをループのたびにやってるのがいけないのか? でもさ、フィールド関数の領域???でロードしたら、次から画像ハンドルが空っぽになってんだよ
779 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 19:11:41 ID:NFDiEQjC] 寿命が尽きたんだ。諦めろ。
780 名前:名前は開発中のものです。 [2011/02/17(木) 19:18:03 ID:L+DlSeIR] おかしいな、このスレ誰もいないのかな
781 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 19:19:56 ID:+LcL54Sl] 誰もいませんよ
782 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 19:21:09 ID:8eHPFNop] むしろ自分はDrawRotaGraphで統一してる。 関数によって、座標指定が左上だったり中央だったりするのが面倒だったので。 >>780 せめて24時間は待てよw
783 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 19:53:11 ID:JfE8kAGm] >>778 >画像のロードをループのたびにやってる そんな事やってたら重いのは当たり前だ >画像ハンドルが空っぽ 明らかなバグ臭、ちゃんととレースしてデバッグしろ
784 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 19:55:24 ID:/kIHAK9a] ローカル変数に代入してるんじゃね?staticもなしに
785 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 20:07:30 ID:2T4y7T5P] >>778 783も言ってるけどまんま原因はそれだよw ロードは描画の度やるようなもんじゃない 変数の有効範囲をちゃんと管理できるコードか書けない初心者のうちは、 画像ハンドルはグローバルで置いとくべき そしてゲーム起動時に全部読み込むくらいでいいにゃん
786 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 20:22:19 ID:NFDiEQjC] そしてグローバル変数の初期化にLoadGraph使ってまた発狂
787 名前:名前は開発中のものです。 [2011/02/17(木) 21:57:53 ID:L+DlSeIR] ありがとうございます またできる環境になったら試して見ます またお世話になるかと思いますがよろしくお願いします
788 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 01:46:16 ID:GOKTeo9s] またお世話になる前にC言語勉強して公式をよく読め
789 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 14:19:13 ID:R8VH2Snc] ログファイルの出力フォルダの設定ってどうやったらできますか? 時間をログファイル名につけて保存する設定にしたのはいいんですが実行するたびにファイルが増えるのでひとまとめにできたらいいなと思うんですが
790 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 14:30:19 ID:evmgDxOS] そう言うのは公式で聞いたほうが早い
791 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 14:49:54 ID:R8VH2Snc] ありがとうございます。そうしてみます
792 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 19:00:32 ID:G40bfkWJ] DXライブラリ ゲームプログラム講座 のとおりにやってたら、そんなバグ仕込むことは少ないと思うんだけどなあ よくわかんないうちは、 それを改造していく方法でいいじゃん ほかにもソース公開してる人がいるから、それを改造していってもいいし
793 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 19:11:39 ID:4cFumhE/] 特に変数のスコープを解説されてない講座に従えば、 そりゃ間違いを犯すだろ。改造と並列して原理を学ばないと。
794 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 21:34:07 ID:2/JFNBpt] ポインタにNULLを入れて何回でもdeleteしてやる
795 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 21:48:34 ID:DL5by/CF] 君がッ! 泣くまでッ! deleteを止めないッ!
796 名前:名前は開発中のものです。 [2011/02/19(土) 00:11:11 ID:aRLzCjm9] DXライブラリってDirectGraphic使ってるの?
797 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 00:12:54 ID:aRLzCjm9] サーセン
798 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 00:18:35 ID:AyR1BOuA] >>790 公式でそういうクソみたいな質問させるのやめろよ
799 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 00:41:55 ID:hJx6ylHW] 軽くソースをあたってみると、公式や2chで質問するより早く分かったりする。 分からないことも多いけど。
800 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 07:24:18 ID:wF23eZ21] ミスのない、凝ったことをやってない、そういうレベルのソースに出会えるといいね。
801 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 10:26:58 ID:HniCnkbn] ゲームのソースって人それぞれオリジナリティに溢れてて読みづらいんだよね 純粋にC++の勉強としては、ゲーム以外のプログラムとかゲームエンジンのソースとか読んだ方がいい気がする
802 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 11:12:29 ID:q8myv8eW] >>763 リメイク版ドラクエ4で「めいれいさせろ」が追加された頃から察してくれ…
803 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 13:02:18 ID:/MJ/MkF7] >>798 じゃあ、お前が答えてやれよ
804 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 15:53:01.31 ID:H/f3jJzW] 縦横座標から濃度と色を計算して1点ずつ描画モードを切り替えて点を打つっていう処理をやったら 案の定遅くなったんだけどやっぱ無謀だったんですか? 関数呼び出すだけで時間かかるから1点1点描いてくのはダメなのかな? 1ドットにつき数回三角関数や逆三角関数を使ったのもあるかもしれないけど ドット打つところを2*2の四角形に変えたら少しはマシになったのでやっぱ描画関数の呼び出し回数の問題っぽい。 何が言いたいかと言うと、 char gamen[???][???][4]; //縦×横×三色と濃度 みたいな配列みたいなのを用意してこれを渡せば一括で描画してくれるなんて関数があればいいなぁってね。 画像のデータ構造の中身なんてわかんないけど似たような事やってるんじゃないのかな?
805 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 16:40:26.86 ID:9GgWz1ID] ソフトイメージとDrawSoftImageでいんじゃね? 言ってることはこれそのままっぽいし
806 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 16:52:59.96 ID:h9QhWIFW] >>804 片方ずつ実行して時間計れば、処理速度くらいわかるでしょ。 結論から言うと画像を作ってから、一回で描画すればおk。
807 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 17:01:58.37 ID:H/f3jJzW] あーん、あったねぇ……うん、ごめんね。 都合良く、アルファ濃度にも対応してるのあるのね。まさにピッタリ。 DrawSoftImageの説明に重いとは書いてあるけどDrawPixel毎回呼び出すよりはマシなのかな。 今度比べて試してみます。ありがとうございました。
808 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 17:07:06.38 ID:MMcVeH9B] なんか解決したみたいだけど一応書いとく 描画モードの変更関数は結構重いよ どのくらい重いかというと毎フレーム3000回呼んでたら60fps維持できないくらい
809 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 17:12:14.93 ID:H/f3jJzW] あーそうなんだ。 ドット毎にあのパラメータを変更するためにSetDrawBlendMode呼んでたから、なるほど。 ますますソフトイメージの方が良いみたいだね。 重ね重ねありがとう。
810 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 21:14:42.39 ID:xa3qwwu7] ソフトイメージもクソ重いけどな・・・
811 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 21:37:06.89 ID:MMcVeH9B] 804がどんなことをやりたいと思ってるのかが気になる サブサーフェスみたいなのがやりたいのか、それともお絵かきツールみたいなのを実装しようとしてるのか……
812 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 01:34:18.44 ID:M0x+7GIl] ピクセルシェーダ向きだな とんでもなく速くなるよ
813 名前:804 mailto:sage [2011/02/22(火) 05:37:38.23 ID:fi/o64E4] >>811 t:時間 x:キャラの中心線からの相対横座標 y:キャラの下端からの相対縦座標 xmax:模様の横幅/2 ymax:模様の縦幅 red[i][j]=255*sin(0.05*t*t+sin(acos(x/xmax)/16+0.1*t)); alpha[i][j]=255*y/ymax*x*x/xmax/xmax; これは適当だけどこんな感じの計算をしてキャラの周りを波模様の筒状のオーラが囲むような 演出を作りたかったんだよね一瞬だけど。 だからそこまで必須じゃなかったり。いやドットでやるのは馬鹿げてるってわかってはいたんだけどね。
814 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 12:21:32.47 ID:8kTZW2q7] 波長や振幅が固定で良いなら画像なんだろうけどなあ
815 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 12:36:39.49 ID:2hGlEXNN] それだと、やっぱりシェーダか2Dポリゴンかなぁ
816 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 02:06:02.89 ID:UA4c++Ac] C++にLuaを組み込むメリットは処理の速さですか? 現在RPGを製作中で、自分でスクリプトを組んでやってるんですが 若干レスポンスが遅いです これが改善されるならLua導入も検討しようと思うのですが
817 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 02:09:38.48 ID:6JL+nAie] スレチ
818 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 02:19:07.06 ID:+qfQHx1D] >>816 軽量設計した簡易スクリプトがluaより遅いって事はまずない もしも毎回読み込んで構文解析して実行してるならそこで遅くなる 起動時にスクリプトを構文解析して、実行用の中間コードを保持しておくとか工夫してみたら? luaの長所はスクリプト内でとてつもなく複雑なことをしても動作することがある程度補償されてる点
819 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 04:24:07.24 ID:Gd9oN5TQ] DXライブラリレベルならスクリプト要らないと思うけどな 記述が簡単なDXライブラリに記述が簡単なスクリプト言語を追加してどうすんの 動的リロードとかは魅力だけどデバッグが更に面倒になるし
820 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 05:23:52.62 ID:2fkZgoQ8] Luaというか組み込みスクリプト言語のメリットは動的リロードとコルーチンだろ・・・
821 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 05:24:24.01 ID:+qfQHx1D] スクリプトには再コンパイルなしでイベント追加ができるなどの強みはあるよ 人形劇みたいなイベント有りのRPG作るならスクリプトみたいな仕組みはないと困るんでない?
822 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 13:24:26.50 ID:KDGE0euW] 結局のところ、複数で担当するかどうかというのも大きいよな。
823 名前:名前は開発中のものです。 [2011/02/23(水) 20:20:54.51 ID:slm3+WaE] 2DRPG程度で重くなってる方がやばいな
824 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 00:34:35.38 ID:llK7EsEr] DXライブラリにluaが合わさったら最強に見えるかも、 と思ったことはある
825 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 00:39:08.09 ID:/pRzzwPn] luaにポーティングとかもう誰かやってんじゃないの?
826 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 00:52:29.00 ID:DM00gsqn] 「lua DXライブラリ」でググるといくつか挑戦したのが見つかるね
827 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 08:56:00.23 ID:eTqHkKj4] Lua+DXライブラリって何かいい事あるの?
828 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 11:25:41.87 ID:enInS/6/] なんで良い事ないと思うの?
829 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 11:34:41.26 ID:i8Eo6Mya] 単純に疑問かもしれないのに 一体何と戦ってるの?
830 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 12:31:16.83 ID:llK7EsEr] 質問の意図次第かな ・DXライブラリを使ったゲーム開発において、 組み込みスクリプト言語を導入することでのメリットとは何か ・DXライブラリ+組み込みスクリプト言語 を用いたゲーム開発において、 ほかの組み込みスクリプト言語に比べてのluaの優位性とは で回答は変わるわな
831 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 12:45:40.80 ID:DM00gsqn] DXライブラリは基本的には描画がメインだからなぁ 組み込みスクリプト使うような規模の作品になれば、描画をフレームワーク化するのは当然になるし、 有用な組み合わせとしては「DXライブラリ+スクリプト」というよりは「自作フレームワーク+スクリプト」って感じになって、 DXライブラリを使うかどうかって所はあまり関係しない気がする
832 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 13:35:39.83 ID:eTqHkKj4] いや、DXライブラリとLuaを組み合わせたら最強とかあったから、 何か他のものとは違う特別なメリットが得られると思った次第。 言葉足らずでごめん。 別にそういうのは無い感じなのかな?
833 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 13:38:49.16 ID:enInS/6/] 単に開発が楽ってだけだろ Luaじゃなしに組み込みスクリプト言語ならそんなに変わらん 速度面・普及面じゃLua一択だが
834 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 15:04:09.36 ID:8F4iVscQ] DXライブラリで開発してる人は、大なり小なりフレームワーク的なものを組んでるような気がする。 この辺の情報ってあんまり出ないよね。
835 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 15:26:33.72 ID:/pRzzwPn] 単に、Tonyu systemみたいな環境を自分で作れたら夢が広がりんぐ 程度の意味だと思うよ
836 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 17:22:25.72 ID:E0NawrDD] Luaの場合は構文やクセの把握をしておけばまたどこかで役に立つ可能性があるくらいには普及してる どっかの誰かが作ったほとんど使われてないスクリプ言語はそういったトライアンドエラーを他の環境で活かせる度合いが小さい ・・・程度の差はあるね まあ損しないことばかり考えてると何も作れないんだがなw
837 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 20:31:19.79 ID:0j1IiD9M] DxLibはゲームライブラリって感じじゃないからなぁ
838 名前:名前は開発中のものです。 mailto:sage [2011/02/26(土) 21:07:57.84 ID:HzAF130I] そろそろスレチ
839 名前:名前は開発中のものです。 mailto:sage [2011/02/27(日) 09:19:22.82 ID:OH7ge9Jj] DXライブラリとフレームワークについては興味あるなあ まぁこれもDXライブラリに限らない話だからスレチかな
840 名前:名前は開発中のものです。 mailto:sage [2011/02/27(日) 09:35:38.18 ID:tW/E8A8B] 良くも悪くもラッパーライブラリだしな、フレームワーク必須に近い それなりの規模なゲームを作ろうとしたら自前実装だらけになる
841 名前:名前は開発中のものです。 mailto:sage [2011/02/27(日) 09:46:08.08 ID:0L5aKjyl] ゲームフレームワーク作るなら、DXライブラリで楽できる分なんて 作業全体の中では少ないから結局自分でやっても変わらん
842 名前:名前は開発中のものです。 mailto:sage [2011/02/27(日) 10:13:30.78 ID:TzpLKbBT] >>841 いや、割と結構な部分省けるべさ レンダリングフレームワークを作る手間がまるまる消えるんだし
843 名前:名前は開発中のものです。 mailto:sage [2011/02/27(日) 13:46:42.55 ID:9Fl/vGOB] DXライブラリの上に自前フレームワークを作るのなら DirectXの余計なことに頭を使わなくてすむ。 クラス設計とかだけを考えれば良いからすごい楽になる。 ってか楽になった。 俺はもうDeviceLostと格闘するのは嫌だわ・・・
844 名前:名前は開発中のものです。 mailto:sage [2011/02/27(日) 15:10:27.18 ID:aZ0j/EAR] >フレームワーク ベースの部分を、DXライブラリとそうでないものとで切り替えられると良いんだろうけどな。
845 名前:名前は開発中のものです。 mailto:sage [2011/03/02(水) 00:54:47.81 ID:u6ffonYs] BGMのループポイントの話だけど、ループポイントの設定の仕方がミリ秒とサンプルとバイトの3つあるけど、 それぞれメリットデメリットってあるの? 細かさは バイト>サンプル>ミリ秒 なのはいいとして、やっぱバイト単位とかのほうがミリ秒と違って再生環境によるズレが無いのかな? バイトってなんかこうファイルを直接見てる感じがするからそんな気がするのよ。 もしそうじゃなくて「ミリ秒でずれるときはバイトでもずれる」とかなら俺的には バイトのメリットが無いからもうミリ秒でいいやって話になるわけよ。 どうせ10ミリ秒ぐらいの違いじゃあわかんないし俺。 というか ttp://izuministrator.com/ref/ によると SetLoopPosSoundMem でバイトでの指定ができるはずなんだけど、なぜかミリ秒指定と同じ動きになっちゃってるから バイト指定できなくて困ってるのよね。 長文スマソ
846 名前:名前は開発中のものです。 mailto:sage [2011/03/02(水) 21:23:00.01 ID:J7GxD6/6] 公式のリファレンスでは、現在SetLoopPosSoundMemはミリ秒指定用の関数になってるね ミリ秒でもズレないからミリ秒でやったほうがいいと思うよ コード見たわけじゃないけど、多分内部では計算して単位揃えて同じ動作で動いてると思うし バイトやサンプル数だと、周波数とか変えたとき変更しなきゃなるし、メリットは殆ど無いって言っていい
847 名前:名前は開発中のものです。 mailto:sage [2011/03/02(水) 23:38:04.82 ID:EReXQxMM] なるほどありがとう。 しかしまぁ公式リファレンスは int GetCurrentPositionSoundMem( int SoundHandle ) ; の項目で int SetCurrentPositionSoundMem( int SamplePosition, int SoundHandle ) ; のと同じ説明書いてるし信用できないな。 とりあえず名前が違うのに同じ挙動の関数がある時点で、 どちらかはバイトのほうを実装しようとして間違えたんだと思うけど。
848 名前:名前は開発中のものです。 mailto:sage [2011/03/02(水) 23:57:52.31 ID:qyJBDqiQ] バイト指定なんてしても変なずれ方するだけだし最小単位はサンプルでいいと思うけどそれは置いといて ソースみたところ、SetLoopTimePosSoundMemとSetLoopPosSoundMemの実装が同じコードになってる。多分バグじゃないかな。 メリットデメリットの話で言うなら、それぞれの関数は内部でSetLoopSamplePosSoundMemの実装を呼び出してるだけなので全く同じなはず。
849 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 16:24:34.69 ID:Zh6pP09G] 同じような内容で、引数が違う関数の場合、 片方が他方のラッパーなんだろうな〜と思ってソースを眺めてみると、実は違う場合があったりするよな…。
850 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 17:31:53.66 ID:EV+fS59G] そこら辺揺れるのが非公式関数だからなー そういうのは公式に質問したほうがいんじゃないかな なんらかのリアクションあるだろうし
851 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 21:36:34.77 ID:9izXx4AI] DXライブラリでも、ちゃんと作れば状態遷移を行って帰ってきても1バイトたりとも増えないの? メニュー画面からゲーム画面に行って帰ってくるとメモリ使用量が増えてるんだけど。 ちゃんと各画面において終わる時にInitGraphとInitSoundMem呼んでるしのに。 ファイル読み込み関連はLoadGraphとLoadDivGraphとLoadSoundMemしか使ってないからこれで大丈夫のはずなんだが。 fopenも使ったけどちゃんとfcloseしてるし。mallocの類は全く使ってない。
852 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 21:45:58.98 ID:SaQE7YU5] メモリ使用量って何を見て言ってるの? タスクマネージャなんだったら、ウィンドウを一時的に最小化してみたらいいよ タスクマネージャの数字を減らすのは、自称詳しいユーザーを安心させる程度の意味しかない
853 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 21:55:06.60 ID:9izXx4AI] 最小化すると正しい値が出るの? やってみたけどやっぱ上がったものは上がったままだなぁ。
854 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 23:03:00.90 ID:UieYMyVE] ループを進めて時間が経ったらメモリ増えなくなるかも知れない。 ある程度のメモリは即開放されずに内部に留められたりするものらしい
855 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 23:32:31.47 ID:qrLZpjId] 読み込んだファイルはOSが一時的にキャッシュ保存しているよ。
856 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 23:35:35.10 ID:9izXx4AI] じゃ、じゃあやっぱ気にしなくていいってことかな……うん。
857 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 23:37:05.63 ID:zB1jyOJI] 状態遷移のたびに際限なく増えてるならメモリリークの可能性大 あともしVista以降だったらタスクマネージャにデフォルトで表示されてるプライベートワーキングセットには DLL側のメモリの使用量は含まれてないよ
858 名前:名前は開発中のものです。 mailto:sage [2011/03/03(木) 23:59:37.80 ID:9izXx4AI] えー……じゃあやっぱ原因探さないとな。ありがとう。
859 名前:名前は開発中のものです。 mailto:sage [2011/03/04(金) 00:05:04.17 ID:ZZu9fnGE] >>858 何処を見て判断しているか説明しないと、色々出るだけだろ。何処見てるんだよ!
860 名前:名前は開発中のものです。 mailto:sage [2011/03/04(金) 00:08:06.20 ID:Gm+qWo11] いや、タスクマネージャ……
861 名前:名前は開発中のものです。 mailto:sage [2011/03/04(金) 00:25:23.10 ID:phAV7U6c] とりあえずゲームループに入って100秒くらい経ってもまだメモリ増えるならアウト
862 名前:名前は開発中のものです。 mailto:sage [2011/03/04(金) 01:01:17.80 ID:Gm+qWo11] や、やっぱり法則がわからない。 何事も、初めのうちは増えるんだよね。 例えば効果音で、初めのうちは鳴る度にメモリ増えるんだけど、 何度も鳴ってると増えなくなる。 画像の読み込み+表示でもそうみたい。
863 名前:名前は開発中のものです。 mailto:sage [2011/03/04(金) 01:06:04.38 ID:Gm+qWo11] また肝心な事言い忘れた。 そういうことだから、やっぱループし初めは初めて尽くしだからポンポン増えてくけど、 落ち着けば変わったことが起こらない限り増えない。
864 名前:名前は開発中のものです。 mailto:sage [2011/03/04(金) 01:07:59.19 ID:Gm+qWo11] 重ね重ねごめんね。誤字 ループし初めは初めて尽くし→ループし始めは初めて尽くし
865 名前:名前は開発中のものです。 mailto:sage [2011/03/04(金) 01:30:31.12 ID:+Ujkj93Y] ずっと動かし続けてみたら? 数時間プレイし続けただけで落ちたらメモリリークだろうし
866 名前:名前は開発中のものです。 mailto:sage [2011/03/04(金) 23:09:56.12 ID:3Qrvh8YP] プログラマ諸兄方に教えて頂きたい。 正直、俺のヘボいプログラムを人に見せるのは恥ずかしいけど、 訊くは一時の恥、とサンプルを晒します。 ttp://www.dotup.org/uploda/www.dotup.org1396225.zip.html あくまでサンプルで、適当にやってるところもあるけど、大体において俺はこんな形でゲーム作ってます。 ご覧の通り一応動きはするけど、プログラムの組み方は拙いです。 これをいわゆる普通なやり方に直すとするとどうなりますでしょうか。 特にキャラクターデータやグラフィックハンドルの管理をどうしてるのか、とかが知りたいです。 よろしくお願いします。
867 名前:名前は開発中のものです。 mailto:sage [2011/03/04(金) 23:26:51.42 ID:kgJhX4cx] で、ダウンロードパスは?
868 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 00:21:59.55 ID:wFok8gdI] あ、すみません。書くの忘れてました。 DXlib です。
869 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 00:32:14.95 ID:Yfm7rI7q] やり方に直すって、全部コード書けってことかい? 流石に面倒だぞ ぱっと見たところ、クラスちゃんと使えよと思ったな C++の言語仕様くらいはちゃんと勉強しな あとキャラクタ管理にはリスト構造とか使えばいいと思うよ
870 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 01:28:05.42 ID:1UObIsvi] 拙いという割にはちゃんと細かい処理も関数に分けてて分かりやすいと思う コメント多めなのも良い クラスなんて構造体扱いでも全く構わないよ 全体的にわかりやすいベターCコードって印象
871 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 01:31:08.83 ID:Yfm7rI7q] 構造体扱いなら class Hoge{ public: }; なんてせずに struct{ }; でいいだろ。 そもそも、C++的に書きたいのか、C言語的に書きたいのかってのを言わんと目指すコードが分からんよな。
872 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 01:31:35.11 ID:Yfm7rI7q] struct Hoge{}; だったすまん
873 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 04:19:43.37 ID:/y9kIpiy] >>866 コメントも多いし処理ごとにブロック化されているので 読みやすくて(保守しやすいので)良いと思う。 敢えて言えば、サンプルだからかもしれないけれど 敵のタイプや数はマジックナンバーを使わないほうがいいと思う。 ENEMY_DATA[100]も、#define ENEMY_NUMBERS 100 とかにして まとめてヘッダに定義しておけば可読性もあがるし、敵の数を 変える必要があっても、他の部分(たとえば敵初期化時の forループの所とか)も直さなくていいから、楽になると思う。
874 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 04:21:30.33 ID:/y9kIpiy] >キャラクターデータやグラフィックハンドルの管理 C++で書くつもりなら、ゲーム内のオブジェクトについては まず基底クラス作って、そこから各キャラを派生させて 敵や弾ごとにリストや、マネージャーとなるクラスで 管理しておけば処理や修正も楽だよ。 そうしておけば、サンプルのように描画時に敵のタイプで switchしなくても、たとえば敵リスト->Draw(); みたいに 書くだけでOKだし、もし新キャラを後で追加したくなっても Draw_rtn関数内は何も修正しなくてすむ。 同様に移動処理も、基底クラスのメンバに仮想関数として Move()とか持たして、派生先の各キャラごとに実際の処理を 書いておけば、Move_rtn関数内では 敵リスト->Move(); とかしておくだけですむ。 でも最初にカッチリと複雑なものを作ろうとして、 いつまでたってもゲーム完成できない…というのは最悪なので 当面はこういう感じで書いていくのもいいと思う。 不便や必要を感じたら、その都度勉強したらいいし。 こういった話はDxLibの話とは関係ないし、 C++で書かれているゲーム開発用の入門書のサンプルにたいてい 載ってると思うので何冊か買ってみるといいかも。
875 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 13:47:42.01 ID:lRq0e7jV] しかし管理人様はマジですげーぜ
876 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 16:58:19.71 ID:4fF2MP2u] 同意
877 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 21:00:41.90 ID:+x8oBxgp] 画像のハンドル=ポインタですか?
878 名前:名前は開発中のものです。 mailto:sage [2011/03/05(土) 21:06:11.54 ID:QynImjUh] 違います
879 名前:はじめまして。 [2011/03/06(日) 22:54:57.95 ID:QYrw4Tbt] 確認なのですが、DXLibの描画順序って、コードの順序ですよね? しかし、まずフィールドモデル(mqo)を描画した後、 メタセコイアで透過PNGを貼りつけた板モデル(mqo)を描画すると 板が先に描画されたかのように表示されます。 具体的には、以下のように表示されます。 cdn-ak.f.st-hatena.com/images/fotolife/p/peroon/20110306/20110306223051.jpg?1299418311 どうすればよいのでしょうか?
880 名前:はじめまして。 [2011/03/06(日) 23:00:32.76 ID:QYrw4Tbt] すみません、ちょっと怪しい部分がありますので、 もう少し自分で調べてみます。
881 名前:はじめまして。 [2011/03/06(日) 23:12:39.74 ID:QYrw4Tbt] ミスでした。思い通りに描画できました。 (update()でも描画していたというオチでした。。w)
882 名前:名前は開発中のものです。 mailto:sage [2011/03/07(月) 00:49:57.69 ID:CZyikCNH] 透過処理のポリゴンは大変なんですよ。 Zバッファーへの書込みをしなかったり、Zソートして描画しないといけなかったり。 >>879 は、単にZバッファーに書込みしてるのでそれをOFFすれば、そのシーンだけは 正しく表示されるかな。
883 名前:名前は開発中のものです。 mailto:sage [2011/03/07(月) 19:08:00.52 ID:b7x4k2Cf] Zソートってみんなどうやってるの? 俺とりあえず表示する予定の全モデルの全メッシュを片っ端からキューに入れて メッシュ座標の最大値と最小値の中点求めて それのワールド座標求めてそれのスクリーン座標求めてそれのZでソートかけて描画してる 糞重たそうwwww 最近のPCスペック高いからぜんぜんわかんないけど
884 名前:名前は開発中のものです。 mailto:sage [2011/03/07(月) 19:16:35.82 ID:qzzE/e1x] PlayMovieでGIFアニメの再生が可能、と聞いたのですが
885 名前:名前は開発中のものです。 mailto:sage [2011/03/07(月) 22:14:07.46 ID:xxQTGPDS] なんかFPSが安定しないな〜って思って vsync待ちする時間を1分測ってみたら 60fps目標でで20ミリ秒以上待つフレームが 0.3〜0.6%ほどあるんだけど そういうもんなんかな? BGMとゲーム内容を同期させたいから0.2秒くらいずれると 違和感感じるようになって困っちゃうんだよね
886 名前:名前は開発中のものです。 mailto:sage [2011/03/07(月) 23:05:01.44 ID:SO4RWHi7] >>885 どういうコード書いてるか知らんけど 自分は龍神録のコードのfps制御のとこだけコピペしたらすごい安定したよ
887 名前:名前は開発中のものです。 mailto:sage [2011/03/08(火) 00:37:13.97 ID:3MPvLyMj] >>886 簡単なテストコードなんだけどね〜 前回ScreenFlipした直後と 今回ScreenFlipした直後の間の時間を求めるだけの 自分の環境だけなのかどうか判断したいんで ちょっと試してみてくれんかな? ウィンドウモード時とフルスクリーンモード時の二つ ソースも一応いれといた www1.axfc.net/uploader/Sc/so/212454 パスはvsync フルスクリーンの時のほうがタイムオーバーする回数がだいたい2倍多くなるんだよな〜
888 名前:名前は開発中のものです。 mailto:sage [2011/03/08(火) 00:51:45.04 ID:bFxplNfr] タイムオーバーカウントとやらは ウィンドウ:0〜3回 フルスク:6〜12回 程度。 フルスクは立ち上がりの1秒くらいが不安定っぽいな
889 名前:名前は開発中のものです。 mailto:sage [2011/03/08(火) 00:57:56.84 ID:KY1+fYB9] 関係ないかもしらんが俺の環境ではフルスクリーンだとなぜかVsync待ちすらしてないようでvsync_time: 0.005くらいが出まくってた。カウントは16。
890 名前:名前は開発中のものです。 mailto:sage [2011/03/08(火) 22:22:52.93 ID:3MPvLyMj] >>888 >>889 テストありがとう ん〜、環境によってわりかし違うなぁ どうすべ〜
891 名前:名前は開発中のものです。 mailto:sage [2011/03/08(火) 22:26:55.30 ID:8AuwhuEL] 環境設定で垂直同期オフのタイマー待ちモードを選べるようにしたらいいんじゃないか
892 名前:名前は開発中のものです。 mailto:sage [2011/03/08(火) 22:38:03.07 ID:6A/P0SlX] 似たような話で申し訳ないが、俺もちょっと気になる事が。 俺は垂直同期信号待ちを切ったプログラムを組んでる。 それとは別に、ウィンドウモードかフルスクリーンモードかを記録して、 プルグラム起動時にはその記録を読み込んで、どちらのモードで始めるか決まるようにしてる。 で、ここからが気になる事なんだけど。 フルスクリーンで起動した時は、まったくティアリングが出ないんだけど、 ウィンドウモードからフルスクリーンに切り替えた時は酷いティアリングが発生してしまう。 (フルスクリーンで起動して、一度ウィンドウモードにしてからまたフルスクリーンに戻しても同じ) 普通に考えたら垂直(略)待ちしてなければティアリングは発生して当たり前なんだから フルスクリーン起動時の方が特殊なんだろうか?? 他の人でこういう現象を経験した人っていますかね。
893 名前:名前は開発中のものです。 mailto:sage [2011/03/08(火) 23:27:50.64 ID:hpvVdE5K] >>886 に同じ
894 名前:名前は開発中のものです。 mailto:sage [2011/03/09(水) 00:22:43.32 ID:rJmaFgi1] >>892 フルスクリーン → ウィンドウモード → フルスクリーン の時の動作が良くわからんなあ。
895 名前:名前は開発中のものです。 mailto:sage [2011/03/09(水) 00:50:26.09 ID:OL3/YmmT] >>892 その様な話を聞いた気がする。新しいので治っていたような…と曖昧な記憶があった。
896 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 05:50:27.58 ID:6m0CA7fb] グラフィックの白い部分は濃度100%で、灰色の部分は濃度50%で描画したいんだけど、いい方法ないかな? そうしたいグラフィックをhoge_a.bmpにして真っ白いhoge.bmpも用意してhoge.bmpのほうを描画するようにすればいいんだろうけど あんまスマートじゃないよね。
897 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 06:16:14.89 ID:FAQ2zmRE] それ加算合成じゃね?
898 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 07:04:03.90 ID:6m0CA7fb] 違うのよね。例えば描画しようとした場所が元々、色(255,128,0)だったら 白い所は色(255,255,255)になって灰色(128,128,128)の所は色(255,192,128)になって、黒いところは色(255,128,0)のままって感じ。 ようはアルファブレンドの濃度を画像から読み込みたいの。 DrawGraph系はそれがデフォで実現できるんだけど。
899 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 07:18:31.39 ID:vOLR/zA1] 素直に>>896 に描いた通りに画像を用意するか、そういう透過度のPNG画像を用意するかだね PictBearとかあればぐその通りのPNG生成できるし
900 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 07:24:22.95 ID:6m0CA7fb] ああーPNGかぁ……そういえばそんなのもあったねぇ。 16色BMPしか使った事無かったからその発想は無かった。
901 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 07:25:05.24 ID:6m0CA7fb] 言い忘れた。 回答ありがとうございました。
902 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 07:26:03.94 ID:vOLR/zA1] 16色BMPっていつの時代だよw
903 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 07:37:10.25 ID:6m0CA7fb] いやなんかこう、描いたまんまなのが保障されて信用できるっていうか。 (0,0,0)だけが透過されるってわかりやすいし。元々俺ドット絵しか描けないし。 でもPNGって色情報とその色が何ビット連続で続くかっていうデータ構造なんだっけか? それなら見た目は変わらないだろうしそのほうがサイズ的にもいいんだよね。 いや前から気付いてたんだけどね、めんどくさいからずっとそのままでやっての、ごめん。
904 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 09:38:01.41 ID:jQ8f/olW] PNGは基本的にはピクセルのデータをzip圧縮してるだけ 可逆圧縮だから絶対に全てのピクセルが描いたままの色になる
905 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 12:34:25.51 ID:+yprSrry] 俺も最初bmpでやってたけどpngにしたら かなり表現したいものが楽で簡単に作れるようになった おすすめ
906 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 12:35:03.98 ID:+yprSrry] 楽で簡単ってなんだよ…orz
907 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 19:59:55.15 ID:6m0CA7fb] やったぁPNGでできたヨーありがと
908 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 20:13:25.51 ID:FAQ2zmRE] PNGでドット絵というなら、pngoutっていうフリーのコンソールアプリケーションでPNGの最適化とかおすすめよ 別にしなくてもいいけど
909 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 20:33:30.41 ID:6m0CA7fb] ということはデフォルトでは最適じゃないってこと? まぁ情報ありがとう。
910 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 21:43:01.44 ID:2JxcKgYY] 圧縮の最適なパラメータ値を探し出すのは わりと時間がかかるからね。
911 名前:名前は開発中のものです。 mailto:sage [2011/03/10(木) 23:01:54.80 ID:eX9JRndm] 男は黙って32bitBMP
912 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 07:33:52.45 ID:gK4E7Ao2] データーがでかすぎじゃん。 最近のゲームはDVD埋めるためにBMP使ってるとしか思えん
913 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 07:45:02.94 ID:fDILOKgF] 最近のゲームってBMPなのか? 違法コピー対策にデータ量水増ししてるという話は聞いたことあるけど
914 名前: [―{}@{}@{}-] 名前は開発中のものです。 mailto:sage [2011/03/11(金) 07:46:39.43 ID:jcxEZYMy] でも結局実行するときには展開するわけじゃん。圧縮したまま表示できるわけじゃないし。メモリ使用量は変わらんのでしょ?展開処理が省かれる方がいいじゃん
915 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 08:26:21.44 ID:3h44Ixvy] メモリやCPUの少ないPSとかの中期コンシューマ機はわからないけど、 そういった処理能力が十分にある最近のPCは「展開速度<読み込み速度」だと思うのよね 大きいファイルをHDDガリガリ言わせて読み込むよりは、小さい圧縮ファイルをちょいと読み込んで、 高速なメモリやCPUで展開した方が速度的には早いんじゃないかな
916 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 10:50:48.71 ID:plaIhemI] そもそもそんなbmpとかpんg違うだけで変わってくるもんなんか
917 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 10:50:54.67 ID:OccSvVJ3] SDカードからデータを読み込む時マップ移動でめっちゃ遅かったけど 圧縮してみたら物凄い早くなってびっくりした
918 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 10:56:30.82 ID:LEs/Jeuf] そりゃHDDに比べて転送速度がかなり遅いのが多いからな
919 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 11:36:41.06 ID:KcMscP0h] >>884 過去スレにそういう話が出てた。 14ヶ月ぐらい前のレスだったけど、多分 今も再生できると思う。 645:名前は開発中のものです。[sage]2010/01/18(月) 19:34:01 ID:YzUndEty gifアニメ、 PlayMovie()で出来たはず。
920 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 21:37:47.82 ID:plaIhemI] つい2か月前じゃんw
921 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 21:58:57.74 ID:XN7O6btB] ∩___∩ | | ノ\ ヽ | / ●゛ ● | | | ∪ ( _●_) ミ j 彡、 |∪| | J / ∩ノ ⊃ ヽ ( \ / _ノ | | .\ “ /__| | \ /___ /
922 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 22:06:30.00 ID:7H8Pgyin] >>890 だけど 結局vsync待ちするのやめて ティアリング発生覚悟で 高精度パフォーマンスカウンタでFPS制御することにしたわ すげー安定した ティアリングも思ったより気にならない
923 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 22:41:51.60 ID:TNQZ9jw4] そういえばVistaか7かでOS側がティアリング防止してるなんて話も聞いたような気がする 垂直同期信号待ちとかもうする必要なさそうだね
924 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 22:44:33.33 ID:7H8Pgyin] >>923 らしいね、オレはXPだから関係ないけどな〜 どういう仕組みでティアリング防止してるんだろ
925 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 22:50:03.08 ID:TNQZ9jw4] ちょっと調べた感じだと、単純に1フレーム遅らせてるだけみたい Vistaでマウスの位置に画像を表示するだけのプログラム動かすとちょっと遅れて付いて来てるような感じを覚えてるなそういえば
926 名前:名前は開発中のものです。 mailto:sage [2011/03/11(金) 22:54:16.60 ID:2Fw05PYB] DWMは画面全体をゲームの画面と同じように描画するんだよ DXライブラリの言葉で説明すると、まず各ウィンドウをそれぞれ別々のグラフィック(テクスチャ)に描いて それをDrawGraphで裏画面に描画した後、垂直同期待ちを行ってから表示する
927 名前:名前は開発中のものです。 mailto:sage [2011/03/12(土) 11:21:42.70 ID:9O79jOON] 管理人さん無事みたいだな
928 名前:名前は開発中のものです。 mailto:sage [2011/03/12(土) 11:26:31.82 ID:f65tMTTN] おお、よかった
929 名前:名前は開発中のものです。 mailto:sage [2011/03/12(土) 11:37:26.12 ID:o3j8l5hp] よかたよかた
930 名前:名前は開発中のものです。 mailto:sage [2011/03/12(土) 11:59:56.06 ID:yD3YkCG3] ふう
931 名前:名前は開発中のものです。 [2011/03/14(月) 22:40:22.44 ID:gNx4XTy2] 流れぶったぎったうえに初心者で申し訳ないんですが、質問させてください。 アクションゲームを作ろうと思っているんですが、 CheckHitKey関数でキー情報を取得→ベクトルで座標計算 という風にすると左キーと右キーを同時押しした時に 右と左に同時に座標が計算されて、キャラが静止してしまいます。 これを回避するにはどうすればいいでしょうか? まだポインタも理解していない程なので理解力が低いかもしれませんが、 よろしくお願いします。
932 名前:名前は開発中のものです。 mailto:sage [2011/03/14(月) 22:45:54.96 ID:UnZDECUY] 静止しちゃまずいのか? どう動いて欲しいのかを書かない限り「どのコードも正しい」
933 名前:名前は開発中のものです。 [2011/03/14(月) 22:55:43.30 ID:gNx4XTy2] >>932 すいません、言葉足らずでした。 反対方向のキーを押した場合、 後から押した方のみを計算したいんです。 (右を押しながら左を押すと左に行くみたいな) GetNowCount関数を使って時間差で比べようと思いましたが、 どうにも上手く書けなくて… 出来れば教えて頂くのは考え方だけで、 ソースは自分で頑張りたいと思います。
934 名前:名前は開発中のものです。 mailto:sage [2011/03/14(月) 23:06:54.10 ID:TbizatYE] 前のフレームの状態を覚えておくんだよ それを現在の状態と比較すれば、押されたキーや離されたキーがわかる
935 名前:名前は開発中のものです。 [2011/03/14(月) 23:13:39.89 ID:gNx4XTy2] >>934 アドバイスありがとうございます。 秒じゃなくてフレームじゃないと駄目だったんですね。 …そりゃそうか。 完成できるよう頑張ります!
936 名前: [―{}@{}@{}-] 名前は開発中のものです。 mailto:sage [2011/03/14(月) 23:21:23.20 ID:E5S/TLVJ] while(1) { old_left_key_state = left_key_state; old_right_key_state = right_key_state; if(CheckHitKey(LEFT_KEY)){ left_key_state = PUSH; } else{ left_key_state = RELEASE; } if(CheckHitKey(RIGHT_KEY)){ right_key_state = PUSH; } else{ right_key_state = RELEASE; } if(left_key_state == PUSH && right_key_state == RELEASE){ press_key = LEFT_KEY; } if(left_key_state == RELEASE && right_key_state == PUSH) { press_key = RIGHT_KEY; } if(left_key_state == RELEASE && right_key_state == RELEASE){ press_key = NONE; } if(left_key_state == PUSH && right_key_state == PUSH){ if(left_key_state == PUSH && old_left_key_state == RELEASE){ press_key = LEFT_KEY; } if(right_key_state == PUSH && old_right_key_state == RELEASE){ press_key = RIGHT_KEY; } } }
937 名前:名前は開発中のものです。 [2011/03/14(月) 23:54:12.21 ID:gNx4XTy2] >>936 コードありがとうございます。 自分で作るとか言っときながら、あっさり見てしまいました。 でも参考になりました!やっと悔いなく先に進めそうです。
938 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 00:03:07.27 ID:X3tKRN+k] ttp://dixq.net/rp/2.html これの値でかいほうにすりゃいんじゃね
939 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 03:26:20.84 ID:DqTTW319] これ関係ないキーまで256回もチェックするのが気になるのだが 256回程度じゃ問題ないという考えなのか あとその上の奴は4塊目 普通 else if(left_key_state == RELEASE && right_key_state == PUSH) { press_key = RIGHT_KEY; } else if(left_key_state == RELEASE && right_key_state == RELEASE){ press_key = NONE; } 入れるもんじゃないのか もしそうするとその次の if(left_key_state == PUSH && right_key_state == PUSH) も else だけで済むでしょう それとその後の if(left_key_state == PUSH && old_left_key_state == RELEASE){ press_key = LEFT_KEY; } if(right_key_state == PUSH && old_right_key_state == RELEASE){ press_key = RIGHT_KEY; } だが left_key_state == PUSH && 、right_key_state == PUSH && いるかね こまけえこたあいいんだよ?
940 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 06:05:58.86 ID:xbXr2Nkf] >>939 「これ」とか「その」とかってなんだよ、ちゃんとどこか安価でもしろよ 答える方に探せってか? 幸いレスが近いから>>936 のことだろうって分かるけどよ あと4塊目ってなんだよ、そんな言葉初めて聞いたよ 簡単な例示のプログラムなんだから こまけぇこたあいいんだよでおkだろ おまえの言ってることはあってるけど、動作的には同じだろ? 条件を明示的にわざと条件を冗長に書いて コードの可読性を上げるという意味はある nに1〜4までしか入らないswitch文でも switch(n){ case 1: break; case 2: break; case 3: break; default: break; } とは書かんだろ? >これ関係ないキーまで256回もチェックするのが気になるのだが 全部のキーを調べないと汎用性がないだろ もし、使いたいキーが増えたらその都度増やすのか? べつにそれでもいいけどさ あと、普通はGetHitKeyStateAll使うだろ
941 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 09:09:53.01 ID:DqTTW319] 普通はGetHitKeyStateAll使うってのは言おうとしたけどやめたんだ あと安価付けるの照れ臭いんだ 察してくれよw 4塊目ってのは言い方が思い付かなかったんだから分かるだろと思って俺が勝手に作ったんだよ 分かるだろ?w まあ何か言い方はあるんだろうけどすぐに思いつかなかった まあそれだけのことだw 明示的にわざと書いてとは言うがこの場合は書かなくても分かると思ったんだよ まあ人それぞれだろうが 全部のキーを使わないと汎用性ないだろとは言うがだからといって256個も使うわけねえだろって思ってw 大体方向キーとボタン数個だけだろ、使うとは言っても いくら汎用性がないとはいえ調べる必要ない奴の方が圧倒的に多いのに256個もチェックする必要があるかねって思っただけw
942 名前:名前は開発中のものです。 [2011/03/15(火) 09:12:40.30 ID:gnI9eXa6] 芝
943 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 09:14:29.72 ID:DqTTW319] だから > if(left_key_state == PUSH && right_key_state == PUSH) も else だけで済むでしょう は置いといてもだ > if(left_key_state == PUSH && old_left_key_state == RELEASE){ press_key = LEFT_KEY; } > if(right_key_state == PUSH && old_right_key_state == RELEASE){ press_key = RIGHT_KEY; } の > left_key_state == PUSH && 、right_key_state == PUSH && はすぐ上に同じ条件があるんだからいるかね?って思っただけ まあ別に大した問題ではないんだけどねw それでも細かい俺は気になったの 細かいこと気にし過ぎ?w
944 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 09:23:09.01 ID:7Ujss6hx] まぁ情報が少なくて困るよりは、 教科書どおりの良い情報と、流し見でいい発展情報とがあるほうが、いいんでないかい 教科書と発展とが混ざってわからなくなると困るけど、そこはみんな 鋭くツッコミ入れてくれるところだしな
945 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 09:34:29.08 ID:xbXr2Nkf] >>943 気にしすぎ あとイチイチ語尾に芝はやすのうざい 真面目にレスする気なくす >普通はGetHitKeyStateAll使うってのは言おうとしたけどやめたんだ 言えよ >あと安価付けるの照れ臭いんだ >察してくれよw ムリ あとはコーディング規約をどうするかって話だけだ そこは人と場合それぞれで明確な解答はない 以上、もうお前にはレスしない
946 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 09:47:22.67 ID:LRL3QteV] bool Input::KeyDown(BYTE key) { return (m_keyInput[key] & ~m_keyInputPrev[key]) == 1? true:false; } 俺は上みたいにしてるよ 前フレームのをmemcpyで配列毎コピーすれば良いと思う
947 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 10:12:36.70 ID:DqTTW319] >>945 今回は敢えて言う必要ないかなと思っただけだよ レスしねえなら最初っからすんじゃねえカス
948 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 10:35:06.21 ID:sVXS+gQF] 相手からの反論がないならと安心して罵倒か カスはお前だろw
949 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 10:47:54.36 ID:xUaeA1H3] >あと安価付けるの照れ臭いんだ >察してくれよw 無茶言うなw
950 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 16:58:39.83 ID:18Xm69u5] プリコンパイル済みヘッダって、DxLibくらいじゃ効果薄いよね?
951 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 17:11:32.96 ID:KXScCzgE] とある人の受け売りだけど、VCにてビルドを超高速化する方法 自作のヘッダファイルにはインクルードガードを施す ↓ cppファイルを1つを除いて全部「ビルドから除外」する ↓ そして、その1つのcppファイルにそれら「ビルドから除外」したcppファイルを全部インクルードする ↓ ビルドする ↓ サラマンダーよりはやーい プリコンパイル済みヘッダはシラネ
952 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 17:14:05.00 ID:fAuDpb2f] >>951 最後なんなんだよ。 俺とやる気か?あ?
953 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 18:01:11.55 ID:nteT3Zz7] >>950 めっちゃ早くなってるよ アホだから設定苦戦したけど。
954 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 19:05:01.55 ID:QQAoE1bu] >>951 それって1ファイル書き換えただけで全部の.h/.cppをコンパイルし直すことにならないか?
955 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 19:44:40.83 ID:KXScCzgE] >>954 よっぽどの量でない限り、一つのファイルのコンパイル速度はコード量に左右されないよ ビルドで時間使ってるのはプリプロセスやobjのリンクで、それをすっ飛ばせるとかなり早くなる cppが多いプロジェクトを書き換えると感動すると思うよホント 正直今まで人に教えるのを勿体無いと思ってたレベル
956 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 20:12:52.73 ID:Q7+nM0HN] つうか、普通にそういうのオフに出来るオプションあるんじゃないの? いや、詳しくは知らんけど。
957 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 20:32:14.80 ID:xbXr2Nkf] >>951 includeの順番間違えて ビルド出来るようにするまでちょっと戸惑ったけど むっちゃくちゃ速くなった、ありがとう
958 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 20:38:02.64 ID:hTtiuP+j] #includeでcppか……違和感はあるな
959 名前:名前は開発中のものです。 mailto:sage [2011/03/15(火) 21:01:01.48 ID:44jcDk3e] LL系言語のloadfileみたいだなw
960 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 15:22:41.05 ID:ywftU18L] 理に適ってるかどうかは置いといて、非合理的ではある
961 名前:名前は開発中のものです。 [2011/03/16(水) 16:22:15.68 ID:zS54Nj1q] なぜ非合理的なのでしょうか?
962 名前:名前は開発中のものです。 [2011/03/16(水) 16:25:58.79 ID:zS54Nj1q] つか、理にかなってないかわからないけど 非合理的って矛盾してね?
963 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 16:26:24.95 ID:do/XMJJp] 合理的かどうかは知らんが、スピードを優先するために何かを犠牲にするって話だよね 何かってのは例えば>>957 がたどったような手間とか
964 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 18:52:54.43 ID:UW09KiLI] >>963 オレがその>>957 だが、ビルド出来るようにする手間より ビルドにかかる時間の短縮のほうがでかかったよ すげ〜得した >>955 の言うとおりcppファイルが沢山あるプロジェクトほど効果はデカイ >>960 のレスこそ非合理的って話だな
965 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 18:53:19.02 ID:gTLtkOfi] まぁぶっ飛んだ裏技的やり方だからね C++の仕様を理解できてコードの依存関係を頭の中でちゃんとイメージ出来る人だけ 楽する手段としてつかって欲しい感じ
966 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 19:07:37.43 ID:BjnjOb1q] このやり方を支援するプラグインがあればいいのにな
967 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 19:17:41.84 ID:i6gMh4cT] てか、俺からしたらそんなにビルドに時間がかかるほどのゲームを作ってる人がいるのに驚きだ。 しかもDXライブラリを使って? いったいどんな規模のゲームなんだ。
968 名前:名前は開発中のものです。 [2011/03/16(水) 19:17:48.09 ID:BC+pXFRw] デフォでオフだけど並列でビルドするオプションがある すごく早くなる
969 名前: [―{}@{}@{}-] 名前は開発中のものです。 mailto:sage [2011/03/16(水) 19:31:14.46 ID:wm2Br6SF] // main.cpp #include <stdio.h> #include "sub_1.cpp" #include "sub_2.cpp" extern int get_sub_1_val(void); extern int get_sub_2_val(void); int main(void) { printf("sub_1_val: %d\n", get_sub_1_val()); printf("sub_2_val: %d\n", get_sub_2_val()); return 0; } // sub_1.cpp static int val = 10; int get_sub_1_val(void){ return val; } // sub_2.cpp static int val = 20; int get_sub_2_val(void){ return val; } sub_2.cpp(1) : error C2370: 'val' : 再定義 ; 異なるストレージ クラスです。 sub_1.cpp(1) : 'val' の宣言を確認してください。
970 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 19:47:41.09 ID:zS54Nj1q] なるほどね Cだと駄目だね 無名空間とかもそうなるのかな?
971 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 19:50:17.06 ID:gTLtkOfi] >>967 そんな大規模じゃなくてもcppファイルが多くて…… STGなんだけど、 自作計算関数、自作システム関数、保存データ管理関数、敵クラス、弾クラス、その他オブジェクトクラス、 ゲームシーンクラス、メニューシーンクラス、リソース定義……とか 全体の行数はたった6000行ちょい(空改行除く) >>969 extern宣言してないグローバル変数の衝突は仕方ない…… てか考えると思ったよりも問題の出るケース多そうね……
972 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 20:02:03.60 ID:1Ae82QgD] >>968 教えてくれてサンクス 一瞬で終わって驚いた
973 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 21:19:17.62 ID:tAHP0ur9] 全体の行数ってどうやったら数えられるんだっけ?
974 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 21:19:47.26 ID:tAHP0ur9] 書き忘れた、もちろんVCの話で…
975 名前:名前は開発中のものです。 mailto:sage [2011/03/16(水) 23:33:53.97 ID:do/XMJJp] 行数カウントツールが、フリーソフトページにあるよね 並列ビルドはぐぐったけど見つからなかった 複数プロジェクトを同時ビルドってのは初期値が2で最大値が32みたいだけど、これは違うよねきっと
976 名前:名前は開発中のものです。 [2011/03/17(木) 01:14:09.79 ID:jlNSzrqd] VCに「複数プロセッサによるコンパイル」という項目がある
977 名前:名前は開発中のものです。 mailto:sage [2011/03/17(木) 04:33:38.84 ID:FsTg2Syb] プロジェクトのプロパティ>構成プロパティ>C/C++>全般>複数プロセッサによるコンパイル だな VC++2010にはあるけど、VC++2008には無いみたいだな
978 名前:名前は開発中のものです。 mailto:sage [2011/03/17(木) 21:28:02.94 ID:USLN5jlJ] 2008なら/MPオプションを直接与えればいい