SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送

BMLDLL.h

ソースコードを見る。

マクロ定義

#define BMLDLL_EXTERN   __declspec(dllimport)

関数

BMLDLL_EXTERN int WINAPI BML_Init (int bulletnum, double bulletspeed, int queuenum)
 初期化する。

BMLDLL_EXTERN int WINAPI BML_End ()
 終了処理をする。

BMLDLL_EXTERN int WINAPI BML_LoadXMLFile (const char *filename)
BMLDLL_EXTERN int WINAPI BML_LoadXMLFromMemory (const char *memory)
BMLDLL_EXTERN int WINAPI BML_CreateBullet (int handle, int x, int y, const char *work, size_t worksize, BML_GETPLAYER_DATA_CALLBACK callback)
 弾を生成する。

BMLDLL_EXTERN int WINAPI BML_Move ()
 今まで生成された弾を動かす。

BMLDLL_EXTERN int WINAPI BML_Update ()
 libBulletMLが行う1フレーム間の処理をする。

BMLDLL_EXTERN BML_BULLET_DATA
*WINAPI 
BML_GetSimpleBulletAddress ()
 シンプルな弾の格納先へのアドレスを取得

BMLDLL_EXTERN size_t WINAPI BML_GetSimpleBulletSentinel ()
 シンプルな弾への格納先のアドレスは添え字を通して何個までアクセス可能かどうかの数字を返す。

BMLDLL_EXTERN void WINAPI BML_DeleteSimpleBullet (BML_BULLET_DATA *)
 シンプルな弾を削除する。

BMLDLL_EXTERN BML_BULLET_DATA
*WINAPI 
BML_GetActionBulletAddress ()
 アクションな弾の格納先へのアドレスを取得

BMLDLL_EXTERN size_t WINAPI BML_GetActionBulletSentinel ()
 アクションな弾への格納先のアドレスは添え字を通して何個までアクセス可能かの数字を返す。

BMLDLL_EXTERN void WINAPI BML_DeleteActionBullet (BML_BULLET_DATA *)
 アクションな弾を削除する。

BMLDLL_EXTERN int WINAPI BML_GetBulletNum ()
 今の弾の数を取得する。

BMLDLL_EXTERN void WINAPI BML_SetBulletSpeed (double)
 標準的な弾のスピードを指定する。

BMLDLL_EXTERN double WINAPI BML_GetBulletSpeed ()
 標準的な弾のスピードを取得する

BMLDLL_EXTERN int WINAPI BML_GetFrame ()
 フレームを取得する。

BMLDLL_EXTERN void WINAPI BML_ClearFrame ()
 フレームを0に戻す。(すべての弾を削除してから呼び出すことを奨励する。

BMLDLL_EXTERN void WINAPI BML_IncrementFrame ()
 フレームを一つ上げる。

BMLDLL_EXTERN void WINAPI BML_HELPER_DrawBullet (int SimpleColor, int ActionColor, DRAWBOX_CALLBACK callback)
BMLDLL_EXTERN int WINAPI BML_HELPER_OpenBMLSelectDialog (char *buff, size_t buffsize, HWND wnd)
BMLDLL_EXTERN void WINAPI BML_HELPER_HitDelete (const RECT *your, BML_HIT_DELETE_ACTION Action, BML_CHECK_COLLISION_CALLBACK CheckCollision)
 当たり判定をとる。

BMLDLL_EXTERN const float
*WINAPI 
BML_HELPER_GetSinTable ()
 sin tableをいただく

BMLDLL_EXTERN size_t WINAPI BML_HELPER_SinTableSentinel ()
 sin tableはどこまでアクセスして良いかを得る。

BMLDLL_EXTERN double WINAPI BML_HELPER_AngleToCos (int angle)
 angle[in] ディグリーな角度

BMLDLL_EXTERN double WINAPI BML_HELPER_AngleToSin (int angle)
 angle[in] ディグリーな角度


説明

d金魚
から:
2004/2/2
バージョン:
0.02

TODO:
覚え書き:

ライセンス

今はBSD Licenceで公開しています。 法的な事に巻き込まれたくないのでこうしています。 BSD Licenceの項を参照してください。


メモ

libBulletMLをC言語でも使えるようにWrapしたもの。一応、速度的にも問題ないはず。
DLLなのでWin32のC言語コンパイラならすべてサポートしていると思うんだけどね。

謝辞

このDLLにはlibBulletMLを使用しています。
libBulletMLの製作者 shinichiro.h氏に感謝します。<(_ _)>

yaneSDK3rd、YTLのsmart_ptrを使用しました。
これにより、メモリリークが無くなりました。
yaneSDK3rdの製作者 やねうらお氏に感謝します。

明記事項

BulletMLはABA Games長 健太 氏が考案した表現です。
libBulletMLはEntangled Spaceで公開しているshinichiro.h氏によって作られた BulletMLで表現されたファイルを処理するためのライブラリです。
yaneSDK3rdはやねうらお氏によって作られたゲーム製作用ライブラリです。

BSD Licence

http://www.opensource.org/licenses/bsd-license.php

dkutil Copyright (c) 2003-, by d金魚 (メールアドレス) --ORGANIZATION-- = "dKingyo Utility Toolkit Project" All rights reserved.

libBulletML Copyright (c) shinichiro.h --ORGANIZATION-- = "" All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

・Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

・Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

・Neither the name of the --ORGANIZATION-- nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

関数

BMLDLL_EXTERN void WINAPI BML_ClearFrame  ) 
 

