Search the Community

Showing results for tags 'p2'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • HTML5 Game Coding
    • News
    • Game Showcase
    • Facebook Instant Games
    • Coding and Game Design
  • Frameworks
    • Phaser 3
    • Phaser 2
    • Pixi.js
    • Babylon.js
    • Panda 2
    • melonJS
    • Haxe JS
    • Kiwi.js
  • General
    • General Talk
  • Business
    • Collaborations (un-paid)
    • Jobs (Hiring and Freelance)
    • Services Offered

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Website URL





Found 333 results

  1. I'm currently using p2 to move a ship in a similar way as shown in the image above (Note: the demo above only looks like it works, but it actually moves in basically any random direction except the one is facing) The problem number one is the sprite of the ship. The angle "cero" seems to be by default facing up in p2, but in my sprite it's not quite looking up. The second issue comes with the "snapping". I wan't to make the ship always face either 45degrees, -45degrees, 135degrees or -135degrees. This was the idea the hole time. I'm thinking that maybe I'm over-complicating myself, and I should have just make the sprite flip and change the direction at once, but now that I've seen how it looks like when the sprite "slowly rotates" from one direction to the other, I would like to achieve the same result! This is my code so far on create() //create player player = game.add.sprite(,, 'ship'); //enable player physics game.physics.p2.enable(player); player.body.collideWorldBounds = true; player.body.angle = (Math.PI/4); // By default the ship will collide with the World bounds, // however because you have changed the size of the world (via layer.resizeWorld) to match the tilemap // you need to rebuild the physics world boundary as well. The following // line does that. The first 4 parameters control if you need a boundary on the left, right, top and bottom of your world. // The final parameter (false) controls if the boundary should use its own collision group or not. In this case we don't require // that, so it's set to false. But if you had custom collision groups set-up then you would need this set to true. game.physics.p2.setBoundsToWorld(true, true, true, true, false); /* Player animations version 1.0 normal: the player is in first frame. May as well be not moving. begin_fly: the player is begining to fly. fly: the player is flying. */ player.anchor.set(0.5, 0.5);on update() if (game.input.keyboard.isDown(Phaser.Keyboard.LEFT)) { player.body.rotateLeft(100); } else if (game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)) { player.body.rotateLeft(-100); } else { player.body.setZeroRotation(); console.log(player.angle); } player.body.thrust(400); //MOVE FOWARD CONSTANTLYTLDR: The code does the trick okey so far but: 1. The player is facing a wrong direction 2. Once you stop pressing left or right, the player will remain in whathever angle it was left, instead of "snapping" to a 45degree angle. Any idea, though, recomendation, etc. would be higly appreciated! :·3
  2. PrizrakPro

    Define a collision surface

    There is an object with 6 surfaces. Created with the help of loadPolygon. How can I determine the surface, which the object encountered? Sorry, I do not speak English.
  3. So I have player and walls as material. Wall collision is made in Tiled polylines. How I can trigger event every time, when player collides to walls? this.walls =, 'Object Layer 1', true); for (this.wall in this.walls) { this.walls[this.wall].setMaterial(this.wallMaterial); } this.layer1 ='Tile Layer 1'); this.collision ='Object Layer 1');I tried to set postbroadphase callback like in example, but it is not working. I have tried to set collision to wall and collision. But it gives just error., this);restart: function (body1, body2) {if ((body1 === this.player && body2 === this.collision) || (body2 === this.player && body1 === this.collision))
  4. Conqarous

    Add Polygon (P2)

    Hey, I'm trying to add a custom collision polygon for a hexagon. I've measured the corners of my hexagon in illustrator: 28, 055,1655,4828,00,480,16 When I try to implement it:game.physics.p2.enable(hexagon, true);hexagon.body.clearShapes();hexagon.body.addPolygon( {} , [[28,0],[55,16],[55,48],[28,0],[0,48],[0,16]]);The collision polygon is not visible at all (in debugger). I've never tried adding a custom polygon so I have no idea what I'm doing wrong. Thanks.
  5. Video of issue: Background should change when zone and gift are overlapped but setPostBroadphaseCallback fire event on wrong time. I think It happens maybe because zone looks like a rectangle... This is code for the video you see above:
  6. The best example I've found of what I'm trying to achieve is this - However, instead of a car I have a tank, so the movement should be more... tankish, without this front-wheels-turning effect. But this is not a problem. The problem is that my tank's movement looks more like a boat on a water movement. I press UP for acceleration and when I press LEFT or RIGHT it still moves in the same direction for a while, like drifting. And if I release UP button and press LEFT or RIGHT again it drifts as well, without taking into account, that he has turned 90 degrees already. Looks awful in terms of a tank behaviour. In other words, I want my tank to stay "on track" while turning, without such huge drift (or asteroid in space) effect. I suppose this is something I should do in update section. Here is what I have there for now: if (cursors.left.isDown) {tank.body.angularVelocity = -0.75;} else if (cursors.right.isDown) {tank.body.angularVelocity = 0.75;} else {tank.body.setZeroRotation();} if (cursors.up.isDown) {tank.body.thrust(120);} else if (cursors.down.isDown) {tank.body.reverse(70);} else {tank.body.damping = 0.8;}cursors = game.input.keyboard.createCursorKeys(); And a few more, not related to main topic, questions: What kind of P2 library Phaser is using? Is it the same as in the example I've provided in the beginning? Is it technically possible in Phaser to calculate collision angle between shell and an object, e.g. another tank? Thank you.
  7. when I exit from full screen my player (with its own collision group) stops rebounding against the world edges i've tried various combinations of these with no luck;,0,480,32*11*10) // or ...// this.layer1.resizeWorld();, true, true, true,true)thanks for any advice was also mentioned here by somebody else
  8. jmp909

    "overlap" on p2 tilemap

    sorry for the double-posting. forum was playing up! i'll close this one
  9. jmp909

    "overlap" on p2 tilemap

    I have a tilemap and i want the tiles on one layer to be collectible. converting it all to sprites causes too much slowdown I manage to get p2 collisions but the problem with the (unoptimized) tilemap conversion is there's no link between the physics body and the tile it represents var collectibles =, this.layer1,true,false)just returns p2 bodies and no relevant tile data Is there a way to get the tile related to a p2 body? i ended up cheating and doing this. but it's not perfect...., this.player.position.y,32,32,this.layer1), this.player.position.y-overlap,32,32,this.layer1), this.player.position.y-overlap,32,32,this.layer1), this.player.position.y+overlap,32,32,this.layer1), this.player.position.y+overlap,32,32,this.layer1)thanks for any suggestions J
  10. Hi guys, I just wrote a small plugin that enables loading a JSON file generated with PhysicsEditor directly in Panda.js+P2 physics engine. The main goal of this project is to facilitate the process and to provide an efficient the workflow to make great games in Panda.js: You can find the download on Github here: Have a look at the live demo in Panda fiddler here: Requirements: Panda.js frameworkP2 plugin for panda.jsA working version of PhysicsEditor ( Instructions: Firstly you have to import the custom exporter into PhysicsEditor. This enables the program to export the physics settings of your choice in a workable JSON notation. Copy the exporter folder in this repository to your local harddrive and link the program to it (see:, at the bottom of the page). Import your personal images in PhysicsEditor and create all the settings you need in second. (Have a look at some of the great tutorials here: the settings you just generated with the custom exporter Panda-p2 (JSON).Import the JSON in Panda like so:game.module( 'game.main').require( 'plugins.p2', 'plugins.pe_loader').body(function() { game.addAsset('banana.png'); game.addAsset('physics.json'); /* this file is a JSON that looks like this: { "banana": { "mass": 2, "gravityScale": 1, "damping": 0, "angularDamping": 0, "shapes": [ { "type": "POLYGON", "collisionGroup": 1, "collisionMask": 65535, "polygon": [ [98, -0.5] , [106, 0.5] , ...... ] } ] } , ... } */ game.createScene('Main', { backgroundColor: 0xe1d4a7, init: function() { physics = game.getJSON('physics.json'); //Create world = new game.World({gravity: [0, 5]}); = 100; //now add some fruit var fruit = new game.P2Sprite('banana.png', physics.banana, game.system.width/2, game.system.height/2); fruit .addTo(this.stage); }); });Enjoy!
  11. fedora

    Trouble With Ground

    I am having difficulty having the ground stop any object other than player (not even quite sure why player stops). The other object(s) fall straight through. I thought it would be a simple as creating another collision group, but when I do so the game does not run. Here is what I am trying --- create: function () { this.physics.startSystem(Phaser.Physics.P2JS); this.physics.p2.setImpactEvents(true); this.physics.p2.gravity.y = 1200;, 0, 2000, 600);//(x, y, width, height) this.physics.p2.setBoundsToWorld(true, true, false, true, false); this.physics.p2.friction = 5; clouds = this.add.tileSprite(0, 0, 2048, 600, 'clouds'); ground = this.add.sprite(,,'ground'); this.physics.p2.enable(ground); ground.body.static=true; player = this.add.sprite(350, - 150, 'player'); this.physics.p2.enable(player, false); player.body.setCircle(22); player.body.fixedRotation = true; player.body.mass = 4; = 'player'; enemy = this.add.sprite(350, - 450, 'enemy'); this.physics.p2.enable(enemy, true); enemy.body.setCircle(22); enemy.body.fixedRotation = true; enemy.body.mass = 4; var playerCollisionGroup = this.physics.p2.createCollisionGroup(); var enemyCollisionGroup = this.physics.p2.createCollisionGroup(); var groundCollisionGroup = this.physics.p2.createCollisionGroup(); player.body.setCollisionGroup(playerCollisionGroup); enemy.body.setCollisionGroup(enemyCollisionGroup); ground.body.setCollisionGroup(groundCollisionGroup); player.body.collides(enemyCollisionGroup, this.destroyEnemy, this); enemy.body.collides(playerCollisionGroup); enemy.body.collides(groundCollisionGroup);
  12. Hey all! So i've been working on a topdown style game using the P2 physics system. I've really enjoyed working with Arcade physics, but needed to switch to P2 to utilize polygon body shapes and polyline world collision maps. I'm trying to implement a "pit" object and currently have things working as I'd like (collision-wise) with the player in the following setup: - The pit is an object with a polygonal body I define in tiled and import into the game. - The pit body shapes are set as sensors to disable default P2 collision behavior. - When the player contacts the "pit" shape its velocities are stopped and it enters a flail state on the edge of contact. - If the players flail timer runs out it will fall into the pit. What I'm having trouble with is figuring out how to determine the correct angle for the player to fall (into the pit) once the flail timer runs out. The player has 8 way movement and the pits are generally laid out as polygonal shapes with right angles. I looked around the boards and found talk of getting the centers of mass for the objects and calculate the vector angle between them and thought this might work, but can't seem to find a way to make it happen. I thought if I could get some point where the bodies/shapes collided I could jut calculate the angle between the player origin and the collision point, but can't find any way to actually get this point. Is this data available? Am I going about this completely wrong?
  13. Cawrtz

    Debug p2 constraints

    Hello, I would like to know if it is possible to visually debug constraints when using P2JS (springs, revoluteconstraints, distanceconstraints, etc.) I found this image of box2d debug to illustrate what I mean Thanks in advance for any advice!
  14. ekeimaja

    Function for single mouse click

    Now I managed to get moving with mouse working. Now I am creating jumping, which is made by pressing left mouse button. How can I make my sprite to jump only ONCE, when left mouse button is clicked? I explain this kind of procedure: When you press left button of your mouse ONCE. I mean once when you press left mouse button with your index finger and then release it. LIke you clicked the link of this thread. When you click, sprite jumps ONCE and then falls back to floor. Not jump twice, not begin to flow on air. Just jumps once. Please, read this post once again before replying to this, so you fully understand my problem. Because I have seen too many threads on these forums where have been asked help i.e. for p2 physics, and somebody has answered with arcade physics code.
  15. I am making a spaceship game, to be more optimized I want to avoid calculing collisions when are far away from the player. I tried doing: 1) enemy.body.enable = false;2) Also this doesn't work. Because I never set it to true:[0].sensor = false;3) Kill and revive them: it's not the best solution, because I want them to change positions. Nothing seems to work. What can I do? This is a part of my code for collisions in p2: this.body.setCollisionGroup(enemyCollisionGroup);this.body.collides([bulletCollisionGroup, playerCollisionGroup, enemyCollisionGroup, asteroidCollisionGroup], null );this.body.onBeginContact.add( this.startConstantDamage, this );this.body.onEndContact.add( this.endConstantDamage, this );Thanks
  16. smatthews1999

    Simple P2 Question

    Here's my question. I want to make a P2 body move in the direction it is already pointing. I tried moveUp(), moveDown(), etc. but they (not surprisingly) only go up or down. I tried thrust() but it does not seem to work unless it is being applied repeatedly.. as in the Update section. Just for the heck of it I tried this.... for (var i = 0; i < 500; i++) mysprite.body.thrust(500); and it did what I want, but I feel that this is probably not the way I should do this. Is there a better way? Thanks,Sam
  17. dussman

    P2 physics flip body orientation

    HI, I'm making a game with P2 Physic and I'm struggling with a little problem. I've created a polygon shape with PhysicsEditor and attached it to a sprite. The problem comes when I move my sprite to the left and change my orientation with: player.scale.x = - 1;The sprite flips but the shape stays the same. Do you know a way to also flip the P2 body? Thanks in advance.
  18. Hi everyone! It's my first post on this forum, but I'm for a longer time just reding posts. Ok, finally I have to ask a few questions by myself. If tl;dr, read just numbered questions (or one of them though) Actually I'm creating a fast-paced 2d shooter (side-scrolled, like soldat - if You don't know this game, take a look at video in the end of post) and finally got few problems. Game is using PIXI.js and uhm.. Was using p2.js, but that library has been superseded by PhysicsJS. Now I still have few problems, that is: 1. I still wonder if PhysicsJS is a good physics library for fast-paced shooter and I'm still thinking about return p2.js or use another better engine. I have read and checked few other libraries (like matterjs - box2d and similar aren't an option because of not plain javascript code). Is there any better option? 2. I have a problem with shooting. I really don't know how to do this. Or maybe otherwise - I have done it, but not the way I want. In p2.js everything is excellent except shooting - If bullets were too fast, collision detection event didn't notice collision beetwen bullet and other stuff. That's a major reason why I changed library to PhysicsJS. Now there is a problem with gravity and shooting. If Bullets are fast, they appear on screen in groups of 4 bullets separated by few pixels. Otherwise they are landing on ground very quickly. How can I do better shooting ? Maybe just in PIXi.js with own collision detection (just for bullets) function ? 3. This game will be a multiplayer. Is PhysicsJS or p2.js a good library to run on node.js? And will sharing few servers (game rooms) on one node.js server (for ex. 4-5 servers for 20 players one) be a good option looking at performance and cpu? Thanks a lot for reply ! As I said at beggining, I'm giving soldat gameplay:
  19. finspin

    Maintain speed after collision

    I have 2 bouncing balls which are bouncing off world borders and also off each other. The balls do maintain their speed when bouncing off the world borders but they lose their speed when bouncing off each other. I'd like them to maintain their speed after they collide with each other. I realise this is quite against the physics but is this doable? Here it the game implemented with p2 physics and the code below. And here is the same game implemented with arcade engine where balls are bouncing without losing the speed I switched from the arcade engine to p2 after I learned arcade can't handle collision of circular objects. var game = new Phaser.Game(480, 640, Phaser.AUTO, 'Bubble Game', { preload: preload, create: create, update: update, render: render});var b1, b2, bubble1, bubble2;function preload() {}function create() { game.stage.backgroundColor = "#000"; game.physics.startSystem(Phaser.Physics.P2JS); game.physics.p2.setImpactEvents(true); var bubbleCollisionGroup = game.physics.p2.createCollisionGroup(); game.physics.p2.updateBoundsCollisionGroup(); b1 =; b1.beginFill(0xFF0000, 1); b1.drawCircle(0, 0, 50); bubble1 = game.add.sprite( - 380, - 50); bubble1.addChild(b1); bubble1.anchor.setTo(0.5, 0.5); b2 =; b2.beginFill(0xFFFFFF, 1); b2.drawCircle(0, 0, 50); bubble2 = game.add.sprite( - 245, - 50); bubble2.addChild(b2); bubble2.anchor.setTo(0.5, 0.5); bubbles =; bubbles.add(bubble1); bubbles.add(bubble2); game.physics.p2.enable(bubbles); bubbles.forEach(function (bubble) { bubble.body.setCircle(50); bubble.body.setCollisionGroup(bubbleCollisionGroup); bubble.body.collides([bubbleCollisionGroup, bubbleCollisionGroup]); }); var bubbleMaterial = game.physics.p2.createMaterial('bubbleMaterial'); var worldMaterial = game.physics.p2.createMaterial('worldMaterial'); bubble1.body.setMaterial(bubbleMaterial); bubble2.body.setMaterial(bubbleMaterial); game.physics.p2.setWorldMaterial(worldMaterial, true, true, true, true); var contactMaterial = game.physics.p2.createContactMaterial(bubbleMaterial, worldMaterial); contactMaterial.friction = 0; contactMaterial.restitution = 1.0; bubble1.body.damping = 0; bubble1.body.velocity.x = 200; bubble1.body.velocity.y = -200; bubble2.body.damping = 0; bubble2.body.velocity.x = -100; bubble2.body.velocity.y = 250;}function update() {}function render() {}
  20. How could I make ball bouncing off the world borders constantly? I tried to play around with contactMaterial properties but nothing seems to do the job. The ball will slowly lose its velocity. I'd like it to bounce constantly with constant velocity. var game = new Phaser.Game(480, 640, Phaser.AUTO, 'Bubble Game', { preload: preload, create: create, update: update, render: render});var bubble1;function preload() { game.load.image('bubble1', 'assets/bubble1.png');// game.load.image('bubble2', 'assets/bubble2.png');// game.load.image('bubble3', 'assets/bubble3.png');}function create() { game.stage.backgroundColor = "#000"; game.physics.startSystem(Phaser.Physics.P2JS); bubble1 = game.add.sprite(,, 'bubble1'); game.physics.p2.enable(bubble1); bubble1.body.setCircle(50); var bubbleMaterial = game.physics.p2.createMaterial('bubbleMaterial', bubble1.body); var worldMaterial = game.physics.p2.createMaterial('worldMaterial'); game.physics.p2.setWorldMaterial(worldMaterial, true, true, true, true); var contactMaterial = game.physics.p2.createContactMaterial(bubbleMaterial, worldMaterial); contactMaterial.friction = 0; contactMaterial.restitution = 1.0; contactMaterial.stiffness = 0; contactMaterial.relaxation = 0; contactMaterial.frictionStiffness = 0; contactMaterial.frictionRelaxation = 0; contactMaterial.surfaceVelocity = 0; bubble1.body.velocity.x = 200; bubble1.body.velocity.y = 200;}function update() {}function render() {}
  21. I'm using Phaser 2.4.2 with P2 physics. I have a sort of jar shaped body containing some circular bodies (balls). I want to move the jar offscreen but the balls are colliding with the world bounds. I tried setting collideWorldBounds on the balls but this stops them colliding with the jar which I want. You can see a demo here: Click the red button to make the jar move. Uncomment `collideWorldBounds=false` in the 'balls' section to see my problem. Why is this happening and how can I make the balls collide with the jar body but not the world bounds when the jar is moved offscreen?
  22. Circassia

    Need help with collision groups!

    Hi guys. I've recently started to learn Phaser and i think it's pretty awesome but i have a little problem. I'm using P2 Physics. I have an image-based rectangle(1 img for vertical parts, 1 for horizontonal) and 2 circles in my game. One of the circles is player and other one is the ball. I wrote the player and ball collision parts successfully, but when i press SHIFT key(pressing shift means you hit the ball in my game and ball accelerates with speed 400) sometimes ball just ignores the walls and passes them. I spent all my day and night without sleep but i couldn't make it. Some help would be nice, take care of yourselves By the way, there is no player and wall collision so i seperated and used them as collisionGroups.
  23. 375051821

    The problem of physics Performance

    Recently I am doing a project, in which I have to set a constant velocity value to a ball. This game is much like PingPong. I am now using P2 physics, but when test it on mobile, there are a big performance problem. On Android, the problem could be a small problem due to different browser, but it still remain somtimes, there is a little bit stutter when I playing. Because I don't have the things like vector, so I can not get or set it's magnetic efficiently, so I have to calculate the angel and value of the velocity and set it to constant values every frame, I think this might be the main problem. And I also want to know, if it's also because the P2 physics caused too much, I know that there are a box2d plugin in phaser, it costs a bit, but I want to know if my game's performance would become better if I change to box2D, what's the difference between box2d and p2. And I also want to know if anyone could have a better solution to due with the constant velocity problem, I need it to bounce, and if it's possible I also want to constraint the angle, because I don't want the ball to bounce like parallel to the bouncing board. Thanks a lot!
  24. I just decided to move my game from 2.3 to 2.4, only to find my sprites with p2 bodies have gone insane. I managed to narrow it down to this test code: function create() { game.physics.startSystem(Phaser.Physics.P2JS); var sprite = game.add.sprite(100, 50); //drawing var graphic =; graphic.beginFill('0xff0000'); graphic.drawCircle(100, 50, 10); graphic.endFill(); sprite.addChild(graphic); // Create our physics body. game.physics.p2.enable(sprite, true); sprite.body.setCircle(10); //drawing var graphic2 =; graphic2.beginFill('0x0000ff'); graphic2.drawCircle(100, 50, 10); graphic2.endFill(); sprite.addChild(graphic);}var game = new Phaser.Game(800, 600, Phaser.CANVAS, '#phaser_parent', { create: create});Basically,the first graphic gets given a separate physics body at (0,0) and starts with velocity for some reason (because its start position overlaps worldbounds maybe?) The second graphic, added after physics was enabled, works as expected. Also just realised the second graphic is place with global co-ordinates, and the first is placed relative to the sprite. Are these bugs or expected behaviours I've misunderstood/not read the docs properly?
  25. goyeneche

    Enemy rotation AI degrees problem

    Hi, yesterday i was struggling with rotation of an enemy. In my game you drive a spaceship and the enemies should rotate to your location in the nearest way (left or right), so they can follow you. This seems to be simple, but i find some problems in the rotation degrees. First i have to find the angle that the enemy should have, to point to my spaceship. I find two ways to do it. The first doesn't work: angle = game.physics.arcade.angleBetween( this , player ); // returns angles between something like 3.1 and -3.1// ( this = Enemy class )I don't know why. Maybe because i am using p2 physics and not arcade? The second works: angleRadians = Math.atan2(this.position.y - player.position.y, this.position.x - player.position.x);angle = Math.atan2(this.position.y - player.position.y, this.position.x - player.position.x) * 180 / Math.PI;// returns 180 to -180So i use that instead. Here I find something strange, the 0° angle in the Enemy is on Top. But, the 0° angle returned in the var angle is on the left. ( both ways in clockwise ) Finally i try doing something tricky like this, but doesn't work properly: if( this.body.angle+180 - angle-90 <= 180 && this.body.angle+180 - angle-90 >= 0 ){ this.body.angle += .6;}else{ this.body.angle -= .6;} May if I figure out why the degrees are different, i can get it work. Thanks!