最近毕设题目就定了,做个围棋游戏,因为以后的工作是写游戏代码,所以就练练DirectDraw,跟着别人的代码写,还很顺利,但后来发现表面中的像素值与用其他工具检测出来的值不一样,图像有变得很模糊,明明想在这个地方画出图,却画到了其他地方,本来想用n个if 来解决,这方法也太笨了,终于花了两天时间找到原因了.用工具检测出画出来的图形被缩小了那么一点点,只有几个像素,我的是4像素和30橡素,原来4是窗口的边框厚度值.30=标题栏高度(26)+窗口边框厚(4)
DirectDraw在翻转显示(Flip)中,调用IDirectDrawSurface::Blt方法,将后台表面显示到主表面中,它的第一个参数LPRECT lpDestRect,lpDestRect的大小要与后台表面的大小一样,如果不一样,图形就变形了,我就是把后台表面大小设置窗口大小,而传入有lpDestRect却是客户区的大小才出的错,差值就成了边框和标题栏了.
GetClientRect:取得客户区的大小,不是相对于屏幕
GetWindowRect:取得窗口的位置矩形,相对于屏幕
ClientToRect:传入参数为客户区的矩形,取得客户的位置矩形,相对于屏幕
用这些就可以得到标题栏的高度,但与GetSysMetrics(CM_CYCAPTION)返回的值不一样,只是多出了边框厚度
发表评论
-
游戏工作资料
2014-02-17 10:34 0c -
游戏 压力测试工具
2014-02-14 18:16 0公司让我为游戏做个 压力测试工具 ... -
java游戏 地图编辑器
2014-01-08 15:52 0无聊之余,做了个地图编辑器,根据一张地图图片,生成它的 ... -
java游戏小框架学习笔记
2014-01-08 10:45 01.AVGScript类中怎么触发 ... -
游戏编程中的寻路算法
2013-12-26 17:40 0在游戏关卡中常常会放置一些怪物(即NPC),这些怪物通常在一 ... -
UDK自定义角色(二)
2013-03-11 15:31 0对比UTFamilyInfo_Liandri_Male.u ... -
在udk中整合动画组的两种方式
2013-03-11 12:35 01.使用udk原始psk文件格式 前提,udk的坐标轴要 ... -
在udk中测试动画
2013-03-11 10:42 0在内容浏览器中选中animSet 在地图 ... -
udk开发工具
2013-01-29 11:13 0notepad++插件 UnrealScript.xml ... -
第14节 udk学习之坦克前进声音与背景音乐
2013-01-15 15:50 0在udk中建立cue资源,导入wav声音,再到代码中修改 ... -
java俄罗斯方块
2013-01-02 11:50 879做个俄罗斯方块游戏 packag ... -
udk学习之武器准心
2012-12-05 12:16 0给武器瞄准点加上准心,如图 准心资源 ... -
udk相关软件、插件下载
2012-11-26 09:32 0photoshop的dds插件:http://dl.ite ... -
第13节 UDK载具之炮弹
2012-11-16 21:54 0继承UTProjectile类 class Tan ... -
第12节 UDK学习 载具之炮筒(2)
2012-11-13 18:05 0这节学习炮塔随像机的转动而转动。 首先要取得像机的角度 ... -
第12节 UDK载具之炮筒
2012-11-11 11:41 0这节学习如何给车装上武器(已经提供了武器模型) 1.添加放 ... -
第11节 UDK学习之第三人称视角
2012-11-10 23:33 0这节做一个第三人称视角,鼠标左右前后移动与第一人称无差别,通 ... -
第10节 udk学习之自定义载具(2)
2012-11-10 21:23 01.骨骼风格物体与动画 ... -
第九节 UDK学习之自定义角色之 (三)
2012-10-17 16:30 0高手都盾世了吗,udk社区太不厚道了,看篇文章要钱,下个资源要 ... -
第八节 udk学习之自定义角色 二
2012-10-14 18:49 0首先墨迹一下: 要 ...
相关推荐
首先,我们需要理解DirectDraw的基本概念。DirectDraw允许开发者直接访问显卡硬件,提高图像渲染速度。在C#中,由于.NET Framework不直接支持DirectX API,我们需要借助Windows API调用来使用DirectDraw。这通常通过...
学习并实现Qt+DirectDraw,不仅需要对Qt的事件处理和绘图机制有深入理解,还需要熟悉DirectDraw的API和工作原理。通过这样的结合,可以在开发高性能的2D图形应用时,充分利用硬件加速的优势,提供流畅的用户体验。
9. **兼容性和移植性**:由于DirectDraw是旧版DirectX的一部分,手册会讨论如何处理不同版本的DirectDraw之间的兼容性问题,以及如何将代码迁移到更新的DirectX组件,如Direct3D。 10. **示例代码**:通常手册会...
同时,通过阅读给定的"DirectX教程",可以更深入地理解DirectDraw的工作原理和应用场景,从而为后续的3D图形编程或游戏开发打下坚实基础。通过不断地练习和实践,初学者可以逐渐掌握DirectDraw的魅力,并逐步提升...
对于经验丰富的开发者,这些笔记同样具有参考价值,特别是在理解DirectDraw的关键机制和解决实际编程问题方面。随着DirectX的版本更新,DirectDraw已被Direct3D在许多领域所取代,但DirectDraw在某些特定应用中依然...
DirectDraw Device DLL是Windows操作系统中的一个重要组件,主要与图形硬件加速功能相关。它是一个动态链接库(DLL)文件,...同时,对于开发人员来说,理解DirectDraw的工作原理和API调用对于调试这类问题至关重要。
对于初学者和有经验的开发者来说,都是一个宝贵的参考资料,能够深入理解DirectDraw的工作原理和实际应用。 在使用"ddraw.chm"文件时,通常这是一款帮助文档,采用CHM(Compiled Help Manual)格式,是微软开发的...
DirectDraw是Microsoft Windows API的一部分,主要用于加速2D图形的绘制,尤其是在游戏和视频播放等对性能要求较高的场景中。在Windows 95之后的版本中引入,DirectDraw为应用程序提供了低延迟、硬件加速的图形渲染...
DirectDraw主要应用于游戏开发、视频播放、图像编辑等领域,能够减少CPU对图形处理的负担,提升用户体验。 二、DirectDraw的核心概念 1. **设备上下文(Device Context, DC)**:DC是Windows图形系统中的一个重要...
DirectDraw是微软Windows API的一部分,主要用于2D图形加速和游戏开发。...尽管DirectDraw在现代DirectX版本中已被Direct3D取代,但对于理解底层图形原理和早期游戏开发历史,仍然具有很高的学习价值。
7. **呈现和翻转**:完成绘制后,使用DirectDraw的呈现功能将内容从内存中的表面显示到屏幕上。翻转操作会将新的图像缓冲区与屏幕上的旧图像交换,实现视觉更新。 8. **错误处理**:如果程序运行不了,可能是因为不...
通过阅读和理解这些代码,开发者可以更好地掌握DirectDraw下图片旋转的实现方法,这对于游戏开发和其他2D图形应用是极其有价值的。 总之,DirectDraw旋转图片涉及到DirectDraw对象的创建、位图加载、几何变换、...
这个"DirectDraw飞机小游戏源码"提供了一个经典的案例,让我们深入理解DirectDraw在游戏编程中的应用。 首先,`A10.001`可能是一个程序资源文件,通常包含游戏中的图片、声音或其他媒体资源。`SCRIPT1.APS`可能是一...
5. **显示信息**:最后,脚本会显示一个消息框,告知用户DirectDraw加速的状态是否已成功改变,并可能提供重启计算机的建议,因为某些更改可能需要重启后才能完全生效。 在使用这个批处理脚本前,务必谨慎,因为...
熟悉DirectDraw的API和YUV编码原理,将帮助你更好地理解和解决这些问题。同时,了解现代DirectX或其它图形库如OpenGL,它们提供了更高级的功能和更好的性能,但基本的YUV处理和显示原理仍然适用。
在Windows游戏编程中,直接绘图(DirectDraw)是一个常用的技术,用于高效地处理图形和图像数据。...记住,解决问题的关键在于理解DirectDraw的工作原理和位图的内部结构,以及熟练运用Windows API。
DirectDraw是Microsoft DirectX的一部分,它是一个图形应用程序编程接口(API),允许程序员进行低级...尽管如此,对于理解早期DirectX图形编程或者对经典游戏开发感兴趣的人员,DirectDraw仍然具有重要的学习价值。
总之,要使FFmpeg在4.0版本中成功调用DXVA和DirectDraw,需要对FFmpeg和Windows图形硬件加速技术有深入的理解,并进行相应的代码分析和调试工作。这是一个既挑战性又充满乐趣的过程,通过解决这个问题,你将更加熟练...
源码分析可以帮助初学者理解Direct Draw的工作原理,以及如何利用它来优化2D图形的性能。NChess这个文件名可能是指该Demo应用是一个基于Direct Draw的国际象棋游戏,展示了如何用这个API创建动态的2D游戏界面。
在创建一个 DirectDraw 应用程序时,首先要进行的是初始化 DirectDraw。这通常包括以下几个步骤: 1. **创建 DirectDraw 实例**:首先,我们需要通过调用 `DirectDrawCreate` 函数来创建一个 DirectDraw 对象。这个...