- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想在特定角度给我的 SKSpriteNode
施加力。那么,如何处理我的 CGVector
在特定角度给予力?
我已经搜索过了,但不幸的是没有找到任何好的方法。
我想要实现的目标:
我的 SKSpriteNode
向屏幕移动。顶部有按钮,如 30、45、60。因此,如果用户按下按钮(即该按钮包含“30”),那么我必须以相同的速度将我的 SKSpriteNode
移动到 30 度。
如果你们中有人可以帮助我,请帮助我。
最佳答案
首先,您需要将以度为单位的角度乘以 pi/180 将其转换为弧度
CGFloat angleInRadians = angleInDegrees * M_PI / 180;
然后您可以通过以下方式确定该方向上的矢量分量
CGFloat dx = cosf(angleInRadians);
CGFloat dy = sinf(angleInRadians);
最后用
给 Sprite 施加一个力[sprite.physicsBody applyForce:CGVectorMake(dx*scale, dy*scale)];
scale
决定施加的力的大小。
可选地,您可以将 Sprite 旋转到与其运动方向相同的方向
sprite.zRotation = angleInRadians + offset;
其中 offset
是 Sprite 图像与零度之间的角度差(以弧度为单位)。例如,如果当 zRotation
为零时您的 Sprite 面朝上,则 offset
应为 -M_PI_2
。
关于ios - 如何在 spriteKit 中以特定角度施加力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31294721/
大家好,我试图在 libgdx 中制作这个简单的游戏,一切都很好,直到我注意到我需要施加一个很大的力来让玩家移动一点,有什么方法可以让它需要更少的力吗?这是我渲染播放器的 PlayScreen。` p
我有几个彼此相邻排列的小桨,尺寸约为 50x10,不断地从左到右、从右到左移动,它们也会时不时地随机停止移动并变得静止。有一个球朝他们落下,当击中桨时,如果桨没有移动并且静止,球会从桨上弹开并直接向上
我正在开发一个游戏,在这个游戏中,您要玩杂耍球,为了让球保持在空中,您需要对球施加力。 我在想,如果你触球正下方(180 度)并且最大半径越大,你踢球的力量就越大。例如,如果您以 160 度角和半径
在我的 spritekit 游戏中,我正在努力将风力应用到我的游戏中。我已经通过多种方式实现了这一点。 我尝试的第一种方式是这样的:尝试一个在这段代码中, Sprite 首先按原样被推送,但我无法让它
我是 Unity 新手。 我有 Rigidbody2D,我想为我的播放器添加常量 velocity。我想知道在 Start 或 Update (或 FixedUpate ) 当我在开始时应用速度时一切
我是一名优秀的程序员,十分优秀!