C# C# C♯ でゲームを作ろう Part1 at GAMEDEV
[2ch|▼Menu]
[前50を表示]
450:名前は開発中のものです。
10/02/27 16:16:59 lNYv9JrS
XNA用のネイティブフォントクラス作ってみた
URLリンク(gamdev4.hp.infoseek.co.jp)
ちゃんと試してないしオプションの実装も超適当だけど

451:名前は開発中のものです。
10/02/27 16:53:09 ufygOO6X
フォントですか

452:名前は開発中のものです。
10/02/27 22:05:07 mQhBDxzJ
フォントだよ

453:名前は開発中のものです。
10/02/27 22:07:42 e0cJrNax
ウソです

454:448
10/02/28 00:14:16 wSOf0xrI
>>449
MDXだけど、まるぺけの高速フォント参考にした。
ソースコード全部はそれなりに長いので要点だけ。

System.Drawing.Graphicsは、GDI+でのサーフェスみたいなもの。DirectXのサーフェスと違ってDraw○○といった直線や文字列、矩形を描画するメンバがある。
Graphicsに書かれた画像をbyte配列に変換すれば、Stream経由でTexture化できる。
つまりGraphicsのサーフェスを適切なサイズに設定して文字を書いた後、Textureにすればいい。

Bitmap img = new Bitmap(textureSize.Width, textureSize.Height);
Graphics graphics = Graphics.FromImage(img);
graphics.DrawString(text, font, Brushes.White, 0, 0);
byte[] imgBytes = (byte[])(new ImageConverter().ConvertTo(img, typeof(byte[])));
MemoryStream ms = new MemoryStream(imgBytes);
return TextureLoader.FromStream(device, ms);

あとはTextureから実際に使う領域の保持や、Textureと文字の管理を上手く出来るような仕組みを作ればいい。





455:名前は開発中のものです。
10/02/28 02:52:38 IREy6+f9
XNAをさっとなぞってみたんだけれども、
やりたいことの方向性からして、今出てるフォントがらみの問題がきつすぎる。
悲しいけれども、ここの人みたいにスマートに処理できるだけの力量はない。

そんなわけでC#でDirectXがらみの書籍を探してみたんだけれども、
赤坂本で扱われている程度の内容しか正直見つからなかった。
DirectX未経験者としては、サンプルコードから理解しろというのも少し厳しいところなんだけれども、
今後資料が充実していくのを期待して、今は控えめなコードに専念するのが賢明かな?
それとも頑張ってXNAでフォント処理してく方が将来性ある?

456:名前は開発中のものです。
10/02/28 04:58:49 FLZsiwsa
XNAも先はいまいちわからんからなぁ。
サンプルが欲しいならC#で作ってるゲームでソース公開してるやつを片っ端から
あさってみれば?
そういえばFreetrainもC#で確かDirectxだったと思うけど。

457:名前は開発中のものです。
10/02/28 09:04:28 IREy6+f9
>>456
良くも悪くも「C#でゲーム⇒XNA」てな感じの状況だから、
それに逆らうとなるといろいろ探しにく感じが強いね。地道に頑張るか。
正直、このフォントまわりさえなんとかなれば(個人的には)XNAでも何の問題もないんだけど。

458:名前は開発中のものです。
10/02/28 10:19:21 TP6H+ekZ
>>450
ありがとうございます。
ところでこれ使っていいんですか?(ライセンス的な意味で)

>>455
MDXはその4年前に出版された赤坂本が最新書です。
今後、資料が増えていく見込みは無いと思う。
それか>>422から他の候補を探すか・・・
XNAを使うのが無難じゃないかな。

459:450
10/02/28 11:44:10 4pJlo65w
実はだいぶ前に作ったもので、レイアウトやキャッシュ管理についてはXNAの古いサンプル(XNAExtras)
を参考にしててもしかしたらライセンスは微妙かも(XNAExtrasのライセンスが不明なため)
MSのサンプルだし基礎的な部分だし問題ないとは思うけど一応

460:名前は開発中のものです。
10/02/28 12:03:38 FLZsiwsa
>>458
俺はその中ではSlimDXが一番マシかなぁと思ってる
資料が少ないだけで、純粋なDirectXのラッパーなので変な癖がなくていいんじゃないかと。

461:名前は開発中のものです。
10/02/28 13:28:12 DtoSZeKr
XNAはXBOXとの連携考えないならそんなにうまみが無い気がするしね。
ただフレームワークの参考にしたりサンプルをパクったりする対象としては結構良いと思った。

462:名前は開発中のものです。
10/02/28 13:31:21 8tKID8o0
2DならDxLibが一番簡単で完成度も高い
3DならSlimDxが簡単だがちと完成度に難あり

速度はどちらも問題なし

463:名前は開発中のものです。
10/02/28 13:35:49 4pJlo65w
SlimDXはほぼ完成してるでしょ
個人的には2DならSilverlightでいいんじゃないかと思ってるけど

464:名前は開発中のものです。
10/02/28 14:19:41 DtoSZeKr
Silverlight は良いとは思うけど Flash みたいなブラウザゲーになっちゃうから
この場合とりあえず WPF の方挙げたほうがよいような。



465:名前は開発中のものです。
10/02/28 17:27:06 TP6H+ekZ
>DirectX未経験者としては、サンプルコードから理解しろというのも少し厳しいところなんだけれども、
ということを考慮すると選択肢はMDX、XNA、DXライブラリに絞られると思う。
SilverlightやWPFは元々ゲーム開発向けではないので・・・

466:名前は開発中のものです。
10/02/28 17:34:02 IREy6+f9
>>460
SlimDXは使ってみたいけれども資料の心許なさは否めない……
WPFはゲーム向けじゃないから何処までいけるかも分かんないしね

この手のが苦手な人間としては、
XNAはサンプルが豊富でいいけど、サンプル読むためだけに習得するのは地味にテンションあがらない

467:名前は開発中のものです。
10/02/28 18:06:40 TP6H+ekZ
>>466
>WPFはゲーム向けじゃないから何処までいけるかも分かんないしね
2Dに限定すれば性能は問題ないと思う。(内部的にはDirectXなので)
だけどWPFに足りない機能を補うのに結局MDXを使うことになりそうなのでお奨めはできないね。
悩んでいてもしょうがないし、とりあえずどれかで作ってみたら?

468:名前は開発中のものです。
10/02/28 19:14:34 wSOf0xrI
なんかかんだでC#でゲーム作ろうとしてる潜在人口増えてる気がする。
Wiki作ったらちゃんと動くんじゃね?

469:名前は開発中のものです。
10/02/28 19:29:54 IREy6+f9
>>468
すごく期待してるよ。

