微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

玩家通过平台

如何解决玩家通过平台

播放器功能

@objc func playerFunction(){
    
    player = SKSpriteNode(imageNamed: "Player")
    player.name = "Hero"
    player.size = CGSize(width: 80,height: 80)
    player.physicsBody = SKPhysicsBody(rectangleOf: player.size)
    player.physicsBody?.affectedByGravity = false
    player.physicsBody?.isDynamic = false
    player.physicsBody?.allowsRotation = false
    player.physicsBody!.categoryBitMask = 1
    player.physicsBody!.collisionBitMask = 0
    player.physicsBody!.contactTestBitMask = 2 | 5 | 6 | 7
    player.physicsBody?.veLocity.dx = 0
    player.physicsBody?.veLocity.dy = 0
    player.zPosition = 1
    player.position = CGPoint(x: self.frame.width / 2 - 700,y: self.frame.height / 2 - player.frame.height)
    self.addChild(player)
    
}

平台方法

@objc func platformFunction (){

    platform_One = SKSpriteNode(imageNamed: "Platform")
    platform_One.physicsBody = SKPhysicsBody(rectangleOf: platform_One.size)
    platform_One.physicsBody?.affectedByGravity = false
    platform_One.physicsBody?.isDynamic = false
    platform_One.zPosition = 4
    platform_One.position = CGPoint(x: 1 + self.frame.width / 2 - 570,y: self.frame.height / 2 - 260)
    self.addChild(platform_One)
    
    
    platform_Two = SKSpriteNode(imageNamed: "Platform")
    platform_Two.physicsBody = SKPhysicsBody(rectangleOf: platform_Two.size)
    platform_Two.physicsBody?.affectedByGravity = false
    platform_Two.physicsBody?.isDynamic = false
    platform_Two.physicsBody!.categoryBitMask = 7
    platform_Two.physicsBody!.collisionBitMask = 1
    platform_Two.physicsBody!.contactTestBitMask = 1
    platform_Two.zPosition = 5
    platform_Two.position = CGPoint(x: 1 + self.frame.width / 2 - 420,y: self.frame.height / 2 - 260)
    self.addChild(platform_Two)

上面添加了播放器方法和平台方法代码,即使物理如上所述,播放器也不会降落在平台顶部而是玩家穿过平台。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。