• ベストアンサー

APIとDirectXって何?

noname#245945の回答

  • ベストアンサー
noname#245945
noname#245945
回答No.3

こんにちは。 現在VisualStudio.NETをお使いであればDirectXは無償で開発環境を整えることができます。MicrosoftのウェブサイトからDirectX SDKをダウンロードしてインストールするだけです。あとは、プロジェクト作成時にヘッダファイルとライブラリの場所を設定するとVisualStudioからDirectXを使うことができるようになります。 APIとおっしゃっているのはWin32APIのことだと思われます。 Win32APIとはWindows独自の機能を開発者に提供するためのライブラリ群です。C言語の標準ライブラリと違うところはそのプラットホーム(Windows)上でしか使えないところです。例えばunistd.hやwindows.hにある関数はOSに依存します。よく使うSleep()はWindows上でしか使えないのです。UNIX上ではusleep()という関数を使います。 Win32APIは古いAPIなのですがベーシカルな部分を担当するAPIなのでほとんど変わっていません。よってあまり使い良いAPIとは言えません。例えば、ウィンドウを一つ表示するだけで30行もコードを書かなければならないのです。こういうことがあってOpenGLに対するGLUTのようなパッキングライブラリが多数ありますので、それらを使うと簡単にWin32APIを使えるようになります。 それに対してDirectXは優れたマルチメディア機能を開発者に提供するAPIです。各種アクセラレータを得に意識することなく利用することができるいわば緩衝材のようなものです。DirectXを使用してプログラミングをするときの注意点はDirectXのバージョンです。DirectXはアクセラレータの最新の機能に対応するために拡張を繰り返してきました。ゆえにバージョンによって関数の引数の数が違ったり名前が変わっていたりします。これを追いかけるのはやはり大変です。そこで、DirectXについてもパッケージライブラリが有志によっていくつも作られていますのでそれを利用するのも手です。 DirectXを使うとGDIに比べて描画は驚くほど高速化します。ぜひ使えるようになって、快適なプログラミングライフを!

dra2jp
質問者

お礼

DxLib.hをインクルードするプログラムを勉強する事にしました。とてもおもしろいです! ありがとうございました^^

