Olliebrown Posted October 18, 2017 Share Posted October 18, 2017 I am attempting to apply force manually to a sprite that has a P2 physics body. My hope is to achieve the designable jump described by Kyle Pitmann in his GDC Talk below. In this he derives equations for a jump arc that are controlled by the height, footspeed, and how long the jump should last. It will give you a gravitational force and an initial velocity to achieve those parameters. Everything I do to try and set a manual force on the P2 body is being ignored. Here is what I have: Gravity on the body is disabled via body.data.gravityScale = 0 I then try and initiate a jump using my precomputed initial velocity and gravitational constant as follows: let vx = config.WALK_SPEED sprite.body.force.y = this._jump_grav_start * vx * vx sprite.body.velocity.y = this._jump_vel_start * vx Afterwards I dump 'force' to the console and it is always zero no matter what I try to set it to. Am I just missing something fundamental here about how you apply a force in P2? Seth B. ) Link to comment Share on other sites More sharing options...
samid737 Posted October 20, 2017 Share Posted October 20, 2017 the force property should not return A zero value, but A point object. Are you sure the variables are not zero or undefined: config.WALK_SPEED/vx and this._jump_grav_start ? Normally gravity should always be applied. You can use player.body.force, within update() to make sure it is always applied,. The velocity can be set once, via an input event for example and does not require updates in your case. An applied example of the situation: Link to comment Share on other sites More sharing options...
Olliebrown Posted November 7, 2017 Author Share Posted November 7, 2017 Well that certainly confirms that it works!! Thank you for the concise and well organized example. I need to see if I can integrate it better for myself. I think the key idea you are doing that I am not (and should be) is applying the gravity force at all times. I am curious to figure out why that makes a difference but it certainly seems more sound from both an integration and physics standpoint. Changing it in the middle of the game like I am might prove problematic! I'll work on this when I have time and check back with results. Thanks again! Seth B. samid737 1 Link to comment Share on other sites More sharing options...
Recommended Posts