プロが教える店舗&オフィスのセキュリティ対策術

環境はVisualStudioC#Expressを使っています。

今回動きのあるゲームを作ろうと思ったのですが、
最も基本となるFPSの処理と再描画の処理が理解できません・・・。

簡単な動きのないアプリケーションくらいしか作れない程度のレベルなので、かなり細かいところになると分からないと思います。
プログラムだけ書かれてもどこにそれを書けばよいのか分からないほどだと思います。FPSに関してはTimerコンポーネントを使ってみたのですがうまくいきません。


そこで教えていただきたいことは、
(1)簡単なFPSのサンプルプログラム(出来れば精度とかもあるのでみなさんが普通にゲームに使っているようなものを)

(2)簡単な再描画処理のサンプルプログラム

(3)C#ゲーム作成にオススメなサイトや本


出来ればVisualStudio前提の説明だとありがたいです。
とりあえず球が『60FPSで動き、画面も再描画される』ことが目的です。

A 回答 (4件)

>DirectXを使ったほうが簡単ならば是非使いたいと思います。


2Dと3Dのどちらもアクションやシューティングを作るならDirectXを活用しないと速度的に辛いですよ。SFCのドラクエ程度のゲームとかADVなら、WindowsAPIで作れないことは無いですけど。

それと球を画面に描画したいと書かれていたので、sha-girlさんはDirectXを紹介したのです。球はbmpで書かれているデータでしょうか?それとも単なる円の間違い?

FPSとDirectXの参考サイト↓
http://www.clks.jp/csg/
http://kadankai.hp.infoseek.co.jp/html/shiraishi …
http://www.atelier-blue.com/program/mdirectx/
    • good
    • 0
この回答へのお礼

なるほどー、プログラム内で記述した円と画像データの違いのことだったのですか。最初はただの円でFPS処理やらが出来ているか確認して、いずれはbmp画像を使うと思います。DirectXと聞いてややこしくなりそうだったので逃げてたのですが、やはり使ったほうがよさそうですね。
今C#に関しての参考書は「VisualC#2005 逆引き500の極意」しか持っていません。何かDirectXについてオススメの参考書があったら是非教えていただきたいです。

お礼日時:2007/09/09 17:10

ちょっと補足を。

忘れてました。「Managed DirectX 2.0」は「XNA Game Studio」に名前が変わったようです。Xbox360とWindowsのゲームがC#で共通のプラットフォームで開発できるようになりました。

数々の紹介。
http://www.saturn.dti.ne.jp/~npaka/xna/
http://ja.wikipedia.org/wiki/Microsoft_XNA
http://www.watch.impress.co.jp/game/docs/2006121 …

マイクロソフトの「XNA Game Studio」のページ。
http://www.microsoft.com/japan/msdn/xna/default. …
http://www.microsoft.com/japan/msdn/xna/XNA_deki …
http://xna-studio.jp/
「できるプログラミング XNA Game Studio Express」 という本は非売品でマイクロソフトに連絡すると入手できるようです。

つい数日前「XNA Game Studio 2.0」も発表されました。
http://pc.watch.impress.co.jp/docs/2007/0907/ms. …
http://pc.watch.impress.co.jp/docs/2007/0907/ms2 …

日本では扱いがまだ少ないですが、世界的には注目されているようです。
    • good
    • 0
この回答へのお礼

色々な参考サイトを教えていただきありがとうございました。
一般的にみなさんが行っている方法で簡単なゲームを作りたいのでとりあえずDirectXを用いてシューティングゲームくらい作れたらいいなと思います。

お礼日時:2007/09/10 18:36

C#のゲームの本は、この三種類です。


http://www.amazon.co.jp/s/ref=nb_ss_/250-1388869 …
で、2DのDirectXの本は皆無ですね。
とりあえず、WindowsAPIの「C#ゲームプログラミング」を読んでみてはどうでしょう?

C#で使えるDirectXは「Managed DirectX」と呼ばれていますが本が少ないのです。
洋書で良ければ下記の本もあります。評判も良いようです。
http://www.amazon.co.jp/Managed-Directx-Start-Gr …

本ではないですがマイクロソフトの「Managed DirectX」の使い方解説。
http://www.microsoft.com/japan/msdn/directx/japa …

普通のDirectXの本はc/c++で書かれていますのでC#に自分で置き換える必要があり、そのまま使えるソースコードではありません。その点さえ気にならなければ本は多数出ています。
    • good
    • 0
この回答へのお礼

C++でもC#でもどちらでもよかったのでC++のほうが多数本が出ているというのであればC++にします。C++の参考書は『猫でも分かるゲームプログラミング』だけは持っているのですがDirectXについては全く分かっていませんでした。DirectXについて勉強したほうがよさそうですね。

お礼日時:2007/09/09 19:20

FPSとはフレームパーセックの事だと思うが


そもそもDirectXのアプリは固定60フレームとかで動いてるわけではなく
可変で動いてます。
(一般的に前回表示してフレームからの経過時間ミリ秒で見ます)
Windowsの場合、優先順位の高い他のプロセスが高不可になれば
自アプリはCPUのリソースをとれなくなるので、そうなっています。
(最近の次世代機と呼ばれるものもそういう設計です。)

DirectX SDKをダウンロードすればサンプルソースが入っていますから
それを見てください。(C#用のサンプルソースも入っています。)
http://www.microsoft.com/japan/msdn/directx/down …

球ということは3Dですよね?
DirectXを使わず球の表示を60fpsの速度で描画をするのは
難しいと思いますし、オブジェクト数が増えれば60fpsを維持する事は出来なくなるでしょう。
それはDirectXを使っても同じことです。
    • good
    • 0
この回答へのお礼

すみません3Dではなく2Dでお願いします。

「DirectXを使う」ということがよく分かっていません。プログラム中で呼び出したりして使うのでしょうか。
DirectXを使ったほうが簡単ならば是非使いたいと思います。

お礼日時:2007/09/09 11:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!