470:名前は開発中のものです。
10/02/28 19:37:34 EqB81q2J
>>468
言いだしっぺの法則

471:名前は開発中のものです。
10/02/28 20:23:00 FLZsiwsa
>>468
無駄だよ。
今まで似たようなwikiはいくつも立っては更新されずであぼーんというのが多いから。
みんな面倒臭いから更新しないんだよね。
wikiよりこのスレでいいじゃんという人もいるし。
立てるなら、>>468が死ぬ気で保守するつもりじゃないと。

472:名前は開発中のものです。
10/02/28 21:21:24 5ju70AEw
wikiなんて何に使うんだ?

473:名前は開発中のものです。
10/02/28 21:49:55 DtoSZeKr
情報源並べたりとか?
俺もこのスレでいいとは思うなぁ。

必要だと思った人が適当にここから拾ったりググったりしたのを並べて作りゃいいんだと思う。

474:名前は開発中のものです。
10/02/28 22:16:44 5ju70AEw
講座とかやってなきゃある程度で更新が止まるのは当たり前じゃね?

475:名前は開発中のものです。
10/02/28 23:36:56 FLZsiwsa
だよねぇ。
誰かがC#ゲーム作りまくリング講座とか、SlimDX活用講座とかやらない限りは
wikiでまとめるほど情報はなさそうだし。

476:名前は開発中のものです。
10/03/01 01:39:30 IVHysUvX
>>468
VBとSlimDXで3Dやってるけどかなりいいとこまで使い込めてる
SlimDXの本出すなり講座作るなりできたら面白いんだけどね

477:名前は開発中のものです。
10/03/01 01:43:55 e/OrKGEO
wikiでリンク集があるだけでも違うと思う
スレの消費が遅いからテンプレも更新できないし

478:名前は開発中のものです。
10/03/01 01:51:30 F++E42+D
そもそもここも賑わっていない、SlimDXのスレも賑わっていない、つまり
C#でゲーム開発というのは流行っていない、人気がないということ。
みんなHSP、C++、VB辺りでやってんだろうね。

479:名前は開発中のものです。
10/03/01 07:44:39 9s8WXKsE
ギャグに笑った。

480:名前は開発中のものです。
10/03/01 09:47:28 R/ddI/cc
C++>>>C>>>HSP>>>VB>=C#
ユーザー人口で考えるとこれくらいじゃないだろうか?
この板HSPのスレ大杉w
それに比べるとC#は・・・

481:名前は開発中のものです。
10/03/01 11:04:29 F++E42+D
C#はまだ新しい言語だし、書籍も少ないし、DirectXとの連携弱すぎるし。
.Netはゲームに向かないという認識が多いような気もする。

482:名前は開発中のものです。
10/03/01 11:09:22 PvsVfa3z
C#ももう少しいろんな情報が増えれば人口拡大しそうなんだけどなぁ

483:名前は開発中のものです。
10/03/01 11:19:10 nHfukh+l
既存の情報、ライブラリなりが生かしにくいから、
C++とかHSPに偏ってしまうのは仕方ないかと。
ただ、ABA Gamesの人とかは色々な言語でバリバリゲーム作ってるし、
要は開発言語よりやる気だと思うよ。

484:名前は開発中のものです。
10/03/01 11:28:13 /y68wErN
英語さえOKならC++に次ぐ情報量だと思うんだけどな
最近の言語で生に近いDirectXを触りたかったら良くも悪くも唯一の選択肢なのは事実

485:名前は開発中のものです。
10/03/01 11:42:24 yxnn7vKi
Managed DirectXで昔ゲーム作ってたなあ
途中で一人じゃ無理だ!と思ってやめたんだけど、今はManaged DirectXなんて誰も見向きしてないのかな

486:名前は開発中のものです。
10/03/01 12:03:08 /y68wErN
MDXにしろSlimDXにしろXNAにしろ「意外に難しい」というのがネックになってると思う
C#で作ると簡単っていうのはちゃんとオブジェクト指向とか理解してて
DirectX使った経験もある人が同じものをより楽に作れるという意味なんだけど
勘違いして挫折する人が多そう

487:名前は開発中のものです。
10/03/01 12:06:58 vg9zPgWn
事実上まともに使えるようになった初めての言語がC#だから、どうしても趣味の開発はC#がメインに。
C#を0から始めて3年強だが、Managed DirectXでゲーム作ってるよ。

488:名前は開発中のものです。
10/03/02 21:29:50 VZeQsxZ+
C#て構造体使えないの?

489:名前は開発中のものです。
10/03/02 21:42:00 pA72ewEG
他の言語の構造体に相当するものはC#には「構造体」と「クラス」の二種類がある
でもよくわからないうちは無条件にクラスだけ使ってればおk

490:名前は開発中のものです。
10/03/02 22:23:42 AR61Egkn
ManagedDirectXからSlimDXの乗りかえやった時に気づいた点。
この差以外は、MDXのコードをほぼそのまま流用できた。

全体的に、SlimDXの方がC++のインターフェイスに近い印象。

・クラス名がびみょーに違う箇所がある。大文字・小文字とか、微妙に省略されてたり。
・MDXはRenderStateの設定・取得をプロパティでやっていたけど、SlimDXはメソッド。
・SlimDXのDrawUserPrimitives系メソッドが軒並みジェネリクスメソッドになってる。
・MDXには最初から使える頂点フォーマットがあったが、SlimDXにはない。自分で定義する必要がある。
・SlimDXはプログラム終了時にDisposeされてないリソースがあるとデバッグ出力で教えてくれる。
・ライト関係のデフォルト値が微妙に違う?
・Windowed = trueの時にターゲットウィンドウをリサイズすると、MDXではデバイスリセットが起こったがSlimDXでは起こらない?


491:名前は開発中のものです。
10/03/03 00:03:47 nrB8chpG
頂点だのテクスチャだのの前に
ポリゴンデータファイルを指定すれば終わりくらいのところからプログラミングしたい

492:名前は開発中のものです。
10/03/03 05:18:32 eWEus3uj
>>490
あまりきちんと調べてなかったけど、
そうやって手探りで列挙していくしか方法ないくらい情報ないの?
参考になってありがたいけど、変なところで何かわきそうで怖いな。

少し真面目に>>468に期待してみよう。
いや、リンク集程度でも初学者には助かると思うけどね。
情報の得やすさにつられてHSPにいって、構造体が使えないことに切れた身からすれば。

493:490
10/03/03 08:46:33 y9fo7Wsr
>>492
うーん、調べ方が下手だったせいかもしれないけど
俺が見つけた有効そうな情報は>>224のページぐらいしかなかった。

