CodeBug

写代码,玩游戏

在博主的[上一篇文章](http://davidsheh.github.io/post/「Modern OpenGL系列(一)」十步搞定OpenGL开发环境/)中已经介绍了OpenGL开发环境的搭建,本篇博文将验证开发环境是否搭建成功。同时,也是迈出OpenGL开发的第一步。我们使用上一篇文章中新建的项目,创建一个OpenGL窗口。 1. 添加头文件display.h。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1
阅读全文 »

OpenGL官网:https://www.opengl.org。 开发常用的SDK库:https://www.opengl.org/sdk/libs/ 搭建环境前的准备 在搭建OpenGL开发环境前先下载好下面的三个压缩文件: 1. GLEW(OpenGL Extension Wrangler Library):详细介绍。压缩包下载链接:Binaries Windows 32-bit and 64-bit 2. GLM(OpenGL Mathematics):详细介绍。压缩包下载链接:glm-0.9.7.4.zip 3. SDL(Simple DirectMedia Layer):详
阅读全文 »

在上一篇博客中讲了利用向量点乘在游戏开发中应用的几种情景。本篇博客将用一个简单的小例子来讲解在实际的游戏开发中如何利用向量的叉乘来解决问题。 向量叉乘的几何意义 1. 叉积的长度 |a×b| 可以解释成以a和b为邻边的平行四边形的面积。 2. 混合积 [a b c] = (a×b)·c可以得到以a,b,c为棱的平行六面体的体积。 关于向量叉乘的其他定义、规律以及应用有兴趣的朋友可以参考百度百科,这里就不再啰嗦了。本篇博客不想在叉乘其他地方纠结太多,只说一下如何用叉乘判断方向。 如何用向量叉乘判断方向 在网上有很多人将向量的应用总结为一句话:点乘判断角度,叉乘判断方向。关于点乘在上一篇
阅读全文 »

在上一篇博客中讲了利用向量方向的性质来解决问题。这篇博客将继续用一个简单的小例子来讲解如何将向量的点乘性质应用到实际的游戏开发中。 向量点乘的几何定义 设二维空间内有两个向量U和V,它们的夹角为θ([0, π]),则内积定义为以下实数: 向量点乘的公式:U·V = **|U||V|**cosθ 根据该公式可以退到下面五条结论: 1. U·V > 0,表示向量U和V之间的夹角小于90度(锐角) 2. U·V < 0,表示向量U和V之间的夹角大于90度(钝角) 3. U·V = 0,表示向量U和V之间的夹角为90度(相互垂直) 4. U·V = 1,表示向量U和V的方向相同 5. U
阅读全文 »

1. 用Pascal规则来命名属性、方法、事件和类名 1 2 3 4 5 6 public class HelloWorld { public void SayHello(string name) { } } Pascal规则是指名称中单词的首字母大写 ,如EmployeeSalary、 ConfimationDialog、PlainTextEncoding。 2. 用Camel规则来命名成员变量、局部变量和方法的参数 1 2 3 4 5 6 7 8 9 public class Product { private string productId; private s
阅读全文 »

刚好遇到这个问题,在网上百度了一下,看到有人分享了引起该问题的几个原因: 1. 手机设置问题。开USB调试 方法: 手机设置 - 开发人员选项 - USB调试 - 勾选 2. 数据线问题。 有的数据线只能用来充电,有的可以连接存储。识别方法很简单。。插上机器有USB存储设备的提示的就可以用。另外数据线如果都露线皮了。。就赶紧扔了。十块八块的总比你为这个破问题纠结一下午的好。 3. 是否下载了对应手机版本的SDK,以Android Studio为例,点开 SDK Manager 之后。看你手机所使用的系统版本号对应的SDK是否已下载。。没有就赶紧下。。手机对应的Android版本查看方法
阅读全文 »

向量在游戏开发中是非常实用的,我们在学校学完向量的知识后,只知道向量的基本知识,但对于如何将所学到的向量知识运用到实际的游戏开发中却不知所措。我计划写几篇关于向量在游戏中的应用的文章,总结一下在实际工作中所遇到过的运用向量机智处理问题的技巧。接下来要写的东西都是记录在我的云笔记中,现在计划整理一下后分享出来。 对于向量的那些基本性质我不想说太多,有兴趣的读者可以自行查阅相关文档,这里只说向量的大小和方向。不知道读者朋友曾经玩过安卓上一款比较火的跳跃游戏没有,游戏名字叫「涂鸦跳跃」,英文名为「Doodle Jump」,游戏截图如下: 在玩「涂鸦跳跃」时,不知道你有没有想过这么一个问题:从下往上
阅读全文 »

重构的几种情况 1. 代码块俞小,代码的功能就俞容易管理,代码的处理和移动也就俞轻松。(功能也就越单一) 2. 任何不会被修改的变量都可以被当成参数传入新的函数,至于会被修改的变量需要慎重。如果只有一个变量会被修改,可以把它当做返回值。 3. 绝大多数情况下,函数应该放在它所使用的数据的所属对象内。 4. 最好不要在另一个对象的属性基础上运用switch语句。如果不得不使用,也应该在对象自己的数据上使用,而不是在别人的数据上使用。 5. 使用继承来适当组织类关系后,可以用多态取代switch语句。 重构原则 1. 三次法则:第一次做某件事时只管去做;第二次做类似的事会产生反感,但
阅读全文 »

1. C#类型的取值范围 2. 访问限制符 修饰符应用于说明public所有类型或成员任何代码均可以访问该项protected类型和内嵌类型的所有成员只有派生的类型能够访问该项internal所有类型或成员只能在包含它的程序集中访问该项private类型和内嵌类型的所有成员只能在它所属的类型中访问该项protected internal类型和内嵌类型的所有成员只能在包含它的程序集和派生类型的任何代码中访问该项3. C#常见的修饰符 修饰符应用于说明new函数成员成员用相同的签名隐藏继承的成员static所有成员成员不作用于类的具体实例virtual仅函数成员成员可以由派生类重写abstra
阅读全文 »

1. 函数要尽可能短小,最好不要超过20行。而且函数应该做一件事,做好这件事,只做这一件事。 2. 函数参数尽可能的少,建议一般不要超过三个。如果函数看来需要两个、三个或三个以上参数,就说明其中一些参数应该封装为类了。 3. 对于一元函数,函数和参数应当形成一种非常良好的动词/名词对形式。如,write(name)。 4. 函数要么做什么事,要么回答什么事,但二者不可得兼。函数应该修改某对象的状态,或是返回该对象的有关信息。两样都干常会导致混乱。 5. 函数是语言的动词,类是名词。 6. 如果可能尽量不写注释,而是让变量和函数本身见名知意。 7. 暂时未完成的部分使用
阅读全文 »
0%