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

hhjjhjhj 2003-12-17 01:38:53
看看实例,本人还没对此全部了解,谁有兴趣?
ftp://ts:ts@9zp.com/directTEST.rar
...全文
44 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