- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道如何让联系人代理工作。我确实有接触,但我希望个别砖 block 在被球击中时消失。
我已经用这个碰壁太久了。一个接一个的教程似乎对我毫无帮助。我可能需要采取一些小步骤,但我不确定如何开始。
我已经尝试过 Youtube 上的许多教程以及我可以在网上找到的所有教程。
enum CollisionType: UInt32 {
case ball = 1
case paddle = 2
case walls = 4
case brick = 8
}
class Brick: SKSpriteNode { }
class GameScene: SKScene, SKPhysicsContactDelegate {
let bricks = ["brickPurple","brickGreen", "brickRed"]
let brick = SKSpriteNode(imageNamed: "brickPurple")
let ball = SKSpriteNode(imageNamed: "ball")
let paddle = SKSpriteNode(imageNamed: "paddle")
override func didMove(to view: SKView) {
physicsWorld.contactDelegate = self
physicsBody = SKPhysicsBody(edgeLoopFrom: frame.inset(by: UIEdgeInsets(top: 0, left: 0 , bottom: 0 , right: 0 )))
ball.name = "ball"
ball.size = CGSize(width: 20, height: 20)
ball.position.x = frame.maxX/2
ball.position.y = 70
addChild(ball)
ball.physicsBody = SKPhysicsBody (circleOfRadius: ball.size.width/2)
ball.physicsBody?.restitution = 1
ball.physicsBody?.linearDamping = 0
ball.physicsBody?.friction = 0
ball.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 20))
ball.physicsBody?.contactTestBitMask = ball.physicsBody!.collisionBitMask
paddle.name = "paddle"
paddle.size = CGSize(width: 100, height: 20)
paddle.position.x = frame.maxX/2
paddle.position.y = 50
paddle.physicsBody = SKPhysicsBody(rectangleOf: paddle.size)
paddle.physicsBody?.isDynamic = false
let brickWidth = brick.frame.width
let brickHeight = brick.frame.height
for i in stride(from: view.bounds.minX + brickWidth, to: view.bounds.maxX - brickWidth, by: brickWidth ) {
for j in stride(from: view.bounds.minX + brickHeight + 375, to: view.bounds.maxX + 200, by: brick.frame.height + 0) {
let brickType = bricks.randomElement()!
let brick = Brick(imageNamed: brickType)
brick.position = CGPoint(x: i, y: j)
brick.physicsBody = SKPhysicsBody (rectangleOf: brick.size)
brick.physicsBody?.isDynamic = false
brick.name = "brick"
addChild(brick)
}
}
}}
我之前有一些代码用于 func didBegin(_ contact: SKPhysicsContact)
,但我刚刚决定重新开始。
最佳答案
这不是您问题的具体答案,但如果您按照以下答案中的步骤(尤其是第一个),我认为您的代码将正常工作:
我的碰撞和接触分步指南: https://stackoverflow.com/a/51041474/1430420
以及碰撞和接触测试位掩码指南: https://stackoverflow.com/a/40596890/1430420
操纵位掩码以关闭和打开单个碰撞和接触。 https://stackoverflow.com/a/46495864/1430420
关于swift - SKPhysicsContactDelegate,碰撞无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58468569/
我正在尝试使用 Spritekit 在 Swift 中编写游戏。目的是带着他的角色迎面而来的矩形逃跑。现在我在 SKPhysicsContactDelegate (didBegin ()) 方法中犯了
我想知道如何让联系人代理工作。我确实有接触,但我希望个别砖 block 在被球击中时消失。 我已经用这个碰壁太久了。一个接一个的教程似乎对我毫无帮助。我可能需要采取一些小步骤,但我不确定如何开始。 我
我有以下代码: 在我的场景中: static const uint32_t enermyCategory = 0x1 << 0; static const uint32_t fatherCat
我一直在尝试向我的 GameScene 添加联系人委托(delegate): self.physicsWorld.contactDelegate = ContactManager() 但是,我通过将联
我可以模拟 SKPhysicsContact 对象以输入到 -(void)didEndContact:(SKPhysicsContact *)contact 方法吗?或者还有其他可以在这里利用的技术吗
我的 Sprite 应该相互接触并打印到控制台,但是,一个 Sprite 走到另一个 Sprite 后面,并且它们实际上并没有接触。不用说,没有任何内容被打印到控制台。 我尝试在函数中使用许多不同“类
我正在尝试使用 Spritekit 在 Swift 中编写游戏。目的是带着他的角色迎面而来的矩形逃跑。现在我在 SKPhysicsContactDelegate (didBegin ()) 方法中犯了
在我的 .h 文件中,我添加了委托(delegate): @interface GameScene : SKScene 在我的 .m 文件中有这个 -(void)didMoveToView:(SKVi
我正在尝试解决 SKPhysicsContactDelegate 碰撞检测中遇到的问题。我有两个节点,nodeA 和nodeB,nodeA 在屏幕上固定,而nodeB 可以由用户手指在屏幕上拖动。 N
我正在尝试自己制作 flappy bird。一切正常,但现在我已经添加了 CategoryBitMasks 和所有这些东西,每次我尝试添加这段代码时: self.physicsworld.contac
我是一名优秀的程序员,十分优秀!