sp; return FALSE; {置显示模式}
}
DELPHI版:
function TForm1.InitDirectDraw: Boolean;
var
lpDD: IDirectDraw7;
begin
Result := False; {先假设初始化失败}
{建立DirectDraw对象}
if DirectDrawCreateEx(nil, lpDD, IID_IDIRECTDRAW7, nil) <> DD_OK then
exit;
{设定DirectDraw的控制级,第一个参数为DirectDraw窗口的句柄,这里把控级级设为的全屏加独占模式}
if lpDD.SetCooperativeLevel(Hwnd, DDSCL_EXCLUSIVE or DDSCL_FULLSCREEN) <> DD_OK then
exit;
{设定显示模式,第一,二个参数为分辩率大小,第三个参数用来设置显示模式的颜色位数,
第四个参数设定屏幕的刷新率,0为默认值,第四个参数唯一有效的值只有DDSDM_STANDARDVGAMODE}
if lpDD.SetDisplayMode(640, 480, 32, 0, DDSDM_STANDARDVGAMODE) <> DD_OK then
exit;
Result := True;
end;
可以看出来,这二段代码除了语法和对象名外完全一样,只要了解了这点,我们完全可以参考VC或C++的
资料,然后用DELPHI做出自己的游戏了.DELPHI中DirectX声明中的对象名,结构名和VC不一样,一般的对应关系如下:
DELPHI VC
DirectDraw对象 IDirectDraw7 LPDIRECTDRAW7
页面对象 IDirectDrawSurface7 LPDIRECTDRAWSURFACE7
DirectDraw的页面描述 TDDSurfaceDesc2 DDSURFACEDESC2
基本上只是前缀不一样,由于篇幅,这儿就不一一列出所有对像和结构了.