作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一款游戏,让我的角色从一个陆地跳到另一个陆地。我已经把所有事情都做好了,除了我剩下的问题是如果你一直点击屏幕他可以一直跳下去。我想要它,所以他必须先着地才能再次跳跃。
import SpriteKit
import GameplayKit
class GameScene: SKScene, SKPhysicsContactDelegate {
struct PhysicsCatagory {
static let Knight : UInt32 = 0x1 << 1
static let land : UInt32 = 0x1 << 2
}
var Knight = SKSpriteNode()
var land = SKSpriteNode(imageNamed: "CJLand4")
这是我目前让他跳起来的代码:
Knight.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
Knight.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 325))
我在 touchesBegan
下有这个,它增加了引力,一时冲动它可以让他跳跃。但我只希望他每次落地时都能跳一次。如果可以,请帮忙。
最佳答案
您可以检查垂直速度是否为 0,并且 Knight 只有在落地时才会跳跃。这实际上取决于您要寻找的跳跃类型。
if Knight.physicsBody?.velocity.y == 0 { Jump() }
关于ios - Swift:如何让我游戏中的角色只有在落地后才能跳跃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45290346/
我是一名优秀的程序员,十分优秀!