DX10引擎计划——应用(《是男人就点100下》演示Demo、粘连BUG的修复方法)

今天利用之前写好的物理系统,稍作修改,把《是男人就点100下》写了出来。(可见引擎普适性还是有待提高)

百度云链接:

http://pan.baidu.com/s/1mgN0vk0

在写这个游戏的过程中发现,不解决粘连BUG就没法进行下去,于是跟踪球碰撞后的速度变量,发现了问题:

是下面这段代码的问题:

运行到这里以后就出现了问题,当物体运行速度极小时,但是又不小于设置的“最小速度阀”,这时候就有事了。这段代码本意是,如果物体运动速度与碰撞法线同向,就不符合发起方条件,直接退出;如果垂直于法线(点乘之和为0),就直接退出以简化运算,但是有一种情况就是,物体运行速度极小,而又不小于最小速度阀,这样就筛选不掉这个极小速度了,会到这则个物体沿着这个极小速度缓慢移动,表现就是粘连,或者陷入(被撞物体固定不动)。

*****************************************

我想到了两个解决办法,

解决方法1:调整判断为0的条件为最小速度阀。这个方法只能是估算,还存在一个不稳定的误差,因为有一步点乘运算。这个方法我排除掉了。采用了第二种

解决方法2:对处理点乘乘积为0不进行特殊处理,通过后续的动量定理进行处理,以及用下一次循环的最小速度阀进行过滤。这个方法误差很小。

本来是想简化运算的反而画蛇添足了,教训啊。

修改后代码:

程序运行截图:

————————————————————————————————————————————————————-

吐槽环节:

找工作的事暂且先搁置了,自己内心还没真正平静下来,浮躁。之前很多朋友一直在帮我找工作,真的非常感谢你们。。。但是我一直以为关系只能算是辅助性的,自身实力达不到要求的话,再硬的关系也是白费。类似于打dota、打仗,正面战场一定要能拼得过,打游击起不到关键作用啊。

————————————————————————————————————————————————————

下一步计划:

子弹类进行了改良,突然发现设计一个射击视角的游戏非常容易,但是还有个缺憾就是骨骼动画还没实现。下一步把这个实现一下,做个射击游戏,弄俩AI进去打打。这样算是拿得出手的作品了吧。

*********

终极目标,创造“世界”。

时间: 2024-10-16 11:48:41

DX10引擎计划——应用(《是男人就点100下》演示Demo、粘连BUG的修复方法)的相关文章

DX10引擎计划0314——02

本文主要内容是关于拾取机理的探讨,我在自己引擎中的每个Mesh类中加入了拾取机制,当物体打开拾取开关时,就会响应拾取,同时绘制一个辅助的外接体,被拾取到时,物体进行一个简单的绕自身Y轴自转的动作. (我将鼠标投影矩阵进行了改写,在原基础上调节成了屏幕中心为原点,这样可以减少坐标系转换时的运算量,鼠标系统我使用了自己定义的DXInput系统,所以可以这么做.) 附一些截图: (不要在意某些细节) 关于拾取的机理,龙书上已经讲的非常详细了,但是有一些关键点没讲到.在网上可以搜到一些关于长方体外接体拾

DX10引擎计划0313(附带资料推介)

今天总算吸收掉了拾取部分.也完成了许多许多杂项,最让我感到自豪的是完成了灵活的物体链表,可以咋任何时候.任意增删改物体.这个的机理很简单,就是增加了一个标识变量,说明物体有没有灭亡,处理方法上类似于PV操作,主要是两个独立物体交互的问题(链表和物体个体).发下牢骚:这个在面向对象的语言中的确很棘手,但是如果用C语言,也就不存在这样的问题了.我个人还是喜欢C语言胜过C++的,因为我师傅是C语言的嘛.(羞) 另外也向UI部分做了初步探索,结果却不甚理想,这方面D3D的确不如D2D,如果真要做实用的引

DX10引擎计划(应用篇)

做了个cs射击视角框架(趁着脑子还没睡着,赶紧发个帖),主要实现了以下: 1.物理系统方面:摩擦力系统与弹性碰撞系统相结合.但是这样一来速度慢了许多,鱼和熊掌不可兼得吧.子弹不能自由弹了,如果换成穿透性的子弹,速度可以提升很多. 2.相机自由锁定某个物体,视角可以跟随被锁定物体移动.(想做个自由相机.射击视角相机双机制,下一步再做吧) 3.jump的实现.(依旧是依托物理系统做出来的这个,物理系统确实很好用) 现在程序先不放了,明天先发朋友帮忙测测,看看有什么兼容性问题没. 所以明天再放链接.

