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 );

居然就能编译通过了。运气不错!

 

 


DxLib做弹幕射击游戏(一)

运行结果就是一个黑色的窗口,正中间有一个小白点