phaser P2引擎设置碰撞组

phaser的P2引擎设置碰撞组

版本:phaser 2.6.2
引擎: P2物理引擎
场景:实现组内创建精灵以及组与游戏角色IP碰撞

 this.create = function() {
        
        // 背景图片
        game.add.tileSprite(0, 0, 800, 800, 'background')
        // 设置游戏世界大小
        game.world.setBounds(0, 0, 800, 800)
        // 开启物理系统
        game.physics.startSystem(window.Phaser.Physics.P2JS)
        // 为世界启用碰撞事件,否则不会收到碰撞回调
        game.physics.p2.setImpactEvents(true)
        // 开启边界碰撞检测: 左边,右边,上边,下边,碰撞检测
        game.physics.p2.setBoundsToWorld(true, true, true, true, false)


        // 创建碰撞组
        let playerCollisionGroup = game.physics.p2.createCollisionGroup()
           //食物
        let foot5GroupCollisionGroup = game.physics.p2.createCollisionGroup()
		//更新碰撞组事件
        game.physics.p2.updateBoundsCollisionGroup()


        // 食物
        foot5Group = game.add.group()
        foot5Group.enableBody = true
        foot5Group.physicsBodyType = window.Phaser.Physics.P2JS
		
		//创建组内精灵
        for(let i = 0 ; i < 100 ; i++){
            let score5 = foot5Group.create(game.world.randomX,game.world.randomY,'atari')
            score5.scale.set(0.1)
            // 触碰范围
            score5.body.setCircle(5)
            // 绑定碰撞组
            score5.body.setCollisionGroup(foot5GroupCollisionGroup)
            // 5分组与玩家碰撞
            score5.body.collides([foot5GroupCollisionGroup, playerCollisionGroup])
        }

        
        // player
        player = game.add.sprite(game.world.centerX, game.world.centerY, 'player')
        player.scale.set(0.3)
        game.physics.p2.enable(player)
        // 触碰范围
        player.body.setCircle(28)
        // 不旋转
        player.body.fixedRotation = true
        player.body.setCollisionGroup(playerCollisionGroup)
        // 碰撞参数: 碰撞目标,处理方法,this 
        // 食物
        player.body.collides(foot5GroupCollisionGroup, _hitScore5, this)
        

        // 键盘输入
        cursors = game.input.keyboard.createCursorKeys()

    }

笔记,便日后查阅,如有高见,望不吝指点!非常感谢!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值