SlimDX と C# で学ぶ DirectX
URLリンク(mainori-se.sakura.ne.jp)

SlimDXはSampleFrameworkの解説ばっかりな印象・・・


494:名前は開発中のものです。
10/03/03 12:28:54 xcXsi4DP
初学者といってもオブジェクト指向言語使っててゲーム初めてって人と
プログラミング自体始めての人では全然違うからなあ
後者でいきなりDirectXやXNAに手を出すのはいくら情報があっても無謀すぎる
後者の人向けに適度に整理された簡単なライブラリがあってもいいと思う
C#で作るならどのみち.NETのライブラリ使うためにオブジェクト指向必須なわけで
DXライブラリみたいに全くクラス使わないのもそれはそれで勉強にならないだろうし

495:名前は開発中のものです。
10/03/03 12:39:34 s3IZktwn
オブジェクト指向だとゲームキャラがオブジェクト?
オブジェクトにどうやって処理移すんだい?
結局Mainでキャラ移動計算させて、その後まとめて画像処理するんでしょ?
構造体も楽かもしれないけどデータ処理する時に面倒だし、結局配列処理が楽じゃなかろうか

496:名前は開発中のものです。
10/03/03 12:57:01 xcXsi4DP
オブジェクトに処理を移すのは、単にオブジェクトに定義したメソッドを呼び出すだけ。
実際には上からまとめて処理したほうが適切な場合もあるけど
それは両方のやり方を理解した上での判断。
それと少なくともC#では構造体というかクラスを使ったほうがあらゆる場合において楽。

497:名前は開発中のものです。
10/03/03 13:52:54 eWEus3uj
>>494
ああ、一応自分は「ゲーム製作が初めて」って人のつもりでいった。
CUIからGUIに移るときみたいに、DirectXに手を出すのってすごい緊張するし、
散漫とした情報がまとまってるだけでも助かると思うんだよね。ていうか普通に助かる。
プログラム自体が初めてで、言語を学習するっていうステップがだるいのなら、それこそHSPとかで問題ないと思うけど。

498:名前は開発中のものです。
10/03/03 15:13:16 afOgtRF+
>>495
根本的に勘違いしてる悪寒

499:名前は開発中のものです。
10/03/03 15:18:23 Ze2euE6W
>>494
オブジェクト指向自体そんなに難しいものでないと思うけど
プログラミング経験無しでVB.NETやったけどクラスの概念はすぐに身につけられる
RPGにしてもアクションにしてもキャラのパラメータを複数種類管理する場合一つにまとめるクラスや構造体が無いとプログラミング辛い
キャラが多数登場した場合どうやって各キャラのHP、MP計算するのって感じ
HSPでは2次元配列使う人もいるらしいが生産効率良くないのでは

500:名前は開発中のものです。
10/03/03 15:21:02 kTwTJSCn
>>495
なにしにこのスレきたんだw

501:名前は開発中のものです。
10/03/03 19:23:24 kC+oOCRK
なんか私情につきストレスたまってきたから発散てがらWiki作りたくなってきた。
@Wikiで無問題?

502:名前は開発中のものです。
10/03/03 19:30:43 eWEus3uj
個人的にはwikiwiki.jpの方が広告がうざくなくて好きだな。
友人が@wikiを運営してたんだが、かなりのバグレポートを運営に送ったよ。

まったくスレ違いだけど、MediaWikiはカスタマイズしようとすると敷居が高すぎる。
専門書籍があるっていうか貸してもらったら、ただの導入ガイドだった。

503:名前は開発中のものです。
10/03/03 19:47:09 kC+oOCRK
確認してから作るんだったw
@wikiで作っちまったぜ。さて、初めて立てたはいいが、とりあえずトップページを整理するか。

504:名前は開発中のものです。
10/03/03 21:37:50 WrVTVr2b
@wikiでも問題ないと思うよ
ゲーム内からシームレスにwikiにアクセス出来たら楽しいかなぁとか思ったことはあるなぁ。

505:名前は開発中のものです。
10/03/03 22:03:11 Mn00E9kp
@wikiって、画像張ってたらそのうち消えてなくならない?

506:名前は開発中のものです。
10/03/03 22:04:01 Mn00E9kp
>>504
WebBrowserで表示すんの?
オンラインヘルプには使えそうだけど。

507:名前は開発中のものです。
10/03/03 23:05:44 WrVTVr2b
>>506
サービスとしてwiki作っといてXMLで取得した結果を適当に整形して表示とか。


508:名前は開発中のものです。
10/03/03 23:10:37 MGKJMo+R
じゃあどうせならWCFで

509:503
10/03/03 23:51:12 kC+oOCRK
URLリンク(www21.atwiki.jp)

色々整理したりソースコードを添付しても問題ないCSSとか検討してたら時間がかかってしまったぜ。
トップ、メニュー、更新履歴は変更不可にしてあるから、メニューに追加したい項目があったらここで言うか、Wikiの要望にでも追加してクレイ。

510:名前は開発中のものです。
10/03/03 23:51:19 eWEus3uj
XNAだのSlimDXだのWPFだのWCFだの周辺技術はたんとあるのに、
どうして肝心の資料がこんなに乏しいんだよ!

511:名前は開発中のものです。
10/03/03 23:54:41 kC+oOCRK
あと、極端に連続して一人で更新してると規制がかかるようにしてある。
困ったらこっちで言えばたぶん調整する。

512:名前は開発中のものです。
10/03/04 00:03:26 qUgZwniE
だから今必死にMDXの情報をWikiに書いてる。

正直適当にまとめて同人誌とかにでもしようかとも思ったが、需要微妙、どう考えても赤字、本だと後で修正できない、MDXも末期を既に通り越している。
それならC#布教の方向でってことで今現在Wiki編集中。

513:名前は開発中のものです。
10/03/04 00:51:23 ZZ1RE2F0
全部あてにしないでC#+元祖DirectXで

514:名前は開発中のものです。
10/03/04 01:06:51 qUgZwniE
とりあえず1項目書いた。こんな感じで気軽にWikiを使ってやってください。

515:名前は開発中のものです。
10/03/04 01:30:45 0F0RDIl6
もうちょっと幅広がらないかね・・・
狭すぎる。

516:名前は開発中のものです。
10/03/04 01:31:47 lM24vRy8
>>509
MDXの情報いらなくて?

もう亡くなった物の情報集めても意味無いと思うが
他の事に力を使った方が時間が無駄にならない

517:名前は開発中のものです。
10/03/04 02:01:39 qUgZwniE
>>515
問題ない程度に広げた。

