codevinsky Posted March 19, 2014 Share Posted March 19, 2014 I've got a ground TileSprite. I've got a player Sprite. The ground TileSprite should not move, ever. But it should collide with player, and enemy sprites. My code currently looks like this:create: function() { game.physics.startSystem(Phaser.Physics.P2JS); game.physics.p2.setImpactEvents(true); game.physics.p2.gravity.y = 500; game.physics.p2.updateBoundsCollisionGroup(); playerCollisionGroup = game.physics.p2.createCollisionGroup(); groundCollisionGroup = game.physics.p2.createCollisionGroup(); background = this.add.tileSprite(0,0,1024,600,'background'); background.autoScroll(-25,0); ground = this.add.tileSprite(0,504,1024,96,'ground'); game.physics.p2.enableBody(ground); ground.body.fixedRotation = true; ground.body.data.motionState = p2.Body.STATIC; ground.autoScroll(-300,0); ground.body.setCollisionGroup(groundCollisionGroup); ground.body.name = 'ground'; ground.body.collides(playerCollisionGroup, function(a, { console.log('ground collided',a,; }); player = game.add.sprite(300,400,'horse'); player.animations.add('run',[0,1,2,3]); player.animations.add('jump',[3]); player.animations.play('run',12,true); game.physics.p2.enableBody(player); player.body.name = 'player'; player.body.setCollisionGroup(playerCollisionGroup); player.body.collides(groundCollisionGroup, function(a, { console.log('player collided',a,; });I get logs of both the ground and the player colliding with the correct bodies, but the player sprite falls through the ground sprite any how. What am I doing wrong? Link to comment Share on other sites More sharing options...
codevinsky Posted March 19, 2014 Author Share Posted March 19, 2014 This is the correct code:create: function() { game.physics.startSystem(Phaser.Physics.P2JS); game.physics.p2.gravity.y = 500; playerCollisionGroup = game.physics.p2.createCollisionGroup(); groundCollisionGroup = game.physics.p2.createCollisionGroup(); enemyCollisionGroup = game.physics.p2.createCollisionGroup(); console.debug('pcg:', playerCollisionGroup); background = this.add.tileSprite(0,0,1024,600,'background'); background.autoScroll(-25,0); ground = this.add.tileSprite(0,504,1024,96,'ground'); game.physics.p2.enable(ground,true); console.debug(ground.body,true); ground.body.fixedRotation = true; ground.body.data.motionState = p2.Body.STATIC; ground.autoScroll(-300,0); ground.body.name = 'ground'; ground.body.clearShapes(); ground.body.setRectangle(1024,96,ground.width/2, ground.height/2); ground.body.setCollisionGroup(groundCollisionGroup); ground.body.collides(playerCollisionGroup); player = game.add.sprite(300,400,'horse'); player.animations.add('run',[0,1,2,3]); player.animations.add('jump',[3]); player.animations.play('run',12,true); game.physics.p2.enable(player,true); player.body.name = 'player'; player.body.setCollisionGroup(playerCollisionGroup); player.body.collides([groundCollisionGroup, enemyCollisionGroup]); },Thanks to @Fishrock123 for helping out. Link to comment Share on other sites More sharing options...
Kratos_SA Posted June 17, 2016 Share Posted June 17, 2016 I ran your code but my tile sprites just fall off the screen? am I missing a declaration for the update? Link to comment Share on other sites More sharing options...
Recommended Posts