龙书dx9 chapter5 light的创建和 GetAsyncKeyState()&0x8000f的问题

笔记1:当我们找个文本,按下物理按键a   aaaaa时候,会发现第一次会有隔断的时间。

参考:http://tieba.baidu.com/p/1829831956

GetAsyncKeyState()  的返回值怎么理解?

实例代码里有if( ::GetAsyncKeyState(VK_RIGHT) & 0x8000f )这一句,按下→键后,得到 0x1

void main()
{
    static int testInt=0;
    while (1)
    {
        if(short a =( ::GetAsyncKeyState(VK_RIGHT)))//
        {
        cout<<a<<endl;
        cout<<testInt++<<"次数"<<endl;
        }
    }
}

上面代码结果发现-32767出现了一次。

if(short a =( ::GetAsyncKeyState(VK_RIGHT))&0x8000f)后,按下只输出一次 1

其中short的负数以补码的形式存储在计算机中, -32767即是0x8001  -32768为0x8000

总结:1.当我们持续按键不松开,使用GetAsyncKeyState(VK_RIGHT))&0x8000f)只返回一次真;2.0x8000f其中起始的8没有起作用

时间: 2024-07-29 19:58:11

龙书dx9 chapter5 light的创建和 GetAsyncKeyState()&0x8000f的问题的相关文章

龙书dx9 纹理

本章Cube例子与前面不同:使用了规范的类定义. 笔记一:头文件中class  const static成员变量的问题: vertex.h: struct VertexT { VertexT(){} VertexT(float x,float y,float z,float nx,float ny,float nz,float u ,float v) { _x = x;_y = y;_z=z; _nx = nx; _ny = ny ; _nz = nz; _u=u;_v=v; } float _

龙书学习笔记(三)

在将第五章每个示例代码过了一遍之后,大致明白了光照这一章的内容,主要分为四点: 一.光照的类型分为三种,并且均通过结构D3DCOLORVALUE或D3DXCOLOR来表示光线的颜色 环境光(Ambient Light)经其它表面反射到达物体表面,并照亮整个场景,通常用做较低代价的粗略模拟. 漫射光(Diffuse Light)沿着特定的方向传播,到达某个表面后将沿着各个方向均匀反射,因此从各个方向观察物体表面亮度均相同. 镜面光(Specular Light)沿着特定的方向传播,到达一表面后将沿

DirectX 9.0c游戏开发手记之“龙书”第二版学习笔记之8: Chap10: Lighting

这一章讲的是光照.光照(lighting)是Direct3D中非常重要的概念,而与之相对应的是材质(material)的概念.如果没有材质的话,那么光照的作用也无法体现. 在较早一些的关于DirectX 9的编程入门书籍里,一般是使用D3DLIGHT9结构体来建立一个光源,而用D3DMATERIAL9结构体来定义物体的材质.我们要做的就是一些很琐碎的家务活,基本上就是创建这些结构体对象.设定其中的参数.启用光照之类的,至于具体实现的细节就非吾等所需(和所能)操心的了. 不过在我们的"龙书&quo

龙书学习笔记(二)

补线代之余抽空把第四章上色学了,之所以说之余,是因为这一章内容确实不怎么多,不过为了巩固知识,便结合刚学的上色又做了一个小程序. 首先进行回顾,这一章学到的一共有四点: 一.Direct3D中颜色用RGB(Red.Green.Blue)三元组表示,用两种结构来保存 D3DCOLOR,即unsigned long,共32位,分成4个8位项,分别保存Alpha(这玩意的作用会在第七章学到).红.绿.蓝,均在0x00~0xff之间取值(就是0~255) 通过结构体来保存(D3DXCOLOR和D3DCO

Directx10 龙书笔记- 雾效的实现

雾 : 说白了就是一层有颜色的(一般是白色,灰色) 蒙蒙的感觉 混在光线里面. 不管是白天还是黑天. 龙书里面是这样实现的: 1.  给雾定义一个颜色 float3 gFogColor={0.7f,0.7f,0.7f}; 2. 然后呢在顶点着色器里面计算出 顶点级别的雾化需要的颜色加成比例 加成比例: 意思是当距离摄像机,就是你的眼睛越远,雾的浓度越大,就是颜色越深. 根据这个得出一个(0,1)的和距离有关的比例系数 vout.fogLerp = saturate((d-gFogStart)/g

龙书9 chapter13 14 地形绘制的过程和terrain类的实现、 粒子系统入门笔记

地形笔记: 实现过程关键点:1.高度图的读取(得到Y值)-->创建平面网格(得到x z值)-->生成vertex和index 2.纹理映射和预设light:创建空texture-->映射vertex对应的纹理坐标-->映射不同height对应的color-->根据lightDirection计算单位网格对应的明暗程度 3.camera的height:  得到单位网格中xz已知,推导出相应的y坐标 高度图看成一个矩阵, 高度图 中元素需要>=vertex数 camera的

龙书(Dragon book) +鲸书(Whale book)+虎书(Tiger book)

1.龙书(Dragon book)书名是Compilers: Principles,Techniques,and Tools作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman国内所有的编译原理教材都是抄的它的,而且只是抄了最简单的前端的一些内容.龙书中文版第一版龙书英文版第二版 2.鲸书(Whale book)书名是:Advanced Compiler Design and Implementation作者是:Steven S.Muchnick也就是高级编译

龙书11_chapter_4 一: GameTime解读

看龙书DX11,首先是第四章,本文对GameTime类进行解释 问:此类主要实现了什么功能? 答:Returns the total time elapsed since Reset() was called, NOT counting any time when the clock is stopped. 从渲染窗口Reset开始记时,记录总共的时间.不包括此间的pause时间. 问:关键时间接口? 答: 1. //获取频率(取决于主板 OS相关,不是CPU的主频)参考:http://www.

龙书常见错误解决方案

龙书简单地看了一遍,但是大部分内容只能勉强弄懂原理,一些算法只知其然而不知其所以然.不过饭还是要一口一口地吃,图形学的一些算法需要自己多多积累学习探索,早日成竹在胸.游刃有余. 龙书中例子都很经典,但是不少例子无法编译成功,下面就是一些常见的解决方案: ①将字符集改为使用多字节字符集,这样可以解决无法从“const char”转换为“LPCWSTR”问题,当然也可以在所有字符串前面加上TEXT(). ②CD3DFont也可以使用,但是编译错误会很多,比如经典的strcpy问题,以及众多类似问题.