ios - 将一个球放入一个被困在里面的矩形内,并具有一定的速度和恢复力

标签 ios swift swift2 skshapenode

在此场景中:

let rectangle = SKShapeNode(rectangleOfSize: CGSize(300, 400))
rectangle.fillColor = UIColor.clearColor()
rectangle.strokeColor = UIColor.grayColor()
rectangle.strokeWidth = 10
self.addChild(rectangle)

我想在这个矩形内放置一个球,被困在里面,具有一定的速度和恢复力,当与其中一堵墙碰撞时,它将弹跳并改变矢量方向。

最佳答案

我不是 100% 确定是否可以使用 SKShapeNodes 和物理体来做到这一点,因为物理体将应用于整个形状节点(带中心)。

由于您想让矩形可见,您可以创建一个具有 4 个 SKSpriteNodes 边的 SKSpriteNode 子类,然后将它们塑造为矩形。

或者,您可以在您选择的程序中绘制一个矩形边框,只需确保中心基本上没有任何东西,然后导出为 PNG。不仅仅是用图像创建一个 SKSpriteNode。

  let rectangle = SKSpriteNode(imageNamed: "Rectangle")
  let texture = SKTexture(imageNamed: "Rectangle")
  rectangle.physicsBody = SKPhysicsBody(texture: texture, size: texture.size())
  rectangle.physicsBody?.collisionBitMask = 1

现在,如果您正确绘制了矩形,由于您没有绘制中心,因此它的 4 条边上只会有一个物理体。

您只需创建球并为其指定一个像上面一样的物理体,并具有相同的碰撞位掩码。将其放置在矩形的中心并给它一个脉冲或其他东西。它应该按照您的意愿弹跳而不会离开矩形。

如果您对物理实体不确定,那么您需要阅读一些相关内容,例如 http://www.techotopia.com/index.php/A_Swift_iOS_8_Sprite_Kit_Collision_Handling_Tutorial

关于ios - 将一个球放入一个被困在里面的矩形内,并具有一定的速度和恢复力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34239557/

相关文章:

ios - 从异步调用返回图像

ios - 应该如何为单元测试设置 Swift + Objective-C 项目

swift - 为通用协议(protocol)实现提供具体类型

ios - 启动时的欢迎屏幕

regex - 检查字符串是否与正则表达式模式匹配 Swift 2.2

ios - React-Native:异常 'Your app is missing support for the following URL schemes[#id.apps.googleusercontent.com]'

ios - xcode无法识别我的设备

ios - 带有增量和减量按钮的 TextField

ios - 在 collectionview 单元格内的 ImageView 变得可见后对其进行动画处理

带有条件模板的 iOS NSRegularExpression