• 追加された行はこの色です。
  • 削除された行はこの色です。
**基本操作 [#cc2752cb]
**gxLibとは? [#f540b650]
PSP向けに作成したゲームプログラム・ライブラリです。
Windows用 DirectX / OpenGL対応の2Dゲームライブラリです。標準でスプライト表示、コントローラー操作、圧縮音楽再生の他、動画再生にも対応しています。2Dゲームを作るのに適した機能に絞り覚える関数が少ないぶん習熟が速いのが特徴です。実際にWindows/PSP/STEAM/PS4/iOS/Android/で販売、運用された実績があり、スプライトベースのアクションゲームを作るのに必要な機能がそろっています。コツとしては7割位をライブラリでまかない、必要に応じてタイトルに合わせた改造を施すくらいがちょうどいい感じです。全方向にライブラリで対応するとできることも絞ることになるのと保守が大変なのでそういう仕様です。特に小難しいソースコードでもないので適宜改造してみてください。

***一時停止(F1) [#a44c878c]
システム自体を一時停止します。再開は再度F1キーを押してください
***LUAに対応 [#m3c93925]
LuaスクリプトからgxLibを通じた描画、サウンド再生、コントローラー入力が可能です。一部の機能が制限されますがC言語環境なしにプログラミングが可能です。シューティングゲーム「Visoriser」をLuaに移植したサンプルが付属していますので、C++版と比較しながら学習できます。

*** コマ送り(F3) [#g3ef09dc]
動作中であれば一時停止となります。停止中であればコマ送りを行いGameMain()を1度通過します。
***開発~リリースまで [#u6e2a4c0]
+[[gxLib/概要]]
+[[gxLib/設計]]
+[[gxLib/基礎]]
+[[gxLib/応用]]
+[[gxLib/API]]
+[[gxLib/リリース]]

*** パッドコンフィグ(F4) [#be4f3c46]
コントローラーの設定を行います。システムで使用するパッドと各種ボタンを割り当てます。ライブラリは4方向ハットスイッチ、12ボタン、アナログレバーx2のコントローラーを想定しています(詳細[[仮想ゲーム機]])ゲーム中のコンフィグ(射撃やジャンプボタンなど)は別途ゲーム内にコンフィグを設けてください。コントローラーは古いDirectInput形式の他、360コントローラー用のXINPUT形式に対応しています([[※1>#g77b4c44]])
***更新履歴 [#efd06a9d]
gxLib2018 [#ea3f0950]
[[test版20180505>http://garuru.co.jp/files/gxLib2018Archives/gxLib2018archive20180505.zip]]
・オフスクリーンレンダリングを見直し
・OpenGLに再対応

※操作はキーボードのみ受け付けます(コントローラーIDが変わった時に操作不能になるため)
[[test版20180325>http://garuru.co.jp/files/gxLib2018Archives/gxLib2018archive20180325.zip]]
・リバーブ、パンに対応
・Windowsストアに再対応
・2018年版としてDirectX11 / Windowsストア / Android向けに再設計

*** デバッグ表示(F8) [#ic9f61c7]
画面左上に現在のオブジェクトリクエスト数とサブリクエスト、及び1秒間に行われた描画処理の回数(FPS)を表示します。
以前のgxLib(DirectX9 / OpenGL ) [#a736f3e6]
-2017.10.22 3D立体視に対応
-2017.8.01 Androidに対応
-2017.05.30 ver2.2.2をリリース
-デバッグモードとPhotonによる通信対戦をサポートしました

*** ゲーム終了(ESC) [#ic9f61c7]
フルスクリーン時はWindow表示に戻ります。Window表示時にESCを押すとアプリを終了します。

*ライブラリ関数 [#l9327b38]
特徴としては他のライブラリに比べて関数に渡す引数が少し多いです。関数の数を少なくする分、1つの関数で覚えることが少し多くなりますが、できるだけ短く書けるようにオプション的なものにはデフォルト引数を設定してあります。複数の関数や構造体を覚えなくてもいいように1関数の仕組みを覚えて工夫できるようにするポリシーで策定されています。

**グラフィック系 [#c52e25ea]

 PutTriangle(
  x1,y1 ,u1,v1,
  x2,y2 ,u2,v2,
  x3,y3 ,u3,v3,
  tpg,  prio,atr,argb  );

|Sint32|x1,y1|1つめの頂点XY|時計回りで頂点を策定してください|
|Sint32|x2,y2|2つめの頂点XY||
|Sint32|x3,y3|3つめの頂点XY||
|Sint32|u1,v1|1つめの頂点が参照するテクセル座標XY||
|Sint32|u2,v2|2つめ||
|Sint32|u3,v3|3つめ||
|Sint32|tpg|テクスチャページ番号||
|Sint32|prio|プライオリティ||
|Uint32|atr|アトリビュート||
|Uint32|argb|アルファ付きRGB値||


 PutTriangle( 128,0, 0,0,  256,256,256,256,  0,256,0,256,  0, 100,ATR_DFLT , ARGB_DFLT )


(x1,y1)-(x2,y2)-(x3,y3)の頂点を持つテクスチャ付き三角形を描きます。
性質がPutSpriteと大きく異なるところがあり、通常指定された四角形はレンダリング時に拡大率や回転を考慮してその頂点座標を再計算されますが、PutTriangleでは再計算されずに与えられた頂点をそのまま描画します。これは隣接したポリゴン同士で頂点を共有している時に有効です。

たとえば背景用マップチップなど頂点を共有した四角形の集まりなどを描く時にPutSpriteで描くとレンダリング時に再計算された時、隣接した矩形の頂点が「ほぼ一致しているが同じではない」状況が発生し隣接したポリゴンとの間につなぎ目が見え隠れしてしまうことがあります。

PutTriangleでは再計算されないため、レンダリング時にも共有している頂点情報を維持してつなぎ目をなくすことが可能です。

**サウンド系 [#i564f6b5]
**コントローラー系 [#y5e766b2]
**ファイル入出力 [#x9cec649]
**動画 [#y8ca20f5]
**その他 [#na54e135]

**通信 / インターネット関連 [#j8533620]
現在ベータ運用


***補足 [#z21096ab]

*** ※1 Dinput / XInput形式 [#g77b4c44]
 gxLibでは古い形式の一般コントローラー(dInput)の他、360コントローラー(xInput)専用のソースコードを選んでサポートします。
 どちらがサポートされるかはコンパイル時にリンクされたソースにより決定されます。