首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雪碧包不同截面的重力

雪碧包不同截面的重力
EN

Stack Overflow用户
提问于 2014-03-18 23:31:32
回答 2查看 1.1K关注 0票数 3

我正在建造一个空中鸟游戏,一半的水平在水面之上,另一半在水下。

如果你的鸟是在空气中,有规律的重力,当你敲打,一个冲动是直接上升。

如果你的鸟在水里,重力应该在负方向(上升)并且减少。当你敲击的时候,一种冲动就会被施加到直线下降的状态。

我能在不同的地方设置一个场景的重力吗?

我曾想过,如果鸟在水里,我可以用计时器来施加负向力,但它到处都是。

而且,我不能仅仅改变整个场景的重力,因为场景中还有其他的SKSprite物体应该对它们施加不同的重力(例如,在空中的一只鸟在拍打时应该拍打,而一只跳入水中的鸟应该同时游下去)。

EN

回答 2

Stack Overflow用户

发布于 2014-03-19 03:19:25

世界各地的重力都是一样的,所以你不可能有不同的重力区域。

然而,仅仅因为SpriteKit没有为某些事情提供更高层次的抽象,并不意味着它很难为自己所做。当场景的update:方法运行时,SpriteKit的恒定重力对物体做同样的事情,就好像你对它施加了相同的大小和方向的力。

所以,在你的update:方法中,你可以在场景的上下两部分做不同的重力。

  1. 检查你的鸟的y坐标。
  2. 如果它低于任何分离水和空气的阈值,使用applyForce:施加向上的力量。如果它在水面上,施加向下的力量。
  3. 因为这发生在每一个框架,鸟将加速下降时,在水面之上,向上时,在下面,你应该会看到一个良好的失去动量效应后,刚刚过渡。

你需要调整你的力量的大小,直到它的行为正好适合你想要的游戏。当你这么做的时候,要知道applyForce:的单位是SKPhysicsWorld引力的150倍(因为可能是苹果的缺陷),并且取决于你的物理体的质量(因为牛顿的第二定律)。

票数 2
EN

Stack Overflow用户

发布于 2014-03-19 01:44:12

我对你如何做到这一点有一个想法:

  1. 为上半部分和下半部分制作两个矩形(一个代表水,一个代表空气)。
  2. 在每个矩形上创建一个物理体来模拟你想要的重力。
  3. 将这些矩形设置为触点分层。
  4. 将其他对象添加到它们应该在的矩形世界中。
  5. 若要处理主鸟:-当锚点(可能设置在中间)与其中一个矩形接触时,请将主玩家的联系人委托从第一个主体更改为接触事件中的第二个主体。

这意味着你有两个不同重力的世界,主角的重力在一个新世界的触点之间切换(通过中间)。

祝好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22493277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档