![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大三windowsAPI DX API实现游戏引擎
qq_40272523
这个作者很懒,什么都没留下…
展开
-
游戏引擎作业处理
1.有一个很有意思并且可以确定的事即若显存 表面被锁定即 它的位置不会变了 即我们对该区域的写入操作可以进行 那么此时缓冲区首地址应该有值如果解锁了 ,说明该区域管理权交给显卡 它为了算法的要求和自己的一些会移动区域,此时它的首地址是未知的所以在显存区域解锁时 指向它的首地址应为NULL ;锁定时 应有值...原创 2019-12-01 12:36:46 · 102 阅读 · 0 评论 -
全屏进程的调试方法
刚才就想把那个游戏全屏打开。但是又设置了很多断点 于是就悲剧了。,。进程没办法进程但一直黑屏占据着全屏幕,其他程序如任务管理器打开也无法获得焦点,就关不了,最后上知乎大佬的方法创建了一个新桌面,将VS弄到新桌面(可能就是另一个显示表面)操控才关掉。具体操作如下 学到了 还能创建不同桌面啊 挺方便这样调试全屏程序时回答仅在win10下有效如果没有还打开任务管理器,按下ctrl+...原创 2019-11-30 13:01:37 · 153 阅读 · 0 评论 -
全局函数声明和静态函数声明
在C++中我们可以说全局变量的声明在头文件以下面这种格式声明extern LPDIRECTINPUT8 lpdi; 但是类的静态变量的声明时在类的声明花括号中 这也是为什么c++不能再类花括号里给静态字段/成员变量赋默认值的关系那么静态全局变量呢,这个有意思了,它的作用域是在一个文件里的,因此别的文件其实也用不到它的声明,因此它不需要声明,声明了 也是空声明,...原创 2019-11-30 12:56:55 · 1386 阅读 · 0 评论 -
C#静态类里的所有成员必须都是静态的否则无法用static修饰类
C#是那样的但是C++就很迷它成员是非静态 我编译了一下也可以通过 有点蒙static class CCutWindow //C++竟然可以用静态类{public: int left;public: CCutWindow(); ~CCutWindow();};然后我刚才实例了一个类变量还成功了 我不知道C++是在干嘛...原创 2019-11-27 15:16:13 · 625 阅读 · 0 评论 -
处理作业时一些注意三
1.U3D等等游戏引擎提供的可能是图形界面配合代码的接口我们游戏引擎就没有图形界面接口 只有API2.或者说OpenGL不像DX一样依靠Windows的接口完成,相反windows可能还有依靠OpenGL接口3.但你通过游戏引擎创作了一个游戏,游戏引擎也只是一堆代码的封装,编译后都是二进制,所以玩家主机不需要安游戏引擎运行时也可以也可以用 只不过是用引擎的编程人员看不到那些封装而已相...原创 2019-11-16 22:57:34 · 111 阅读 · 0 评论 -
处理作业时一些注意2
如果3D游戏中按基于多边形来构建游戏引擎而不是基于光纤追踪(它可以很快的构建3D场景)。在计算漫反射时,从逻辑上讲是光能量衰减-》材质吸收->然后在计算在平面外法线向量的投影,2./创建sin/cos查找表目的:用初始化时间换得运行时更快的查找效率3.碰撞检测也是属于运行时游戏引擎游戏性系统部分4.看到书上一句话写的特别好:“3D图形学研究的不是DX和WIndows而是数学 ...原创 2019-11-10 20:12:22 · 496 阅读 · 0 评论 -
处理作业那个文件时 一些注意
1.#是预处理的意思哈 就是在程序运行前预先处理#define XXXXXXXX有时候可以起到包含.cpp文件的作用哈比如#program(“”,lib)就是包含一个library2.组件对象就像一个路由器 或者一个集线器 可以有别的程序四面八方的程序 通过接口连到这个对其他程序来说是黑盒子的东西而且一个组件对象可以支持不同的接口版本 一个接口版本也可以有很多接口,就是接口版...原创 2019-11-09 20:24:23 · 157 阅读 · 0 评论 -
头文件中引用别类需要包含头文件
谁给我说C 与C++引用同工程别的类不需要包含头文件的可恶啊 需要的 不知道之前咋想的CPen这些事系统类 自动在配置环境里就包含头文件和.cpp了 所以不用显示包含...原创 2019-11-05 16:56:35 · 1348 阅读 · 0 评论 -
封装
有一个很有意思的事就是封装这个概念不只在计算机中广泛应用。在数学中也经常用,比如哈叉乘:其实就是利用两向量与法向量点乘为0不过是装B的写到行列式中了再比如:矩阵那不就是把很多式子写成一个规定格式了吗 计算过程你还是省不了而且一样的。封装因为全面性比如矩阵包含旋转平移缩放 那必然比只进行一个计算要慢的多,这也是封装的缺点所以封装好处是对人来说简单点,对拆分过程来说更复...原创 2019-11-05 15:12:23 · 89 阅读 · 0 评论 -
球面uvn坐标系统
刚在在那个那个tank程序里利用书上的球面uvn坐标系统弄了一下我觉得球面uvn系统好在什么地方呢,即假设xz为地平面情况下 用每次都从世界坐标系Z轴为基准开始变 n向量先绕世界坐标系X轴转再绕世界坐标系Y轴转。感觉就很巧妙哈 不用每次都在上一次基准上变换,因为那样你想想绕相机坐标系X轴转,会很麻烦 你可能要先将坐标转换成相机坐标系坐标 在绕相机坐标系x轴转 也就需要矩阵分步相乘,远没...原创 2019-11-04 22:45:15 · 739 阅读 · 0 评论 -
1
在设计阶段或者说未完工阶段,代码尽量越软越好;而在完成之后可以逐渐具体和硬起来因为设计阶段很容易频繁改变。就像我上学期那个作业哈,也是都完成了 但是潜力还很大,发展功能还有很多,不过没时间弄了即便如此在我尽量增加效率 也代表这会增加代码之间耦合性,不过效率高了,就像什么呢 就像汽车多个系统零件,我们分开造造好了 按一块 并且耦合性特别高 里面特别复杂 但这都不重要了。...原创 2019-11-04 21:29:24 · 58 阅读 · 0 评论 -
什么是硬编码
硬编码是将数据直接嵌入到程序或其他可执行对象的源代码中的软件开发实践,与从外部获取数据或在运行时生成数据不同。硬编码数据通常只能通过编辑源代码和重新编译可执行文件来修改,尽管可以使用调试器或十六进制编辑器在内存或磁盘上进行更改。硬编码的数据通常表示不变的信息,例如物理常量,版本号和静态文本元素。 另一方面,软编码数据对用户输入,HTTP服务器响应或配置文件等任意信息进行编码,并在运行时...原创 2019-11-04 21:23:58 · 6876 阅读 · 2 评论 -
求平面法向量的方法
一.向量点积配合待定系数法已知平面上三点A(xa,ya,za)B(xb,yb,zb) C(xc,yc,zc)那么->AC(xc-xa,yc-ya,zc--za)->BC(xc-xb,yc-yb,zc-zb)设平面法向量->N(xn,yn,zn)则(1)->AC*->N=0(2)->BC*->N=0根据线性代数...原创 2019-11-03 11:45:12 · 5032 阅读 · 1 评论 -
指针为什么四个字节
既然现在大部分计算机是按字节编址那么 很显然一个指针遍历完内存32位足以,所以指针我们当时用int也是四个字节和指针也可以相互转化 那也只有4GB内存好像 现在一般都8GB了 额 看看吧以后再说...原创 2019-11-01 09:38:47 · 410 阅读 · 0 评论 -
ctrl+c
ctrl+C刚才我复制一个很大的word文档在粘贴所以根据U盘那个可以推断ctrlC并未赋值到内存而只是取得地址以及访问权限原创 2019-10-31 23:05:33 · 112 阅读 · 0 评论 -
结构体中内存对齐的一些
今天任同学说的,如果是结构体,即便是按字节寻址哈,也要先访问结构体的首地址,然后,假如struct GY{char c;int a;}意思是什么呢你访问GY.a时其实按树形结构结构体跟文件或者名空间没啥区别哈GY.a你既然先从GY访问了 那么必须要先访问结构体整体的首地址。然后你不是想访问a那一片空间吗,a那一片空间是四字节的,那数据总线如果32位,就会按偏移量...原创 2019-10-31 22:54:19 · 71 阅读 · 0 评论 -
32位操作系统和64位操作系统的区别
是这样的真的很乱 然后吧 网上那些人又总是说来说去 不说到点子上 一问就是巴拉巴拉一堆你听不懂的 秀优越感呢还是干嘛编址方式有两种(1)按字节编地址它的MAR的位数与字节数有关的。一个字节有一个地址,即地址总线位数反映了字节的个数(2)按字编址它的MAR的位数与存储字数有关的。一个存储字(32位CPU有四个字节)有一个地址,即地址总线位数反映了存储字的个数。总之不需要...原创 2019-10-30 22:57:36 · 912 阅读 · 0 评论 -
windows的ctrl c
刚才我插入U盘赋值了一个pdf文件,然后拔出U盘在粘贴 发现找不到 所以说明跟文件指针一样 fopen()并没有将文件全部加载到内存。而只是一个指针或者二次指针(句柄)ctrl c也是只是一个文件的指针。如果将U盘拔了 在赋值 到相应位置找找不到所以失败了...原创 2019-10-30 10:30:56 · 383 阅读 · 0 评论 -
额
艺术这个词用得真的很好。我觉得我从事的编程项目让我感觉到艺术性的瞬间是 从最早的学习二维那本书一个一个范例的学习。我还记得我在第一次将一组猫的GIF图片在窗口上就类二维纹理在直接copy到帧缓冲那样一帧一帧的 还记得一开始控制不好帧速度 一会快 一会慢 最后成功时的喜悦 还有第一次用位图掩码贴好第一个小精灵时的感动。还有第一次让小精灵位置随机移动其实就是简单地屏幕坐标/客户区坐标在x和y上加一减...原创 2019-10-25 11:06:23 · 80 阅读 · 0 评论 -
时钟周期 指令周期 机器周期 总线周期之间的关系
1、时钟周期也称为振荡周期, 定义为时钟脉冲的倒数 (可以这样来理解, 时钟周期就是单 片机外接晶振的倒数, 例如 12M 的晶振, 它的时间周期就是 1/12 us) , 是计算机中最基本的、 最小的时间单位。2、机器周期。在计算机中, 为了便于管理, 常把一条指令的执行过程划分为若干个阶段, 每一阶段完 成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完 成一...原创 2019-10-23 17:53:30 · 6652 阅读 · 0 评论 -
sizeof()和strlen()的区别
因为strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。 而sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。比如char a[255] sizeof(a)值为255是固定的...原创 2019-10-22 17:37:56 · 85 阅读 · 0 评论 -
掩码初始
其实说是初始也不算初始了比如在windowsAPI中的wndClass.hIcon = (HICON)LoadImage(NULL, L"icon.ico", IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE);中最后一个实参就是两个位掩码用了位或操作又或者在二维贴图时,如果是长方形那种规则的还好 不过大部分现实图像都是不规则的...原创 2019-10-22 16:59:15 · 147 阅读 · 0 评论