初学Direct X (2)】的更多相关文章

初学Direct X(7) --位图的旋转,缩放以及平移 本文旨在实现通过D3DXMatrixTransformation2D函数实现位图的旋转,缩放以及平移操作,但是具体的原理部分会在后面进一步的探讨. 1. 使用 下面是D3DXMatrixTransformation2D函数的定义: D3DXMATRIX* D3DXMatrixTransformation2D( _Inout_ D3DXMATRIX *pOut, _In_ const D3DXVECTOR2 *pScalingCenter,…
初学Direct X(10) -- D3D基础预备知识 1. 像素格式 D3DFMT_X8R8G8B8(F) X:未加使用 8:8位用于显示 B:用于显示蓝色 F:浮点像素类型 以下三个较为常用,使用其他之前务必验证显卡是否支持 D3DFMT_R8G8B8 D3DFMT_X8R8G8B8 D3DFMT_A8R8G8B8 2. 内存池 定义资源缓存的存储位置 可默认宏为:D3DPOOL_DEFAULT 3. 深度缓存 是只含有特定像素的深度信息而不含图像数据的表面,可用于判断物体的前后显示 D3D…
初学Direct X(9) --文字的显示 本次学习如何使用ID3DXFont创建字体,使得我们可以在任何安装了Windows系统中TrueType字体来打印文字,不过最好使用标准字体,这样文字在每一台PC上的显示才会和计划中的一样. 1. 显示前的准备 就像创建LPDIRECT3DDEVICE9一样,我们需要先声明一个接口: LPD3DXFONT font = NULL; 接着设置创建字体所需要的参数: typedef struct _D3DXFONT_DESCA { INT Height;…
初学Direct X(8) --碰撞检测 真正让一个游戏鹤立鸡群的是程序对碰撞的响应有多好,这里介绍两种检测的方法: 1) 基于边框的碰撞检测 2) 基于距离的碰撞检测 1. 基于边框的碰撞检测 1.1 实现的基础 我们将要检测的两个物体(位图)视为两个矩形,在此基础之上,检测两矩形是否有重叠区域.若存在重叠区域,则发生了碰撞:反之则没有.检测两矩形是否有重叠到了Windows API,即IntersectRect,它的定义如下: BOOL IntersectRect( _Out_ LPRECT…
初学Direct X(6) 这一文本应和上一篇放在一起的,但是上一章写着写着发现对Draw绘制透明位图的方式有感觉了,决定就单写一篇,留作笔记了. 那这一篇是记录如何使用位图表来绘制动画帧,想象一下,利用图1制作出来的图2 图1 图2 其实实现的方式不难,回忆一下在Draw函数中,有一个参数为pSrcRect,它可以在我们需要时取出在pTexture中指定的一部分,或者称之为图片单元,或者帧.根据可以取出指定部分的思路,只要计算出来下一帧的位图在pTexture中的坐标即可,帧数为framenu…
初学Direct X(5) 前面学习了使用表面绘制屏幕,但这种方法与另一种比较起来,有着绘图速度颇慢以及缺乏对任何透明类型的支持,这就是前面的篮框以及炸弹会有黑色背景的原因,这种方法就是纹理.他可以绘制出有透明效果的物体,即只显示对象本身的像素而没有背景. 1. 加载带有位图的纹理 应该要让纹理像表面一样有该有的功能,比如将位图加载于纹理上.要做到这个,首先得创建纹理对象,它是LPDIRECT3DTEXTURE9类型: LPDIRECT3DTEXTURE9 texture = NULL; 接着从…
初学Direct X(4) 本文学着做出一个如下的小游戏 游戏方式是使用键盘控制红色的Bucket收集蓝色的炸弹 1.酝酿一下 现在我已经掌握: 将位图文件加载到内存 绘制位图到buckbuffer 获取外设输入 再来几个,获取表面的信息,例如宽和高 D3DSURFACE_DESC desc; source->GetDesc(&desc); 以及获取位图的信息,例如宽和高 D3DXIMAGE_INFO image_info; HRESULT result = D3DXGetImageInfo…
初学Direct X(3) 1.获取外设输入--键盘以及鼠标 无论是获取鼠标还是键盘的设备,首先得初始化DirectInput,不过先把必要的环境先配置好: 所要用到的头文件以及库文件是(相比于前两次): #include <dinput.h> #pragma comment(lib,"dinput8.lib") #pragma comment(lib,"dxguid.lib") 以及要用到的DirectInput对象以及设备(包括键盘和鼠标)对象: L…
初学Direct X (2) 这一次要学习如何现实位图,尽管看过对双缓冲机制还有很多疑问,但是这并不阻碍我对他的入门了解 Direct3D提供了一个双重/后台缓冲区,在调用CreateDevice之时就有了.其运行机制就是,我们需要在其中一个缓冲区上绘制完所需要显示的一切,之后将这个缓冲区快速的复制到另一个缓冲区,因为后者的缓冲区被称为Front Buffer,显示器在刷新之时会直接从中取出数据以显示,而前者就称之为backbuffer 但是,还有一种buffer,是可供我们在内存中进行操作的,…
初学Direct X (1) Direct3D设备用于访问视频卡的帧缓冲区,以及后台缓冲区.由于IDE是vs2013,默认安装了direct 9,只需要在使用头文件(1)并像使用库文件(2)即可 #include <d3d9.h> ------------(1) #pragma comment (lib,"d3d9.lib") ------------(2) 1. 关于Direct3D的接口 编写Direct3D程序的第一步,少不了Direct3D的接口变量和图形设备变量,…
去年就打算总结一下,结果新换的工作特别忙,就迟迟没有认真动手.主要内容是很多初学DDD甚至于学习很长时间的同学没有弄明白DDD是什么,适合什么情况.这世界上没有银弹,抛开了适合的场景孤立的去研究DDD,在学习过程中还可以,但是应用到实际项目时就会遇到各种坑,到头来各种妥协,我看到很多同学遇到这种情况,最后怪DDD,说DDD不实用云云.另有一些都没细了解过就抨击反对的,事实上,要想否定个东西,你总要了解了才有发言权. 一.误区 综合起来主要有一下几种误区: 1.1.DDD更高级,可以替代三层,为了…
原文地址:gulp初学 至于gulp与grunt的区别,用过的人都略知一二,总的来说就是2点: 1.gulp的gulpfile.js  配置简单而且更容易阅读和维护.之所以如此,是因为它们的工作方式不同,gulp的流式构建使得gulpfile.js文件写起来并不是像Gruntfile.js一样完成一个个插件的配置那样多.对于这点我的理解还不是很深刻,只能暂时这样做一个比较吧,以后的学习接触多了应该就会深刻的体会到. 2.似乎gulp的上手比grunt更简单一些,或者说一个是轻量级一个是重量级的吧…
原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —dist   //压缩后的目标文件夹 —lib   //各个模块 —drag    //拖拽模块 —scale   //缩放模块 —seajs    //seajs库 —seajs_drag    //入口的主文件main.js —main.js /*——————————————————————————…
概述: 鉴于本人初学,使用的编译器是webStorm,需添加对VUE的支持,添加方法可以参考 http://www.jianshu.com/p/142dae4f8b51. 起步: 1. 扎实的 JavaScript.HTML . CSS 基本功,这是接触vue的前提条件. 2. 学习vue官方的基础内容.不要构建工具webpack,只是页面<script>引入vue.js,把基础教程里的例子模仿练习,理解用法.如果没有 Node/Webpack 基础,不建议直接用 vue-cli 构建项目.…
看完此文,题目不言自明.转自 http://blog.chinaunix.net/uid-27105712-id-3270102.html 在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO.本篇文件打算详细全面,深入浅出.剖析文件IO的细节.从多个角度探索如何提高IO性能.本文尽量用通俗易懂的视角去阐述.不copy内核代码. 阐述之前,要先有个大视角,让我们站在万米高空,鸟瞰我们的文件IO,它们设计是分层的,分层有2个好处,一是架构清晰,二…
在11g中,全表扫描可能使用direct path read方式,绕过buffer cache,这样的全表扫描就是物理读了. 在10g中,都是通过gc buffer来读的,所以不存在direct path read的问题. direct path read较高的可能原因有: 1. 大量的磁盘排序操作,order by, group by, union, distinct, rollup, 无法在PGA中完成排序,需要利用temp表空间进行排序. 当从临时表空间中读取排序结果时,会产生direct…
初学Python 1.Python初识 life is short you need python--龟叔名言 Python是一种简洁优美语法接近自然语言的一种全栈开发语言,由"龟叔"编写开发一种易学易懂高效的语言. Python提供丰富的接口和模块,便于使用其他语言细化,性能提升对要求较高的软件. 以上简单描述了一下Python语言的优点,缺点我就不写了,因为不需要对比,强大的语言自会解决现在几个劣势. 针对于初学者版本选择的问题,因为现在国内大多数在使用2.X版本,个人建议使用3.…
对象 Javascript是一种面向对象的语言,因此可以使用面向对象的思想来进行javascript程序设计对象就是由一些彼此相关的属性和方法集合在一起而构成的一个数据实体.举个例子,一只猫是个对象,它有属性颜色.身高之类,而它的方法就有抓老鼠. 本地对象1.Date 日期对象用来处理日期和时间.在<Javascript初学篇章_1>中就有提到过 var myDate = new Date(); myDate.getFullYear(); //获取完整的年份(4位,1970-????) myD…
         其实大多数开发初学者都有一些相同的特点,可以说是一种“职业病”.Most有其他平台开发基础的初学者,看到Xcode就想摩拳擦掌:看到Interface Builder就想跃跃欲试:而看到Objective-C就望而止步,感觉有座大山难住去路,而开山凿洞就是技术人员当仁不让的天职了-.-         我是个果迷,如果你和我一样对苹果开发—>Mac OS X 或iPhone有兴趣,但一看到Objective-C就头热的话,那就需要对Objective-C作一些简单而又必要的了…
Android 采用ScrollView布局时出现异常:ScrollView can host only one direct child. 异常原因: 主要是ScrollView内部只能有一个子元素,即不能并列存在多个子元素 处理方案: 把所有的子元素放到一个LinearLayout内部或RelativeLayout等其他标签内部即可…
文章出处:http://www.cnblogs.com/CBDoctor/archive/2012/04/06/2434072.html 在matlab中,每一个对象都有一个数字来标识,叫做句柄.当每次创建一个对象时,matlab就为它建立一个唯一的句柄 句柄中包含有该对象的相关信息参数,可以在后续程序中进行操作,改变其中的参数,以便达到不同的效果 例如:gcf 是返回当前被激活的窗口的句柄.你可以认为它就指代当前窗口.figure(gcf)打开这个窗口. 这两天在看句柄式图形方面的东西,以下是…
学习HTML5是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习做一个厚实的铺垫. 刚开始学习HTML5也并不要刻意的暗示自己什么,必须静下心来想想自己应该用怎样的学习方法.就每一个人而言,刚开始学习一样新的东西,都会抱着足够的兴趣和新鲜感,这是极好的.但是,学习HTML5是一个漫长的过程,就算是以后工作了,我们还是要随时吸收新的东西.所以,从一开始,我们也要保…
当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”) 该错误将发生在类似如下代码中: ? 1 2 if spam == 42     print('Hello!') 2)使用 = 而不是 ==(导致“SyntaxError: i…
App.direct.MasterData.Export(App.tfSearch.getValue(), {                    isUpload: true                });…
From:http://www.nickdu.com/?p=604 Visual Studio 2013 Update 5 is now released and maybe you are also struggling where to find the download link for full ISO. Direct link: https://go.microsoft.com/fwlink/?LinkId=519391 (6GB in size!) ISO also can be d…
这篇文章主要介绍了Erlang初学:Erlang的一些特点和个人理解总结,本文总结了函数式编程.一切都是常量.轻量进程.进程端口映射及典型缺点等内容,需要的朋友可以参考下 我对 Erlang 编程理念的理解:以分布式架构师的角度写代码. 函数式编程 Erlang 里面的函数是数学里面的函数:必须有返回值. 只要是函数必然有返回值,函数是一个过程,以英文的句号为函数结束符. 函数结束之前的表达式就是该函数的返回值. 所以这也是在 Erlang 里面的函数不会看到任何 return 语句的原因. C…
使用场景 Spark Streaming实时消费kafka数据的时候,程序停止或者Kafka节点挂掉会导致数据丢失,Spark Streaming也没有设置CheckPoint(据说比较鸡肋,虽然可以保存Direct方式的offset,但是可能会导致频繁写HDFS占用IO),所以每次出现问题的时候,重启程序,而程序的消费方式是Direct,所以在程序down掉的这段时间Kafka上的数据是消费不到的,虽然可以设置offset为smallest,但是会导致重复消费,重新overwrite hive…
初学c# -- 学习笔记(一) 学习C#了,参考许多资料,一步步学习.这一段学习ajax的工作原理,参照其他例子写了web版的群聊小程序,全部文件代码也就不到300行,很简单.使用时先输入用户名,点确定,在下面输入框输入内容,上面显示框就可以看见内容,多找几台机子试试.编译时引用里面加上Microsoft.JScript,不加也可以,自己写一个Unescape. 编辑VS2015,.net 4.0,运行于IIS. 1.default.aspx <%@ Page Language="C#&q…
初学git(一):创建本地“仓库” 作为一个初学者,我是跟着廖学峰老师的官方博客学习,这里只是做个笔记,哈哈,关于git的历史.和其他版本控制的对比啥的,我就不说了.另外,我这里用的是Mac OS X系统,以下操作都是在Mac上的. 1.打开终端,cd进入项目目录 project , 并以此本地‘仓库’目录 2.输入命令,初始化仓库 $  git init 此时,该项目目录下会多出一个.git文件夹(此文件夹为隐藏文件),命令ls -al 可以列出所有文件 或去文件目录查看: 此时,git仓库已…
对高手来讲不值一提,可是对我这个初学来讲却是因为这些问题费了老长时间,有的不是编程问题,但不注意也会浪费不少宝贵时间!随时遇到随时更新... 引入第三方类库的问题,开始引用后没什么问题,但发现了该类库有新版本发布了,就想在程序里也更新一下,结果更新后报错,总说一个方法miss,以为新版改成了其它方法,但从引用类的方法列表里可以看到这个方法还是有的,可就是报错,怎么也不行了,急坏了,一上午时间都浪费在这了,最后解决方法是重新下载了一次新版的再引用就没事了....…