我想使用applyImpulse方法在基于physicsBody旋转的方向上移动physicsBody。例如,physicsBody是一个正方形,我称之为“移动”,它会施加一个脉冲使其垂直向上移动。然后我调用一个方法将physicsBody向右旋转45度。如果我再次调用“移动”方法,physicsBody将沿对角线向右和向上移动。 最佳答案 我建议您遵循SpriteKit的坐标和旋转约定。具体来说,您的Sprite图像应该以零度(默认值)面向右,正值是逆时针旋转。也就是说,这是一种在Sprite面向的方向上施加脉冲的方法://Spe
正如您在使用SpriteKit时可能知道的那样,applyImpulse并非在所有屏幕上都能正常工作。在iPhoneSE上,我的球移动得非常快,但在iPadPro2ndgen上,球移动得非常慢。有没有一种方法可以使它在所有屏幕上都相等,与屏幕宽度之类的东西相比?例如,我希望我的球在所有设备上在5秒内穿过屏幕,我会使用什么公式?我已经测试了屏幕尺寸和我的applyImpulse使球移动到屏幕边缘的时间之间的关系:注意:每秒点数的计算方法是半屏尺寸除以是时候移动了。该图显示每秒像素数随着屏幕尺寸的增大而降低。如何更改我的applyImpulse以在所有屏幕上工作?(不包括专门为每个设备制作
我有一个sprite节点,它响应于施加在其连接的physicsBody上的重力而出现和下落。很好。现在,我想使用applyForce在它下落时向某个方向稍微插入它。不幸的是,无论我将physicsBody.mass或physicsWorld.gravity做得多小,或者我将applyForce向量做得多大--applyForce向量似乎被忽略了。当我注释掉self.physicsWorld.gravity行时,我看到applyForce正在工作正如预期的那样如何在施加重力的同时使用applyForce实现“插入”物理体?这是我的.h//GameScene.h#import@interf
我对Swift有点陌生。我有这个问题,SpriteNode“Ball”没有对touchesBegan方法中的applyImpulse命令使用react。整体physicsBody工作得很好,重力,恢复等。但是当我使用applyImpulse时什么也没有发生。这是代码:varball=SKSpriteNode()overridefuncdidMoveToView(view:SKView){/*Setupyourscenehere*/self.physicsWorld.gravity=CGVectorMake(0.0,-9.81)//Addtheballball=SKSpriteNode(
我怎样才能在Sprite被施加这样的冲动后停止它:player.physicsBody!.applyImpulse(CGVectorMake(50,0))是否有可能使运动在一段时间内减少?(2秒) 最佳答案 为了停止physicsBody的运动,您可以像这样使用“速度”变量://thiswillresetthex,ybasedvelocitytoahalt/stopplayer.physicsBody?.velocity=CGVectorMake(0,0)//ifyouwouldalsoliketostopanyrotationth