Visual Studio 2010 Expressを使用、C言語にて囲碁のようなゲームを作っています。
今のところは○(丸)や△(△)などの記号を並べて描写しているのですが、そろそろGUIが欲しいと思っていた矢先にDXライブラリのことを知りました。
私が作りたいのは…DXライブラリで座標を入力 → 数値データに変換してC言語に送信 → C言語で処理し、数値をDXライブラリに送信 → 描写
という流れのソフトウェアです。既にCUIで動いている部分は弄りたくないので、C言語部分の改変は最小限にしたいのですが、
現在のC言語プログラムを95パーセント以上はコピペしただけの状態で動くのでしょうか?(その場合、C言語のmain関数と、DXのmainに相当する関数では、どちらがmainの役割を果たすのでしょうか)
それとも、DXライブラリはC言語に似ているだけという話で、移植の際には別のアプリケーションとして1から組みなおす必要があるのでしょうか??
DirextXライブラリとC言語の連携??
Re: DirextXライブラリとC言語の連携??
まず、DXライブラリとC言語の関係の解釈が間違っていると思われます。
DXライブラリは名前のとおりライブラリですから、
C言語→CUI
DXライブラリ→GUI
のように独立しているわけではなく、
C言語→CUI
C言語 + DXライブラリ→GUI
のようにC言語からDXライブラリを使うことで画像を表示したりできる、ということです。
連携も何も、DXライブラリ自体がC言語から使うために作られているわけです。
描画処理や入力処理などが抽象化されていてゲーム本体の処理と十分に分離されていれば、移植するのは比較的簡単でしょう。
DXライブラリは名前のとおりライブラリですから、
C言語→CUI
DXライブラリ→GUI
のように独立しているわけではなく、
C言語→CUI
C言語 + DXライブラリ→GUI
のようにC言語からDXライブラリを使うことで画像を表示したりできる、ということです。
連携も何も、DXライブラリ自体がC言語から使うために作られているわけです。
どのようなソースコードを書いているかによります。ぽわぽわら さんが書きました:既にCUIで動いている部分は弄りたくないので、C言語部分の改変は最小限にしたいのですが、
現在のC言語プログラムを95パーセント以上はコピペしただけの状態で動くのでしょうか?
描画処理や入力処理などが抽象化されていてゲーム本体の処理と十分に分離されていれば、移植するのは比較的簡単でしょう。
DXライブラリの(正確にはWin32アプリケーションの)main関数を使うことになります。ぽわぽわら さんが書きました: (その場合、C言語のmain関数と、DXのmainに相当する関数では、どちらがmainの役割を果たすのでしょうか)
-
ぽわぽわら
Re: DirextXライブラリとC言語の連携??
返信ありがとうございます。
DXプログラミングではmain関数がwinmainになっていたのでわかりにくく感じたのですが、この部分+αだけ書き換えたら移植することができました。
キーボードで入力すべき値は仮の数値で固定していますが、プログラムが最後まで動いた段階で出力される「isyoku:OK」の文字(ここだけ臨時で追加しました)が出力されました。 (インプットやアウトプットなどについてはこれから学びます)
どうもありがとうございました。
DXプログラミングではmain関数がwinmainになっていたのでわかりにくく感じたのですが、この部分+αだけ書き換えたら移植することができました。
キーボードで入力すべき値は仮の数値で固定していますが、プログラムが最後まで動いた段階で出力される「isyoku:OK」の文字(ここだけ臨時で追加しました)が出力されました。 (インプットやアウトプットなどについてはこれから学びます)
どうもありがとうございました。