>>516
MDXは基本うちが吐き出すだけだ。気にするな。

518:名前は開発中のものです。
10/03/04 02:06:33 7axQMIrm
>>516
まあ、いいじゃないか。
なんでもいいから更新し続けていれば、人は集まるよ。

>>517
がんがってくれ。
こちらも何か書けることあれば、協力するよ。

519:名前は開発中のものです。
10/03/04 02:36:23 wwLMhN5T
>>509
うちもSlimDXの講座作ろうかなって思ったが、VBなんだけどさ
見に来てくれるもんかな

520:名前は開発中のものです。
10/03/04 04:53:15 2QjDvH9B
>>509
おつ。悲しいかなうたた寝してた……。
なんか文句ばっかで悪いけど簡潔に、

装飾にはちょっと泣いてもらって、幅は遠慮無くひろげたりできない?
普通なら問題ないけど、ソースコード読むときにはちょっときついって印象を覚える。

同様に、line-heightの値をどのくらいか設けてくれると
弱視としては非常に嬉しかったりします。

このデザインは@wikiのテンプレかな。
普通に使う分にはひげがかわいいけどw、今回はもうちょっと機能的でいいんじゃないかとも思った。
頭痛がするのでいいっぱなしですまん。@wikiに登録したことないんで、管理側のことが少し分かりにくい。

521:名前は開発中のものです。
10/03/04 07:18:15 zAv+8g22
>>519
俺はVBでも大歓迎だな
管理者がどう思うかは分からんが

522:名前は開発中のものです。
10/03/04 08:51:45 J2UTh2sv
VBでも.NETならC#への変換は容易だし別に問題ないんじゃね?

523:名前は開発中のものです。
10/03/04 09:58:06 6hy57dse
気になった人がC#に翻訳すればいいんじゃないの
たいていの.NETのTipsサイトがそうなってるみたいにVBとC#両方あってもいいでしょ
C#わかるのにVB分からない人はいないけど逆は拒否反応示す人がいるし

524:名前は開発中のものです。
10/03/04 10:21:00 vnyJQUOn
>>509
どれも一通りさわったからいろいろ書きこみたいけど、こういうの書いたこと無いからなあ・・・

525:名前は開発中のものです。
10/03/04 11:37:13 qUgZwniE
>>520
デザインに関しては、プログラムコードを考えて微妙とは思ってた。ので変更。
メインエリアのline-heightは1.4emにした。

C#の人はVBでもガンバりゃ読めるから※VBとか適当にコード説明の前に書いとけばいいと思う。
DOBONとかその他サイトもそうだし。

>>524
まずは気楽に書くといいよ。プレーンテキストでも書けば、誰かが適切に装飾、整理するかもしれないしね。


526:名前は開発中のものです。
10/03/04 12:56:00 ouP8H33O
俺もC#とVBを載せるのは賛成
できればC++も載せてほしいぐらいだよ

527:名前は開発中のものです。
10/03/04 13:02:47 FKVyGG34
だったらDelphiも載せてください。

528:名前は開発中のものです。
10/03/04 16:24:41 ouP8H33O
↑こういう人が出てくるから詳しく書くとC++と言ってもCLIのことね

529:名前は開発中のものです。
10/03/04 16:27:53 FKVyGG34
Delphiだってそれぐらいあるよ・・・・

530:名前は開発中のものです。
10/03/04 16:53:14 m6zX6+Q9
>>519
期待
C#使いはVB読めるだろうからVBのみでもいいよ
たぶんみんな脳内翻訳するから

531:名前は開発中のものです。
10/03/04 16:57:09 vnyJQUOn
>>528
Delphiも今は.NETなのだよ

532:名前は開発中のものです。
10/03/04 17:02:39 5nWuLvdw
Delphiとか、もはや旧時代の遺物だろ

533:名前は開発中のものです。
10/03/04 17:14:17 diHC1hi0
Kylixならともかく、Delphiを過去の遺物とか何言ってんだ?w

534:名前は開発中のものです。
10/03/04 17:32:37 FeTlEaQa
mqoファイルをアニメパターン分読み込んで
複数キャラを動かすまでのサンプルを誰か作って^^

535:名前は開発中のものです。
10/03/04 17:40:28 m6zX6+Q9
C#スレにDelpahi嫌いがいるのはちとうさんくさいなw

536:名前は開発中のものです。
10/03/04 17:47:19 6hy57dse
C++/CLIってVS2010でインテリセンス非対応なんでしょ
一時的とは言ってるものの、ここまで酷い扱いされてるようだと先行きが心配
メインで使うなっていうのはもともとMSも言ってるんだし
ラッパー書いたりする分には問題ないだろうけど

537:名前は開発中のものです。
10/03/04 18:14:25 U/THXGgG
そいやMSがC#作るさいDelphiのPGが引きぬいたんだっけ

538:名前は開発中のものです。
10/03/04 18:16:52 Z2zKlpNJ
Wikipedia項目リンク

539:名前は開発中のものです。
10/03/04 19:23:57 2QjDvH9B
自分はVB.NETは使わないからあってもなくてもいいけど、
必要に応じて誰かが補完してくれるんじゃないかな?

あれもこれも贅沢言えばきりないし、ひとまず言語としてはC#中心で
著者都合でVBの場合は、誰かができるだけC#に翻訳したのも掲載するとかでどうすか?

>>520
手数かけてすまない。だいぶ読みやすくなった。

540:名前は開発中のものです。
10/03/04 20:12:15 FKVyGG34
>>537
アンダース・ヘルスバーグ(Anders Hejlsberg)
Turbo Pascalの原作者でDelphiのチーフアーキテクト
マイクロソフトに移ってからは.NET Frameworkのキーアーキテクトであり
J#やC#言語チーフ・アーキテクトでもある

伝説級といえばカトラーやウォズニャック、チャールズ・シモニーあたりが有名だけど
現在進行形でいえばこの人が最強じゃないかと思う

541:名前は開発中のものです。
10/03/04 22:40:46 qUgZwniE
>>534
要点だけ書いた。後は自分で実装してくれ。

542:名前は開発中のものです。
10/03/05 02:20:10 h0gn4F3e

>実際の描画はワールド座標系に全て描画する必要があるため、描画毎に算出する必要がある。

そうだっけ?一番親のシーンフレームだけ指定すれば子の奴は全部勝手にやってくれなかったっけ?
これ全部プログラマ側がやるんだったらシーンフレームの概念の意味ねーんじゃね?


543:名前は開発中のものです。
10/03/05 02:27:53 qihDdtWW
>>542
まじか?SDKのサンプルとかcuttingEdgeのサンプルとかはこんな風にやってた気がするが・・・

