当前位置: 首页 > 知识库问答 >
问题:

改变节点速度后的错误运动方向

汤承德
2023-03-14

节点(汽车)撞上“加速”型障碍物后,应该加速。相反,它变慢并开始偏离直线运动。我检查了代码是否正确执行,我假设问题是节点的坐标系或类似性质的东西。

print(car.physicsBody?.velocity)
car.physicsBody?.velocity.x += 0.2
print(car.physicsBody?.velocity) 
SCNVector3(x: 0.245669901, y: -0.120455861, z: 0.119086474) and
SCNVector3(x: 0.445669889, y: -0.120455861, z: 0.119086474).

所以汽车的x分量确实增加了,但不会导致他向所需的方向移动。就像我说的,世界上的X光确实指向了我希望汽车继续行驶的方向。在增加速度之前,汽车也在向正确的方向移动。

我想明白为什么增加汽车的速度会减慢它的速度,为什么有时会使它稍微向右/向左移动,就好像速度矢量不像以前那样应用在相同的位置上。

我以前确实试着在车的中心施加一个力,代码是:

car.physicsBody?.applyForce(SCNVector3(0.2, 0, 0), at: car.presentation.position, asImpulse: true)
car.physicsBody?.applyForce(SCNVector3(0.2, 0, 0), asImpulse: true),

共有1个答案

刘博雅
2023-03-14

我不熟悉SceneKit。但是,如果在向量的一个分量中添加一个值,而不改变其他分量,那么向量的方向就会改变。

如果你想使向量长一个系数,而不改变它的方向,你必须把所有的分量乘以这个系数。

 类似资料:
  • 我试图通过避免划掉重复的素数倍数来改进埃拉托斯特尼的基本筛分算法,但结果比我预期的要糟糕 我已经实现了两种返回范围内质数的方法[2… max) 运行< code > sieve 22 max _ Basic(100),查看一些倍数是否大于1(例如:< code>45,75,63) 然后,我尝试通过使用存储每个数字()的数组来改进。 当遍历素数p的倍数时,我不会划掉具有< code>spd[mul]

  • 本文向大家介绍MySql 修改密码后的错误快速解决方法,包括了MySql 修改密码后的错误快速解决方法的使用技巧和注意事项,需要的朋友参考一下 设置好密码后,使用数据库时出现如下错误: ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo re executing this statemen

  • 我在express+Socket.io中使用了以下代码 我使用了以下代码: var express=require('express.io'); var app=require('express.io')(); var server=require('http').server(app); var io=require('socket.io')(server); 有没有人知道如何解决这个错误?

  • 我目前正在开发一个应用程序,它应该通过设备的加速度来计算速度。为了实现这一点,我使用传感套件。应用程序记录用户运动的数据并将其保存到本地存储器。当用户停止记录时,可以按时间以速度绘制收集的加速度(加速度计的每个轴有三个曲线图)。 检测工具包使用CMMotionManager的startAccelerometerUpdates获取加速度。为了计算速度,我做了一些信号处理和加速度的积分(然后乘以9.8

  • 我正在尝试官方的5分钟快速入门大约角2的打字稿。我遵循了所有步骤,当我运行时,它确实在我的火狐浏览器上弹出了预期的消息。 但是,当我检查控制台时,我发现了错误消息: 我不知道这是否与我之前在项目根文件夹上运行时收到的警告消息有关: 有人能告诉我我的方法出了什么问题吗?更详细的控制台输出如下所示:

  • 问题内容: 对于那些来自PHP背景的人来说,杀死节点并在每次代码更改后重新启动它的过程似乎非常繁琐。使用节点启动脚本以保存代码更改后自动重新启动节点时,是否有任何标志? 问题答案: forever模块具有多个node.js服务器的概念,并且可以启动,重新启动,停止和列出当前正在运行的服务器。它还可以监视文件更改并根据需要重新启动节点。 如果尚未安装,请安装: 安装后,调用命令:使用该标志监视文件的