DxLib做弹幕射击游戏(一)
DxLib是神马东西?看名字,似乎是M$的DirectX的官方库?NONONO,这货其实是日本人开发出来的一个库,封装了很多DirectX的函数,使开发更方便。这个库在日本那边很流行,很多同人游戏都是使用这个库开发的。这跟大陆不同,我们更喜欢使用FLASH开发小游戏。
题外话,那个无比恶搞的猫玛丽就是使用DxLib来开发的。
先从小日本那边下载DxLib,官方的下载地址貌似是这个:
http://homepage2.nifty.com/natupaji/DxLib/
假设我将其解压到D:/DxLib_GCC目录。
DxLib自带了各种IDE的配置教程,如VC,C#,Delphi等。
我这里实验使用的是Dev-C++。虽然工具比较旧,但是用来做小实验还不错。(下面简称dc)
配置教程在这里:
D:/DxLib_GCC/help/dxuse_gcc.html
看不懂日文没关系,里面有一部分英文和汉字,大约摸懂就行。
实际上我也不懂日文,看着猜的,嘿嘿!
我根据自己的理解,整理了一下配置过程:
一、dc基本设置
1.[Tools]->[Compiler Options]
2.选择Diectories项
3.选择Libraries项
4.将DxLib目录加到里面去
5.然后选择C++ Includes项
6.将DxLib目录同样加到里面去
7.点OK完成设置
二、项目
1.[file]->[new]->[project...]
2.选择[Windows Application]
3.Project Option的name输入,例如DrawPixel,点OK
4.选择项目保存在哪里
5.项目会自动打开main.cpp,将其保存
三、项目设定
1.[Project]->[Project Option]
2.选择Parameters项
3.在[C++ compiler]中加入:
-DDX_GCC_COMPILE
-DDX_NON_INLINE_ASM
4.在[Linker]中加入:
-lDxLib
-lDxUseCLib
-ljpeg
-lpng
-lzlib
-ltheora_static
-lvorbis_static
-lvorbisfile_static
-logg_static
-lbulletdynamics
-lbulletcollision
-lbulletmath
5.点OK完成设置
有一个不方便的地方就是每个项目都要设置一次Project属性。
这个教程下有一个简单的demo程序:
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ){return -1 ;}//若初始化失败则退出
ChangeWindowMode(TRUE);//以窗口模式运行
DrawPixel( 320 , 240 , 0xffff ) ;//画一个点
WaitKey() ;//等待输入,pause
DxLib_End() ;//Dx结束
return 0 ;
}
我不知道其他人能不能跑通,反正我是不行的,编译错误。
于是我修改了DxDirectX.h文件,将这句:
HRESULT GetSeekingLongLong ( HRESULT (__stdcall D_IMediaSeeking::*pMethod)( LONGLONG * ), LONGLONG * pll );
改为:
HRESULT GetSeekingLongLong ( HRESULT __stdcall D_IMediaSeeking::*pMethod ( LONGLONG * ), LONGLONG * pll );
居然就能编译通过了。运气不错!