544:名前は開発中のものです。
10/03/06 23:20:50 p//cZbeb
VB.netの方がC#よりさらに人口少なそう
つーかスレ自体ないし
VB6多少出来るんでVB.netで何か作ろうとしたらほとんど資料なし
潜在的な需要はけっこうありそうだけど

545:名前は開発中のものです。
10/03/06 23:38:45 yEhKrCJ6
VB.NET やるぐらいなら C# でやるわーな人が多いんじゃないのかね。

ちなみに資料は C# のあたってもほぼ問題ないよ。
少しだけ文法違うぐらいで出来ること一緒だし。

546:名前は開発中のものです。
10/03/06 23:39:28 KmGM80Om
そりゃ趣味でやるならC#よりもVBを選ぶ積極的な理由は何一つ存在しないからな

547:名前は開発中のものです。
10/03/06 23:42:45 p//cZbeb
>>545>>546
そうか、この際C#勉強するか
VB.netってゲーム製作関連書籍もほとんどないしな
MSはVBに関しては完全に失敗じゃね?

548:名前は開発中のものです。
10/03/06 23:46:10 Aa+tFW7Z
>>547
何を勘違いしてるんだ?
ゲームだけじゃないんだぞ?
プログラミング言語が必要なのは・・・


549:名前は開発中のものです。
10/03/06 23:54:50 KmGM80Om
C#4.0になってCOMとの相互運用の強化や動的型のサポートなどが行われたから
従来VBの方がやりやすいと言われてた分野は完全に無くなったね
でもだからってVBが消えるとは思えない

550:名前は開発中のものです。
10/03/07 01:44:56 CQZl//k1
つまり、好きなほうを選べと。
俺はC#だけど会社だとVBなんだよね。

551:名前は開発中のものです。
10/03/08 00:30:07 Sp1XDJTx
4月ぐらいになって暇だったらC#+MDXでゲームでも作ってみよかと思ってます
日記ついでに自分用アンカーおいときますね >>266 >>298 >>300

552:名前は開発中のものです。
10/03/09 22:38:47 TGZXNQHz
>>509
のWikiにSlimDX関連を少し追加してみました。
盛り上がるといいですねぇ

553:509
10/03/10 00:00:49 qKagxpV9
>>552
乙ー。何気なくスキンメッシュの情報があるWikiって珍しい気がする。

554:名前は開発中のものです。
10/03/10 10:01:29 KVAxguOd
ラッパーよりもゲームエンジンが欲しい・・・
ソース上でテクスチャ貼るとかポリゴン弄るとか低層のことしないから
ポリゴンデータ集めてきて初期配置するまではiniファイルとか設定メニューで済ませ
ソースはDirectX関連は計算のみ使う状態で始めたい

555:名前は開発中のものです。
10/03/10 14:11:47 657TieNU
そういうのを自分で作ればいいんじゃね?
そして公開したらみんな幸せ

556:名前は開発中のものです。
10/03/10 14:37:34 ERiS5YJG
というか探せばいくらでもありそうではあるよね。
XNAベースのそういうの前どっかで見かけたような。

557:名前は開発中のものです。
10/03/10 15:55:00 ftvCaui6
>>554
>>422で言えばOrge.net、Irrlicht .NET、DXライブラリもゲームエンジンだと思うけど?

CodePlexにもいくつかあるので探せば希望のものが見つかるかもしれない。
URLリンク(www.codeplex.com)

あと使ったことないけどUnityがC#で開発できたはず。

558:名前は開発中のものです。
10/03/10 22:04:27 Na9+T2Fv
>>509
DXライブラリの情報もほしい

559:名前は開発中のものです。
10/03/10 22:07:52 7ZOlEtnk
ゲームエンジンとフレームワーク、ライブラリはそれぞれ別の物。

560:509
10/03/10 23:40:47 qKagxpV9
>>558
DXライブラリは、C++で無理しようとした頃少しだけ世話になったこともあるので、個人的には推したいねぇ。
今は全然覚えてないけど、C#版とかあるし誰かが記事を書いてくれると信じよう。
メニュー項目追加しときます。

>>559
自分の認識では
ライブラリ→ある目的に沿ったクラスファイルや関数群
フレームワーク→特定の操作や手順強要する、特定のアプリを作るのに特化したシステムのこと。
ゲームエンジン→ゲーム作るのに必要な、フレームワークとライブラリの中間の何か。

561:名前は開発中のものです。
10/03/10 23:41:58 /6lrxuI1
XNAはシェーダ1.1縛りがあるから無理

562:名前は開発中のものです。
10/03/10 23:56:44 T4bKJA7B
意味もわからずに縛りとか言っちゃう厨房降臨

563:名前は開発中のものです。
10/03/11 01:45:47 kSgcfpuM
>>560
今VB.NETを勉強中で作品1つ作ったらC#に移行しようとしてる最中なのでそれはありがたい

564:名前は開発中のものです。
10/03/11 03:00:36 5SRNEDc3
>>554
よし、ゲームエンジンツクールを今から開発するんだ!

565:名前は開発中のものです。
10/03/11 10:01:30 h8CMp/En
例えば戦車のゲーム作るとして
戦車のポリゴンデータは
本体
 ├キャタピラ1
 ├キャタピラ2
 ├キャタピラ3
 └砲塔
  ├砲身1
  ├砲身2
  └砲身3
キャタピラと砲身はアニメパターンで切り替え
で、
戦車Mesh = new NonIndexedSkinnedMesh(Device, "戦車.x");
ここから
砲塔角度を与えれば、勝手に戦車Meshが修正されて返ってくる関数って
自分で用意しなきゃならんですか?
それとも
本体
 ├キャタピラ1
 ├キャタピラ2
 └キャタピラ3
砲塔
 ├砲身1
 ├砲身2
 └砲身3
って分けて自分で回転軸指定してやった方がいいかな




566:名前は開発中のものです。
10/03/11 11:14:51 7yJ8PJo2
>>565
例えば歩くアニメーションが全体で100フレーム分あったとしたら、その中からポーズを任意のフレーム目の状態に出来るって代物だから。
やったこと無いけど今回だと後者のほうが楽じゃね?砲身とかなら、自分で別々に計算して本体側の砲塔手前のFrameにくっつける感じで。

567:名前は開発中のものです。
10/03/11 15:23:30 mzSSqjK7
心が折れそうだ><;

568:名前は開発中のものです。
10/03/11 19:21:56 w7pwXHLD
>>554
要はUnrealとかUnityのようにレベルエディタが付いてるような物のこと?