フレームを0に戻す。(すべての弾を削除してから呼び出すことを奨励する。

BMLDLL_EXTERN int WINAPI BML_CreateBullet int  handle,
int  x,
int  y,
const char *  work,
size_t  worksize,
BML_GETPLAYER_DATA_CALLBACK  callback
 

弾を生成する。

引数:
handle[in] 
x[in] 生成するX座標
y[in] 生成するY座標
work[in] work 挿入するタスクワークのデータ
worksize[in] workのサイズ。(taskworkのサイズ以内)
callback[in] 自機への当たり判定矩形を返すコールバック関数へのアドレス

BMLDLL_EXTERN void WINAPI BML_DeleteActionBullet BML_BULLET_DATA *   ) 
 

アクションな弾を削除する。

BMLDLL_EXTERN void WINAPI BML_DeleteSimpleBullet BML_BULLET_DATA *   ) 
 

シンプルな弾を削除する。

BMLDLL_EXTERN int WINAPI BML_End  ) 
 

終了処理をする。

BMLDLL_EXTERN BML_BULLET_DATA* WINAPI BML_GetActionBulletAddress  ) 
 

アクションな弾の格納先へのアドレスを取得

BMLDLL_EXTERN size_t WINAPI BML_GetActionBulletSentinel  ) 
 

アクションな弾への格納先のアドレスは添え字を通して何個までアクセス可能かの数字を返す。

BMLDLL_EXTERN int WINAPI BML_GetBulletNum  ) 
 

今の弾の数を取得する。

BMLDLL_EXTERN double WINAPI BML_GetBulletSpeed  ) 
 

標準的な弾のスピードを取得する

BMLDLL_EXTERN int WINAPI BML_GetFrame  ) 
 

フレームを取得する。

BMLDLL_EXTERN BML_BULLET_DATA* WINAPI BML_GetSimpleBulletAddress  ) 
 

シンプルな弾の格納先へのアドレスを取得

BMLDLL_EXTERN size_t WINAPI BML_GetSimpleBulletSentinel  ) 
 

シンプルな弾への格納先のアドレスは添え字を通して何個までアクセス可能かどうかの数字を返す。

BMLDLL_EXTERN double WINAPI BML_HELPER_AngleToCos int  angle  ) 
 

angle[in] ディグリーな角度

BMLDLL_EXTERN double WINAPI BML_HELPER_AngleToSin int  angle  ) 
 

angle[in] ディグリーな角度

BMLDLL_EXTERN const float* WINAPI BML_HELPER_GetSinTable  ) 
 

sin tableをいただく

BMLDLL_EXTERN void WINAPI BML_HELPER_HitDelete const RECT *  your,
BML_HIT_DELETE_ACTION  Action,
BML_CHECK_COLLISION_CALLBACK  CheckCollision
 

当たり判定をとる。

引数:
your[in] あなたのチェックしたい矩形
Action[in] もし、弾が指定した矩形に当たった時呼ばれるコールバック関数  NULLの場合はデフォルトのアクションが呼ばれる
CheckCollisoin[in] チェックする関数 NULLの場合はデフォルトのアクションが呼ばれる

BMLDLL_EXTERN size_t WINAPI BML_HELPER_SinTableSentinel  ) 
 

sin tableはどこまでアクセスして良いかを得る。

BMLDLL_EXTERN void WINAPI BML_IncrementFrame  ) 
 

フレームを一つ上げる。

BMLDLL_EXTERN int WINAPI BML_Init int  bulletnum,
double  bulletspeed,
int  queuenum
 

初期化する。

引数:
bulletnum[in] 弾の領域の数
bulletspeed[in] 弾のスピード2〜4くらい?
queuenum[in] 空き領域保存キューのサイズ。(200くらいが好ましい)
戻り値:
....????

BMLDLL_EXTERN int WINAPI BML_LoadXMLFile const char *  filename  ) 
 

引数:
filename[in] BulletMLデータが定義されているXMLファイル。(拡張子は何でも良い。
戻り値:
ロード済みXMLのハンドル

BMLDLL_EXTERN int WINAPI BML_LoadXMLFromMemory const char *  memory  ) 
 

引数:
memory[in] ロード済みXML文字列へのメモリ領域へのポインタ(文字列の最後は必ずNULLであること。
戻り値:
ロード済みXMLハンドル

BMLDLL_EXTERN int WINAPI BML_Move  ) 
 

今まで生成された弾を動かす。

BMLDLL_EXTERN void WINAPI BML_SetBulletSpeed double   ) 
 

標準的な弾のスピードを指定する。

BMLDLL_EXTERN int WINAPI BML_Update  ) 
 

libBulletMLが行う1フレーム間の処理をする。


BMLDLL.dllに対してTue Mar 23 01:17:28 2004に生成されました。 doxygen 1.3.6