|||||||谁做过DirectX编程,有谁想一起研究????????

hhjjhjhj 2003-12-17 01:38:53
看看实例,本人还没对此全部了解,谁有兴趣?
ftp://ts:ts@9zp.com/directTEST.rar
...全文
6 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
VCSQLVB 2003-12-17
刚看了,没看到源代码,大概就是对显示模式等基础环境的设置,有个页面交换,再有就是应用了
Direct3D的接口函数。
回复
VCSQLVB 2003-12-17
我寻找学DX的很久了,联系吧:zhchyg@163.com
回复
pandengzhe 2003-12-17
麻烦。。。
回复
flc 2003-12-17
关注
回复
hhjjhjhj 2003-12-17
///////Dx8sdk demo中,应该有类似程序吧!!

不过不是vb的...

个人还是觉得vc搞比较正宗///////

实例就是Dx8sdk demo中的一个,因为Dx8sdk有80M大,所以选了一个供还没了解的朋友看一看,

对于利用第三方对象编程时,VC与VB是一样的,都只是给对象提供数据,和发出指令,任务都是由对象完成的,所以用什么语言编程都是一样的。
回复
planetike 2003-12-17
头大
回复
YQShi 2003-12-17
学ing............
回复
xiaobird1 2003-12-17
Dx8sdk demo中,应该有类似程序吧!!

不过不是vb的...

个人还是觉得vc搞比较正宗

回复
flyingscv 2003-12-17
我也学过两天DDraw,停在这了
基本步骤说明与实现方法
1、初始化
创建DirectDraw对象

Set DirectDraw7=DirectX7.DirectDrawCreate("")

设置协作等级并联系到窗体

DirectDraw7.SetCooperativeLevel me.hWnd, DDSCL_FULLSCREEN Or DDSCL_EXCLUSIVE

设置分辨率

DirectDraw7.SetDisplayMode 800,600,24, 0, DDSDM_DEFAULT

创建带一缓冲区的主表面

DDSURFACEDESC2.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT ddsdMain.lBackBufferCount = 1

DDSURFACEDESC2.ddsCaps.lCaps = DDSCAPS_COMPLEX Or DDSCAPS_FLIP Or DDSCAPS_PRIMARYSURFACE

Set DirectDrawSurface7 = DirectDraw7.CreateSurface(DDSURFACEDESC2)

取得缓冲区

DDSURFACEDESC2.ddsCaps.lCaps = DDSCAPS_BACKBUFFER

Set DirectDrawSurface7 = DirectDrawSurface7.GetAttachedSurface(DDSURFACEDESC2.ddsCaps)

创建其他表面(离屏表面)CreateAllSurfaces

DDSURFACEDESC2.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH

DDSURFACEDESC2.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN

DDSURFACEDESC2.lHeight = 128

DDSURFACEDESC2.lWidth = 32

Set DirectDrawSurface7 = DirectDraw7.CreateSurfaceFromFile(“file", DDSURFACEDESC2)

2、主循环

判断是否结束循环,是-3

判断是否表面丢失,是则恢复

(对于独占模式DDSCL_EXCLUSIVE,如TestCooperativeLevel<>DD_OK则说明用户切换任务需要在用户切换回来时{TestCooperativeLevel=DD_OK}恢复表面,

DirectDraw7.RestoreAllSurfaces(先恢复内存)

CreateAllSurfaces(再创建数据)

更新主表面缓冲区

DirectDrawSurface7.BltFast intX, intY, DirectDrawSurface7, sRect, DDBLTFAST_WAIT

DirectDrawSurface7.Blt dRect, DirectDrawSurface7, sRect, DDBLTFAST_WAIT

翻转主表面

DirectDrawSurface7.Flip Nothing, 0

3、退出

恢复所有设置

Running = False

DirectDraw7.RestoreDisplayMode

DirectDraw7.SetCooperativeLevel 0, DDSCL_NORMAL

Set DirectDrawSurface7 = Nothing

Set DirectDraw7 = Nothing

Unload Me

使用颜色键

DDCOLORKEY.high = RGB(255, 255, 0)

DDCOLORKEY.low = RGB(255, 255, 0)

DirectDrawSurface7.SetColorKey DDCKEY_SRCBLT, DDCOLORKEY

DirectDrawSurface7.BltFast intX, intY, DirectDrawSurface7, sRect, DDBLTFAST_SRCCOLORKEY

or DirectDrawSurface7.Blt dRect, DirectDrawSurface7, sRect, DDBLT_KEYSRC

或在Blt中使用DDBLTFX(暂不知如何使用)

回复
hhjjhjhj 2003-12-17
up
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告