569:名前は開発中のものです。
10/03/12 08:53:21 EN4bAdNZ
Unityって何ぞや?ってwikiのチュートリアル見たらブラウザ固まった・・・・
C#使えて一部無償か・・・・

570:509
10/03/12 19:17:28 JKkhUh5c
要望があったので、ファイルのアップロードを許可しました。多分。

571:名前は開発中のものです。
10/03/12 23:35:43 R35iyj42
>>570
乙 特に協力できるような知識がなくてすまない

572:名前は開発中のものです。
10/03/13 00:56:15 kMFW1dn8
>>565
普通、後者だろ?
砲塔回転させる方が楽だろ。
あと砲身も上下させるなら、それも分割して砲身だけ違う軸で回転させて。

573:名前は開発中のものです。
10/03/13 01:08:02 kiM6cwSv
>>509>>511
SlimDXページへの編集制限回数を超えてしまいました。
調整をお願いしますー


574:名前は開発中のものです。
10/03/13 02:17:21 AXVFtfJe
>>572
でも普通のモデラーは全部1ファイルに階層化して吐き出してるし
モーションソフトではボーンで動かしてるよね?

575:509
10/03/13 11:55:37 nfJqoL1x
>>573
マジカー
とりあえず変えますた。ウチも記事を書かねば。

>>574
モデラーにもよるけど、メタセコ内でオブジェクト分けて別途ボーン入れソフト使った場合、
デバッグで確認したが、メッシュの対応がおおよそ一致してる。

ReplacedName0→ReplacedName1→base(腰)→upperLeg
upperLeg→lowerLeg()→foot
↓upperLegR(upperLegと兄弟関係)→lowerLegR→foot

だから、
1、モデラ等でボーン入れるときはオブジェクトを独立させて砲身のボーンは他のメッシュに影響しないようにして、発射アニメーションがあるなら作っとく。
2、プログラム上で砲身を回転させたかったら、砲身のメッシュを持つFrameのオフセットをいじくる。(ローカル軸回転とか利用して)。で別途保持して、描画の直前にそれを元にワールド変換行列を算出。
相対座標の強みは砲身自体を持つフレームの行列だけいじくれば、ちゃんと動いてくれるところだと思うよ。試したことないけど。

576:名前は開発中のものです。
10/03/18 21:11:21 1c4y1/VI
>>509にてSlimDX関連サンプルを載せている者ですが、もし何かリクエストや、
サンプルでもっと説明して欲しいことがありましたらどうぞ。
できる範囲で対応します。

あまり複雑だと無理かもしれませんが・・・。

577:509
10/03/19 15:41:45 71r/xMbH
>>576
お疲れ様です。SlimDX版Fontを元に文字テクスチャを生成する、があると需要があるかと。
Mdxの方は今からあげようと思います。

578:riorio ◆rio2xMQlrQ
10/03/21 00:19:12 PSZ0VC/R
こんばんにゃー
求人ですw

鉄道経営系ゲーム製作スレッド
スレリンク(gamedev板)l50

のほうでFreeTrainEX Avのプロジェクトリーダーやってるものです。
FreeTrainEX Avの現バージョンはdx7vb.dll使ってるものでVista以降で単独では
動かないのですが。
昨年秋に「dll使わないDirectXラッパー書いてみたぜ」ってソース落として行って
くれた方がおられたので。そのラッパー取り込んでみたのですが、C++/CLIで書か
れてて自分はどうにも読解できなくて。今困ってます。
C#とC++/CLI両方書けて興味ある方、助けてください。

579:578
10/03/21 15:57:16 PSZ0VC/R
たびたびどうもです。
さきほど出張してきていただいたかたのおかげでかなりのバグがとれたのですが。

まだDirectMusic使ったwavファイル効果音を鳴らす部分がおかしくて。
連続して発音してるといいんだけど一度音が止まると次の発音がなくなってしまうのです。
DirectMusicもわからんしー……
本体C#でWrapperがC++で、それをExpressEditionでビルドしてるんで。
C++でDLLだけビルドしておいて、できたものを参照してC#でソリューションしてます。

前の人がC++のWrapperあっちこっちにDebug::Printを仕込んでくれてるのですが、これって
Standard以上の統合環境じゃないと見れませんよねぇ。

Debug::Printにかわるものをなんか仕込むか。

580:名前は開発中のものです。
10/03/21 16:10:42 Txt32X4Z
APIのOutputDebugStringを呼ぶようにすれば
これを表示するツールはいくつかフリーでもあるよ

581:名前は開発中のものです。
10/03/21 16:12:45 Txt32X4Z
ってそのDebug::Printが最終的にOutputDebugStringを呼んでいるなら
そのツール使えるかもね

582:名前は開発中のものです。
10/03/21 16:25:00 aViYKpOi
>>579
System::Diagnostics::Debug::Print なら

ツール->オプション->デバッグ->全般 の
出力ウィンドウの文字をすべてイミディエイトウィンドウにリダイレクトする

にチェック入れたら見えるはず。


583:名前は開発中のものです。
10/03/21 17:04:00 PSZ0VC/R
>>582
C++ Express Editionでそのオプションにチェックを入れてDLLをビルドして、
そのDLLをC# Express Editionで参照してソリューションビルドしてデバッグモードで
動かしたけど、C# Express Editionのイミディエイトウィンドウには何も表示されな
かったのです。

C++で書かれてるのはWrapper部分だけで、Windowアプリ本体はC#なのです。
で、Express Editionでビルドしてる、と。

しょうがないので、std::ofstream ofs;でテキストファイルひらいて追記していく
文をつらつら書き並べてました。さっきまで。


バグのほうは、スレに来ていただいた方に解決していただきました。

584:名前は開発中のものです。
10/03/21 17:14:02 aViYKpOi
>>583
チェックを入れるのは C# Express Edition のほうなのですが、それでも表示されないですか?

585:名前は開発中のものです。
10/03/21 17:18:23 PSZ0VC/R
ぉお!?すみません、C# Express Editionにチェック入ってなかったです。
チェック入れたらC++で書いたWrapper DLLのほうもちゃんとイミディエイトに
出てきました。
とほーー

いや、そのDEBUG:::Printしてたパラメータは結局バグとは関係なかったんですけどね……

あーー、でもなんとか形になったかな。
ありがとうございました。

586:名前は開発中のものです。
10/03/21 20:43:46 PSZ0VC/R
引き続きお世話になっております。

本体はなれたどーでもいいところなので全然急がないしなんだったらまるごと
つぶしちゃってなかったことにもできる部分なんだけど。
またひっかかってるのでヒマなかた見ていただけたら。
スレリンク(gamedev板:837番)

単純に、ラッパーがコーディングされてるのに使ってあげないともったいないじゃん、
というだけの発想です。