関連するQ&A

  • プログラミング言語のAPI

    プログラミング言語の『API』にあたるものって具体的には何なのでしょうか? 例えば,C言語の場合『API』にあたるのはprintfやscanfなどの『標準関数全体』という解釈で合っているのでしょうか? また,ライブラリとAPIの関係についても教えていただけると嬉しいです. 読んだ本の中で少し触れられていたのですが,表現が曖昧であまりよく分かりませんでした・・・.

  • DirectXやWin32API (2Dゲーム作りたいです)

    こんにちは,私は2D(最終的には3D(メインは2D))のゲームを C++,DirectX を利用して作りたいと思っています.  今のところ,プログラミングはC,C++は入門+α, ゲーム関係は『ゲームプログラマになる前に覚えておきたい技術』という本の2D分野を読み実習しました.このゲームの本はDirectXやWin32APIなどを利用せずに,なにやらライブラリなどを用意していてそれを利用する形でした. -- 質問 --  DirectX や Win32API を全然わからないという このくらいの知識の人が本格的に2Dゲームをだんだんと作って行きたいのですが,このそれぞれに対してなにかよい参考書はないでしょうか,またその理由などもいただきたいです. --気になること-- 以下あいまいな知識の質問です. ・最近(DirectX7以降かな)はDirectXは2D描写と3D描写の機能が合体したと聞きました,DirectXの参考書は3Dのばかりで3Dも学べていいのですが,2Dゲームが作れるDirectXの内容も詳しく含んだ参考書が欲しいです. ・Win32APIはゲーム製作にどう影響してくるんですか?まだよくわかっていません.ゲームウィンドウなどを表示するのは必用そうですが,, サウンドやグラフィックを読み込むのに必須なのだろうか, でもそれはDirectXでもできませんか?関係がよくわかりません. --まとめ-- できれば 気になること の回答など簡単にしていただきたいです.  長文ここまで読んでいただきありがとうございました. よろしくお願いします.

  • C,C++,Win32APIだけでSFCレベルのゲーム

    この言語だけでSFCレベルのゲームは作れるのでしょうか? (具体的に言うとスーパーマリオワールドの1ステージくらい) それとも、やはりDirectXやOpenGLなどを使わないと無理なのでしょうか? 教えていただけると有難いです。 またDirectXを使う場合、Win32APIの知識はどれくらいあれば足りますか?よく参考書とかに載っているテトリスを作れるくらいで足りるでしょうか?

  • DirectXとOpenGLはどちらが動作が軽い?

    環境:Visual Studio 2005 WinXP Win32 C/C++ Windowsプログラミングを一通り勉強したので、 次は3Dプログラミングに挑戦したいと思っています。 DirectXとOpenGL、どちらを学習しようか決めかねています。 最終的にはとても軽く動作する3Dゲームを作りたいです。 そこで、たとえばまったく同じ動作をする DirectXの3Dゲームと、OpenGLの3Dゲームがある場合、 どちらのほうが動作が軽いのでしょうか。 ここでいう「動作が軽い」というのは、 そのゲームが使用するメモリ量、CPU量などが低く動作が快適なものです。 メールソフトやブラウザを同時に起動しても気にならない ほど軽いものが作りたいと思っています。

  • C言語でWin32API

    C言語を使ってWin32APIを呼び出すような、Windowsプログラミングを始めたいんですが、何かよい本やサイトはご存知ないでしょうか。 Visual C++6.0はあるんで、それを使えばいいと思うんです。 C言語はわかるんですが、Windowsプログラミングに関する知識はほとんどないので、ごく基本的なことから知りたいんです。 WinMain関数というのを書くようなんですが、その書き方すら知りません。  スケルトン(出来れば、それよりもっと基本的なこと)から書いてあるようなものです。

  • DirectX用のライブラリを探しています

    DirectX用のライブラリを探しています プログラム関係の学校に行っているのですが、学校の作品制作でオリジナルのPCゲームを作ることになりました。ジャンルは弾幕のシューティングで、言語は調べたところゲーム制作はDirectXとC/C++が良いとのことでしたので「DirectXとC/C++」を使う予定です。 ですがDirectXを使うには少々問題がありまして、DirectXというものを一切触ったことがありませんので現在の知識では当然画像の描画すらできないんです。 さすがにそれではマズイのでDirectX用のライブラリを使おうかと思っています。そこで、DirectX用のライブラリでお勧めのものがあれば教えていただけたらなと思いまして、書き込みをさせていただきました。(実際に色々と試したいところなんですがそれほど時間も無いもので……) もし「こんなものがいいよ」というものをご存知であれば是非とも参考にさせていただきたいのでアドバイスをいただけると幸いです。よろしくお願い致します。 補足になりますが・・・ 作品制作ではライブラリに規制があり、ツクール系やHSPみたいな簡単に作れるものはNGという制限があります。 描画には2Dと3Dの両方を使います。 DirectXのバージョンはできればDirectX9…DirectX8くらいであると有難いです。 なにぶん勉強中のもので不足がございましたらその都度ご返信させていただきます。よろしくお願いします。

  • directxとプログラミング言語

    今、Visual Studio 2008 Expressでdirectxを勉強しているのですが、ふと思いました。 (1)最近のwindowsPCでのオンラインゲームやxboxやps3はdirectxを使ってプログラムしているのでしょうか? (2)xboxはC#でプログラムしていると分かったのですが、PS3と最近のwindowsPCでのオンラインゲームはどんなプログラミング言語でプログラムをしているのでしょうか? よろしくお願いします。

  • C++ API 全般 APIの概要は

    独学にてプログラミングを勉強しているのですが、いきづまってしまったので質問お願いします。 ※Visual Studio 2008 Express Editionsを使用しています。 まだプログラミングに関しての勉強を始めて1ヶ月程度で、最初はVB.NETから始めて、最近C++に乗り換えました。 趣味の範囲でのゲームを作ろうと思っていて、C++とDirectXでの開発を予定しています。(しかし、最終的にはゲームに限らずプログラミングの技術と知識を習得することを目標にしています。)(DirectXに関してはまだ手をつけていません。) まったく1からのスタートで、現在win32コンソールアプリケーションにてコードの勉強をしているところです。 勉強に使っている参考文献は ・VisualC++.NET逆引き大全500の極意 ・ゲームプログラマになる前に覚えて起きたい技術(これを買うには早すぎたようです…。第一章も半分くらいしか理解できません…。) サイトは ・主に「0からのゲームプログラミング」というサイトです。 http://www.plustarnet.com/aspil/Programming/ 本題の質問ですが、APIというものがいまいち理解できません。 (1)上記のような目的で使用するAPIは、標準 Windows APIというものでいいのでしょうか? (2)win32コンソールアプリケーションでは実行できるのに、win32プロジェクトでは実行できないのはなぜでしょうか? #include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { MessageBox(NULL , TEXT("Hello Wold!") , TEXT("メッセージボックス") , MB_OK); return 0; } (3)http://www.plustarnet.com/aspil/Programming/CConsole.htm このURLのコンソールAPIというのは、一般的に使われているものでしょうか?それともこのサイトのオリジナルのものでしょうか?win32コンソールアプリケーションでAPIを使うには、このURLのCConsoleクラスとうものをインクルードしないといけないのでしょうか?#include<windows.h>と宣言することによって気軽に使いたいものを使うことはできないのでしょうか? (4)#include<windows.h> とした場合、作るものが「win32コンソールアプリケーション」だったり「win32プロジェクト」だったり「windowsフォームアプリケーション」だったりで、使用方法などがまったく別になってしまうのでしょうか? (5)そもそも、上記の目的の場合APIを勉強する必要はあるでしょうか? (6)勉強をしたほうが後々に役立つ場合、どのAPIを勉強するのがいいのでしょうか?(APIといっても様々なものがあるんだなと思い質問しました。もし勘違いでAPIというものは一つしかないとしたらすみません。) なぜAPIに関してかというと、単純に上記のサイトで言語編の一番上から順に見ていったからです。 初心者すぎて質問が的外れかもしれませんがよろしくお願いします。

  • VC++でwin32APIを作っているのですが・・・

    こんにちは。私はwin32APIを勉強しているc言語初心者です。 私はMicrosoft Visual C++ 2008を使ってc言語のwin32APIをプログラミングしているのですが、独学でやっているので物凄く邪道なwin32APIプログラミングをしているような気がするのです。 ・c言語のプログラムを書いて、C++のwin32APIプロジェクトとしてビルドする。 ・ヘッダーファイルにwin32API関数がなかったので、自分のwindowOSからwin32API関数を探し出してVC++2008のなかのincludeフォルダ内にコピー&ペーストして使えるようにした。 これって邪道ですか?一応何の問題もなくwin32APIプログラムが作れるのですが、もっと正規なやり方があるでしょうか。回答よろしくお願いします。

  • DirectX

    ラトルズ株式会社から出版されている15歳からはじめるDirectX9ゲームプログラミングC++編の第5章の関数ライブラリを作成するところでサンプルのソースプログラムを全て打ち込んだにも拘わらずウィンドウが表示されなくて困っています。どなたか同じ本を持ってる方、もしくはDirectXに詳しい方が居ましたら教えてほしいのですがよろしいでしょうか。 開発環境はVisual C++ 2008 Express Edition、DirectX SDK(June 2007)でOSはVistaです。