DX10引擎计划0322——物理系统

这部分的知识实在是琐碎,涉及到了立体几何.数学.物理等方面许多内容,当然计算机方面的基础知识更重要. 感觉做东西越是用的心思多,越是没话说.这一部分真心不是菜鸟玩的转的.我就把自己写的碰撞检测函数和重力模仿框架帖一下.筒子们可以直接拿去用.但我更希望更多的初学者能好好看看代码中的核心思想. 想了好几天是在是想不出来怎么讲这一章怎么完成的,要是写的话把我累死了就.就写一下关于这部分的一些个人总结吧: 1.游戏编程最重要的是数据结构和算法,以及底层知识,计组.操作系统是必修课.这个不是我乱说的,我接

DX引擎计划——学习unity3D前辈,“批发”游戏不是梦

接触了一周的unity3D引擎,顿生许多感慨. 对于我这样一个常年闭关深山老林的乡下人来说,这种 component—basic 结构的程序有着非常 惊艳 的效果,觉得自己选择unity3D没选择cocos非常英明.的确是这样,组件结构非常符合软件开发的原则,模块化.简单化,运行速度,不用说,没损失多少.U3D开发效率非常非常的高!正如标题所言,批发游戏不是梦,这就是一个成熟引擎应有的样子. 我才学了一周,试了试手,只用了1天时间就做出来了一个第一人称射击游戏的雏形.(本文下面附上Demo链接)

实现高性能纠删码引擎 | 纠删码技术详解(下)

作者介绍: 徐祥曦,七牛云工程师,独立开发了多套高性能纠删码/再生码编码引擎.柳青,华中科技大学博士,研究方向为基于纠删码的分布式存储系统. 前言: 在上篇<如何选择纠删码编码引擎>中,我们简单了解了 Reed-Solomon Codes(RS 码)的编/解码过程,以及编码引擎的评判标准.但并没有就具体实现进行展开,本篇作为<纠删码技术详解>的下篇,我们将主要探讨工程实现的问题. 这里先简单提炼一下实现高性能纠删码引擎的要点:首先,根据编码理论将矩阵以及有限域的运算工程化,接下来主

gdufe1538-是男人就上100层-(三维bfs)

Problem Description: 桐老爷和UGO终于来到了名为“是男人就上一百层的塔”的下面,听说大祭司在第100层沉睡.为了题目需要,我把这个塔的层数随机打乱,层数的话大家就忘了前面的100吧,用n*m的一个矩阵来代替.前面提到大祭司在沉睡,所以桐人和尤吉欧希望赶快到达大祭司面前杠正面,但是有些层有整合骑士看守.只有在桐人或者UGO有“Enhance armament”(武装支配术)才可以打败,否则无法从这里通过.他们只可以从当前位置上下左右移动,不能斜着走.从一层走到另一层耗费1个时

【起航计划 007】2015 起航计划 Android APIDemo的魔鬼步伐 06 App-&gt;Activity-&gt;Forwarding Activity启动另外一个Activity finish()方法

Android应用可以包含多个Activity,某个Activity可以启动另外的Activity. 这些Activity采用栈结构来管理,新打开的Activity叠放在当前的Activity之上,当前的Activity停止运行. 当一个Activity停止运行时,Android系统保留其停止前的状态,当用户按下“Back”按键时,栈最上的Activity从栈顶退栈,之前的Activity移到栈顶,显示在屏幕上: 有些时候,当一个Activity启动新的Activity后,不希望把当前Activ

【转载】拥有布局 IE haslayout

找们那知道浏览器有bug,而且Windows上的lE的bug 似乎比太多数浏览器都多.IE/Win的衣现与其他浏览器不同的原因之一是,显示引擎使用一个称为布局(layout)的内部概念.因为布均是一个专门针对显示引擎内部工作方式的概念,所以一般悄况下不需要了解它.但是,布局问题是许多IE/Win显示bug的根源,所以理解这个概念以及它如何影响CSS是有捂助的. 什么是布局Windows 上的IE 使用布局概念来控制元素的尺寸和定位.那些称为拥有布局(have layout)的元素负责本身及其子元