IBasicAudio::put_Volumeのフィルタ指定ではまってるというところ。

587:riorio ◆rio2xMQlrQ
10/03/22 16:55:02 NRHTgvKr
お世話になってます。FreeTrainEX Avの開発リーダーです。
最新アルファ版を公開はじめました。
スレリンク(gamedev板:856番)

こちら、.NET2.0とDirectX9.0cが入っていればWindows2000/XP/Vista/7で
動作するはずなのですが。
一部Windows Vistaで動作しないという報告も上がってきており、
私の家にVista動作環境がないこともあって確認が遅れております。
Vista/7で動作したしない、また動作しないのであれば原因がどこにあるのか、
対処法はどうなるのか、といったあたり、ゲーム開発に詳しい皆様の力を
お借りしたいと思います。
これがFixできれば晴れて「バージョン1.0」を名乗りたいと思っております。
最後の1マイルを人海作戦で行かせてください。

鉄道ゲーム製作スレのほうは、もともとFreeTrainやるためにVistaにdx7vb.dll
入れて旧版を動かしてるような人が多く、また動く動かないはわかるけど
原因切り分け報告までのスキルはないという人も多いため、プレーンなOS
環境、あるいはいろいろ動作環境を切り替えられるリソースをお持ちであろう
みなさま、ぜひともお力をお願いします。

588:名前は開発中のものです。
10/03/22 19:46:17 NRHTgvKr
ちょっとDirectX関係のSDKと、動作環境(ビルド環境ではなく)で教えてください。

DirectX SDK August 2007を最後に廃止されたという、DirectMusic関連のヘッダファイル
dmusici.hを組み込んでいるのですが。あ、FreeTrainEX Avです。おさわがせしております。

このdmusici.hを使ってビルドしたバイナリは、実行するときにもこのSDKを要求したり
しますか?
「XPだけど動かない」「Vista/7で動かない」という話がわきおこってるのです。


FreeTrainEX AvはもとからDirectX9.0cと.NET2.0が動作必須だったのですが。
以前はdx7vb.dllを使ってたのでdmusici.hは使ってなかったんです。
今回のバージョンから、dx7vb.dllを外す代わりにじまえでC++ラッパー書いてという
ことになって、そのラッパーがdmusici.hを利用しているのです。

XPにおいて、dx7vb.dll最終版の0.8.1は動作するが、解消版の0.9.0.*は動作しない、
というのの理由を探しています。

589:名前は開発中のものです。
10/03/23 00:35:02 J3ocefBD
svnファイル同梱するなよクソ野郎

590:名前は開発中のものです。
10/03/23 00:37:24 Ty8DZbGt
あ、それは気になってた。

どうかこのクソ野郎めに、ワンタッチでsvnファイルを除去できる魔法をおさずけください。

591:名前は開発中のものです。
10/03/23 01:10:54 J3ocefBD
死んどけ

592:名前は開発中のものです。
10/03/23 01:52:04 8kehcNOI
>>589
協力もしないのに文句だけはいっちょ前の糞野郎は黙っておけよw

593:名前は開発中のものです。
10/03/23 06:38:00 xiyxYgjD

なにこのバカ

594:名前は開発中のものです。
10/03/23 07:44:27 8kehcNOI
↑なにこの糞野郎

595:名前は開発中のものです。
10/03/23 10:14:11 SU4tIHRV
>>590
チェックアウトじゃなくてエクスポートしたやつをアーカイブすればいい

596:名前は開発中のものです。
10/03/23 10:21:26 Ty8DZbGt
おーーーーー

言われて、えくすぽーとでぐぐってみた
URLリンク(tortoisesvn.net)

なるほど!これは便利そうだ。
さんくす

597:名前は開発中のものです。
10/03/23 16:57:18 Ty8DZbGt
ところでゲーム中に流すBGMや効果音なんだけど。

今はDirectSound/DirectMusicで流してる。
でもこれ、dmucich.hが必要で最新DirectX SDKには入ってなく、旧版を探して
もってこないとビルドできないし。
いつまでもこれでいいのかなって、ふと気になった。
いいならいいで、ビルドする人のちょっとした負担になるだけで実行環境には
影響ないからほっとくし。
もし将来的に実行環境がなくなるようなことがあると困るなと思った。

598:名前は開発中のものです。
10/03/24 12:21:47 XbqxS38/
MIDI使ってるうちは移行は厳しいかもね

599:riorio ◆rio2xMQlrQ
10/03/25 02:21:01 6G8G5HnF
たびたびお世話になります。
FreeTrain EX Av Projectのriorioです。

このたび正式版1.0をリリースし、それとともに次期版のベータ2.0.1.0も配布開始しました。
URLリンク(sourceforge.jp)

1.0は問題ではなく、2.0.1.0のほうでご協力をお願いします。
ver2から、新たにC++/CLIで記述されたDirectXラッパーを作成して使用するようにしたの
ですが、どうもビルドに問題があるのかソースに問題があるのか、原因いまだ不明なのです
が、本来
・DirectX9.0c
・.NET 2.0
の2つさえ入っていれば動作するはずのFreeTrainEX Av本体が、単独動作せず起動すぐ
クラッシュということになっています。

いろいろ試してみて、Visual C++ 2008がExpress Editionでいいのでインストールされて
いたら動作する、というところまでは突き止めました。
私自身もExpress Editonで開発しているのでC++部分とC#部分の一発ソリューションという
のはできず、まずC++のDirectXWrapper.dllのみをC++でビルドし、そのあとでC#でDLLを
参照してビルドして完成という手順を踏んでいます。
この手順の中になにか不備があるのではと考えられるのですが、わかりません。

SourceForge.jpのほうには2.0.1.0のソースをSVNでコミットしてあります。
ソースから読んでわかる方、ぜひ解明・解決していただけないでしょうか。

600:名前は開発中のものです。
10/03/25 02:51:34 ThcdbcJE
前から思ってたけど、完全にスレチだと思うのだが...
つうか力量不足だからってこのスレに投げられてもなぁと。

601:名前は開発中のものです。
10/03/25 02:56:15 19sCPsZw
>>599
思いつきだからなんにも役に立たないレスだけど
C++2005とC++2008のRedistributableが関係じゃない
C++2005.C++2008のEEをインストールするとこれもインストールされるし
VBとC#にはないけどC++だけにはあるからそうなんじゃないかと思った

602:名前は開発中のものです。
10/03/25 11:23:35 7Uo3+URx
さらにC#から離れてくると本格的にスレチだな
ただC#とvisualstdio周りは関係が根深いから、そこら辺の話題がかすってれば個人的にはセーフだと思う

