Tag: 物理

二维游戏物理资源

我正在寻找一些很好的参考资料来学习如何在游戏中模拟2D物理。 我不是在找一个图书馆来为我做 – 我想思考和学习,不要盲目地使用别人的作品。 我做了一些Googlesearch,当我在GameDev等上find一些教程时,我发现他们的教程很难理解,因为它们要么写得不好,要么假设一定程度的math理解,还没有。 具体来说,我正在寻找如何build模一个自上而下的二维游戏,有点像坦克战斗游戏 – 我想准确地build模(除其他外)加速度和速度,“组件”的热积累,模型和水平边界,以及导弹式武器。 网站,推荐的书籍,博客,代码示例 – 如果能帮助理解的话,都是值得欢迎的。 我正在考虑使用C#和F#来构build我的游戏,所以使用这两种语言中的代码示例都很好,但是不要让语言停止发布一个好的链接。 =) 编辑 :我不是说我不懂math – 我不知道我需要知道什么,以了解所涉及的系统,并不真正知道如何find资源会以一种可以理解的方式教给我。

龙格库塔(RK4)整合游戏物理

Gaffer on Games有一篇关于使用RK4集成获得更好游戏物理效果的文章 。 实现很简单,但是背后的math让我困惑。 我理解概念层面的导数和积分,但很长一段时间没有操纵方程。 这是Gaffer实施的主要原因: void integrate(State &state, float t, float dt) { Derivative a = evaluate(state, t, 0.0f, Derivative()); Derivative b = evaluate(state, t+dt*0.5f, dt*0.5f, a); Derivative c = evaluate(state, t+dt*0.5f, dt*0.5f, b); Derivative d = evaluate(state, t+dt, dt, c); const float dxdt = 1.0f/6.0f * (a.dx + 2.0f*(b.dx + c.dx) + […]

进行信号频谱分析时的傅立叶变换(FFT)单位

我的问题与信号的频谱分析结果的物理意义有关,或者将信号投射到FFT中,并使用合适的数字包来解释出现的结果, 特别: 取一个信号,说一个时变电压v(t) 把它扔进一个FFT(你得到一个复数序列) 现在取模数(abs)并将结果平方,即| fft(v)| ^ 2。 所以你现在在y轴上有实数 – 我应该把这些谱系数称为什么? 使用采样分辨率,您遵循食谱配方,并将频谱系数与频率相关联。 在这个点上,你有一个频率为g(w)的频率在x轴上, 但在y轴上有什么物理单位? 我的理解是,这个频谱显示了电压信号中存在多less不同的频率 – 它们是频谱系数,它们是重构原始信号所需的各种频率的正弦和余弦系数。 所以第一个问题是, 这些频谱系数的单位是多less? 这个问题的原因是频谱系数可能很小而且很大,所以我想用一个dB量表来表示它们。 但要做到这一点,我必须做出select: 要么我使用20log10 dB转换,对应于现场测量,如电压。 或者我使用10log10 dB转换,对应于电能等能量测量。 我使用哪种缩放比例取决于单位是什么。 任何灯光在此将不胜感激!

游戏networking物理碰撞

如何模拟两个客户控制的车辆在一个典型的客户/服务器networking游戏设置中(明智地)碰撞? 我没有阅读这个着名的博客文章如何做分布式networking物理(一般没有传统的客户端预测),但这个问题是具体如何处理拥有对象的冲突。 例 假设客户端A比服务器提前20ms,客户端B比服务器提前300ms(同时计算延迟和最大抖动)。 这意味着,当两辆车相撞时,两个客户将看到另一个320毫秒后面 – 与另一辆车的速度相反的方向。 在瑞典高速公路上的直接对比意味着16米/17.5码的差距! 什么不要尝试 实际上我们不可能外推这些位置,因为我也有非常复杂的车辆,所有车辆都有接头和车身,而这些车辆又有线性和angular度位置,速度和加速度,更不用说用户input的状态了。

如何计算反弹angular度?

我玩了一段时间,但我根本无法弄清楚。 我制造了一个能发射导弹的坦克,当导弹击中墙壁时,我希望它们反弹,但我希望它们反弹到正确的angular度。 现在我没有任何障碍,导弹刚从我做的viewportRectangle外面反弹viewportRectangle 。 我正在寻找相当先进的解决scheme吗? 有一个相对简单的方法来做到这一点?

在科学环境中编程的做法?

背景 去年,我在一所大学的物理研究小组实习。 在这个小组中,我们主要使用LabVIEW编写程序来控制我们的设置,进行数据采集和分析数据。 对于前两个目的来说,这个工作相当不错,但对于数据分析来说,这是一个真正的痛苦。 最重要的是,每个人都是自学成才的,所以编写的代码通常是相当混乱的(难怪每个博士都决定从头开始重写所有的东西)。 由于IT部门严格的软件和networking规定,版本控制是未知的,不可能build立。 现在,事情确实出乎意料地好,但是自然科学的人们如何做他们的软件开发呢? 问题 一些具体问题: 你用什么语言/环境开发科学软件,尤其是数据分析? 什么库? (例如,你用什么绘图?) 是否有没有任何重要的编程背景的人的培训? 你有什么像版本控制和错误跟踪? 你会如何去努力创造一个体面的编程环境,而不是在个别科学家的方式上太多(特别是物理学家是固执的人!) 到目前为止的答案总结 (或者我的解释)到目前为止:( 2008-10-11) 似乎是使用最广泛的语言/软件包: LabVIEW的 python 与SciPy , NumPy , PyLab等(参见Brandon的答复下载和链接) C / C ++ MATLAB 几乎所有的受访者都使用版本控制; 错误跟踪和其他过程是非常不常见的。 软件木工课程是向科学家教授编程和开发技术的好方法。 如何改善事情? 不要强迫人们遵守严格的协议。 build立一个自己的环境,并向他人展示好处。 帮助他们开始使用版本控制,错误跟踪等。 回顾其他人的代码可以帮助,但请注意,不是每个人都可以欣赏这一点。

为什么我的球消失?

请原谅这个有趣的标题。 我创build了一个200个球弹跳和碰撞的小图示,两个都在墙上和对方。 你可以看到我目前在这里: http : //www.exeneva.com/html5/multipleBallsBouncingAndColliding/ 问题是,每当他们相互碰撞,他们消失。 我不知道为什么。 有人可以看一看,帮助我吗? 更新:显然球数组有球坐标的NaN。 下面是我推球到arrays的代码。 我不完全确定坐标是如何得到NaN的。 // Variables var numBalls = 200; // number of balls var maxSize = 15; var minSize = 5; var maxSpeed = maxSize + 5; var balls = new Array(); var tempBall; var tempX; var tempY; var tempSpeed; var tempAngle; var tempRadius; var tempRadians; […]

Java堆空间内存不足

我的应用程序目前消耗相当多的内存,因为它正在运行物理模拟。 问题在于,在第五十一次模拟中,java通常会因为内存空间不足而抛出一个错误(我的程序最终会运行数千次模拟)。 有没有反正我不能只增加堆空间,但修改我的程序,以便在每次运行后清空堆空间,以便我可以运行任意数量的模拟? 谢谢 -编辑- 多谢你们。 事实certificate,模拟器软件在每次运行后都没有清除信息,并且我将这些运行全部存储在数组列表中。

iOS 7 Sprite Kit释放内存

我正在构build一个针对新iOS 7和Sprite Kit的iOS游戏,使用发射器节点和物理来增强游戏性。 在开发应用程序的时候,我遇到了一个严重的问题:创build你的场景,节点,效果,但是当你完成并且需要返回到主屏幕时,你如何释放这些资源分配的所有内存? 理想情况下,ARC应该释放一切,应用程序应该回到创build场景之前的内存消耗级别,但这不是发生的情况。 我添加了下面的代码,作为视图的dealloc方法,它绘制场景并负责在closures(删除)时删除所有内容: – (void) dealloc { if (scene != nil) { [scene setPaused:YES]; [scene removeAllActions]; [scene removeAllChildren]; scene = nil; [((SKView *)sceneView) presentScene:nil]; sceneView = nil; } } sceneView是一个UIView,它是场景的容器 场景是SKScene类的扩展,创build所有SKSpriteNode对象 我非常感谢在这个问题上的任何帮助。

宇宙射线:他们将会影响一个节目的概率是多less?

我又一次在devise审查中,遇到了一个主张,即一个特定情景的概率是“低于宇宙射线的风险”,影响到了这个节目,而且我想到我并没有最清楚的想法是什么概率是。 “由于2 -128是340282366920938463463374607431768211456中的1,所以我认为我们有机会在这里抓住我们的机会,即使这些计算结果是几十亿的因数……我们对于宇宙射线的风险更大把我们搞砸了,我相信。 这个程序员是正确的吗? 宇宙射线撞击电脑并影响程序执行的可能性是什么?