作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的游戏是横向卷轴游戏,因此英雄具有恒定的速度,每次更新都会设置为他的速度。当我用几个“盒子”组成一个楼层时,英雄停在第一个结束和第二个开始的地方。它们大小相同且位于同一 y 轴上,为什么会发生这种情况?
英雄的物理 body :
self.physicsBody = SKPhysicsBody(rectangleOfSize: rect.size, center: center)
self.physicsBody?.usesPreciseCollisionDetection = true
self.physicsBody?.allowsRotation = false
self.physicsBody?.restitution = 0
self.physicsBody?.categoryBitMask = Category.Hero
self.physicsBody?.collisionBitMask = Category.Floor | Category.Hero | Category.Glass | Category.Obstacle
self.physicsBody?.contactTestBitMask = Category.Obstacle | Category.Glass | Category.Collision | Category.Doors | Category.EBullet | Category.Enemy | Category.Explosion | Category.Plyuha | Category.Slime
障碍物的PhysicsBody:
self.physicsBody = SKPhysicsBody(rectangleOfSize: size_sprite)
self.physicsBody?.usesPreciseCollisionDetection = true
self.physicsBody?.restitution = 0
self.physicsBody?.allowsRotation = false
self.physicsBody?.pinned = true
self.physicsBody?.categoryBitMask = Category.Obstacle
self.physicsBody?.contactTestBitMask = Category.Bullet | Category.EBullet
self.physicsBody?.collisionBitMask = Category.Hero | Category.Bullet | Category.EBullet
最佳答案
我将创建一个基于边缘的物理体,它可以拉伸(stretch)屏幕的长度来模拟地板。这应该可以防止玩家停在地板碎片的边缘,因为它是连续的边缘。然后你可以尝试在玩家面前放置任何障碍。
像这样设置物理体:
let startPoint = CGPoint() // fill in the desired x and y for start point
let endPoint = CGPoint() // fill in the desired x and y for start point
self.floor.physicsBody = SKPhysicsBody(edgeFromPoint: CGPoint(x: startPoint.x, y: startPoint.y), toPoint: CGPoint(x: endPoint.x, y: endPoint.y))
对于可能阻止玩家的其他障碍,请尝试通过显示物理实体的实际位置来进行调试。可能会有一些你意想不到的东西阻碍玩家前进。
在viewController中,放入
skView.showsPhysics = true
关于swift - SpriteKit Hero 移动在节点连接上受阻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38660530/
我是一名优秀的程序员,十分优秀!