どちらかというと、>>riorioさんの何でも聞いてる感のニュアンスがしてきてるからだろう、問題は。
うざいので少し自重しろし、と思うところもあるが、技術的なレスだし誘導先がないなら多少のスレ出張は互いに有益だろう。

603:名前は開発中のものです。
10/03/25 11:30:07 6G8G5HnF
すみません。
C++パートをReleaseビルドすれば解決、だったそうです。
罠でした orz

604:名前は開発中のものです。
10/03/25 22:46:30 JbalM5RN
とても有益な流れでしたね

605:名前は開発中のものです。
10/03/26 08:03:43 ssC1XAIg
rorioさんじゃないことに今気付いた。ごめん。

606:名前は開発中のものです。
10/03/26 11:52:11 HhxIa7cp
どうせそんなに細かい制御しないんだろうから
アンマネージC++でDirect3Dのラッパー書いてDllImportすればいいのに
C++/CLIが混ざると後々いろいろと邪魔になるんだよな

607:名前は開発中のものです。
10/03/28 12:34:22 rg9jPJ4K
質問です
csharpgamedev@wikiにあるSlimDXのサンプルフレームワークを使わないプロジェクトで
IdleでRender()呼び出してますが、この場合マウスをぐりぐり動かしたりしてると
Idle呼ばれなくて描画されなくなったりしませんか?
試してないんで適当にいってますが、参考に見ていて気になったので・・・

608:名前は開発中のものです。
10/03/28 13:28:20 6NV7kv+b
>>607
マウスイベントはIdleイベントが発生できなくなるほど頻繁には発生しないので、大丈夫です。
もちろん、マウスイベント内で非常に重たい処理を行うと影響が出ますが、それは
Idleイベントでなくても同じですので。

609:名前は開発中のものです。
10/03/28 22:06:36 rg9jPJ4K
レスありがとうございます。Vista + VC#2005EEでテストしてみました

class Program内
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 frm = new Form1() ;
Application.Idle += frm.IdleProc ;
Application.Run(frm) ;
}

class Form1内
int n_idle = 0 ;
public void IdleProc(Object sender, EventArgs e)
{
this.Text = this.n_idle.ToString() ;
this.n_idle ++ ;
}

ウインドウのタイトルバーにカウント表示するプログラムです。
実行してウインドウ上でマウスを動かすと、自分の予想に反して
カウントが早くなります。

Idleが連続で2回以上くるとウェイトが入るような処理でも入ってるのでしょうか?

610:名前は開発中のものです。
10/03/28 23:04:09 6NV7kv+b
>>609
私も確実なことは言えないのですが、IdleイベントはMSDNに記載の通り
"アプリケーションが処理を完了し、アイドル状態に入ろうとすると発生します。"

つまり、アプリケーションが何かしら処理をし始め、完了しないとIdleイベントは発生しません。
逆に言うと、ずっとアイドル状態だとIdleイベントは発生しません。
空のフォームだと、何も処理が発生しませんので、なかなかIdleイベントは発生しないことになります。
つまり、アイドル状態が長いということです。

この状態でマウスを動かしたり、フォームの上に別のフォームを置いたりすると
マウスイベントやPaintイベントが発生し、アプリケーションが処理を開始し、
完了するとIdleイベントが呼ばれます。

そのため609さんのプログラムでは、何もしないときよりもマウスを動かしたほうが早く
カウントが進むのだと思います。

多分^^;


611:名前は開発中のものです。
10/03/28 23:31:39 AbGdjg2Q
横から質問ですが、それだとゲームループとして不完全だと思うのですが・・・
実際にゲームが出来上がれば問題ない動きになるんですか?

ゲームによっては、入力がゲームパッドからのみということもあるでしょうし
(ゲームパッドからの入力がフォームイベントを発生させるとは考えづらいんですが)
どうにも上手く納得できないんですが・・・

612:名前は開発中のものです。
10/03/28 23:33:10 +JNifJsR
実際XNAのループもApplication.Idle使ってるからなあ

613:609
10/03/28 23:44:25 rg9jPJ4K
>つまり、アプリケーションが何かしら処理をし始め、
>完了しないとIdleイベントは発生しません。
>逆に言うと、ずっとアイドル状態だとIdleイベントは発生しません。
.NetFrameworkでのIdleの仕様がよくわかっていませんでした。
MFCではIdleはアイドル状態の間、何回でもイベントを発生されることもできるので
勘違いしていました。説明ありがとうございました。

この辺(フレーム更新)の処理について調べるきっかけになったのは
自分の作ったテストプログラムのFPSが思ったよりも少なかったからです、
試しに描画を減らしてみてもFPSが変わらないため、他人のプログラムを
参考にしてみようと眺めていました。

FPSが変わらなかった結果からいうとPresentParameters.PresentationInterval
の設定値でした。

つづく

614:名前は開発中のものです。
10/03/29 00:10:45 H0yeDB0b
以下は日記ですので興味のある人だけどうぞ

class Program内

static void Main()
{
 Application.EnableVisualStyles();
 Application.SetCompatibleTextRenderingDefault(false);
 using(MainForm frm = new MainForm()){
  frm.Show() ;
  while(frm.Created){
   frm.Render() ;   // DirectXでの描画
   Application.DoEvents() ;
  }
 }
}
いわゆるブン回しです。擬似コードです、このままで動くかわかりません。
描画を削ってもFPS上がらないのはおかしいです。
Idleを使った>>609を試してみてIdleでウエイトかかってるのかと
思ったのですが、そうではありませんでした。
さらにつづく

615:名前は開発中のものです。
10/03/29 00:17:56 H0yeDB0b
frm.Render()呼ばなければブン回ります。
つまり、frm.Render()内でウエイトがかかっています。
Device.Clear(), Device.BeginScene(), Device.EndScene(), Device.Present()
だけでもウエイトかかります。
おそらくDevice.Present()がウエイトかけてるんだと思い、
どっかで設定できるのではないかとヘルプで探しました。
それで見つけたのが
PresentParameters.PresentationInterval
PresentParameters.FullScreenRefreshRateInHz
です。
Device生成するときにわたすPresentParametersに
presentParams.PresentationInterval = PresentInterval.Immediate ;
しとくとウエイトかかりません。
デフォルトではリフレッシュ レートと同期するようです。
PresentParameters.FullScreenRefreshRateInHzでフレームレートが
指定できるようですがフルスクリーンのみ指定できるらしいです
ウインドウモードだとフレームレートが指定できないのが微妙ですね。
どれぐらいの精度があるかは調べてません。

以上


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5238日前に更新/255 KB
担当:undef