Comments (4)
You're right, if you always apply the force directly upwards then I don't think this should happen.
Please could you provide a jsfiddle so I can debug it?
from matter-js.
http://jsfiddle.net/Rodeoclash/rq2qzkL0/1/
Ok, the process of building the fiddle helped me isolate the problem. After I create the triangle, I'm setting the centre of the body after creating it using:
var vertCenter = Vertices.centre(this.body.vertices);
this.body.positionPrev.x = vertCenter.x;
this.body.positionPrev.y = vertCenter.y;
this.body.position.x = vertCenter.x;
this.body.position.y = vertCenter.y;
This appears to introduce the problem. However, if I don't set it, then the spaceship does not rotate around its centre point (but I don't get the bug!)
You'll need to focus the JSFiddle demo window and you can use spacebar to apply thrust to the ship.
from matter-js.
Ah, the reason is because the position
argument of Body.applyForce
should be supplied as world-relative.
So just change your code to be:
Body.applyForce(ship, ship.position, rotatedForcePoint);
I guess this might be a little unintuitive, so maybe I should change it to be body-relative!
Also it's safer (and easier) to pass everything via the Body.create
options
argument as you know the constructor will do everything you need (as changing vertices requires a number of additional operations)
var ship = Body.create({
position: {
x: 400,
y: 300
},
vertices: [
{x: 0, y: shipHeight},
{x: shipWidth / 2, y: 0},
{x: shipWidth, y: shipHeight}
]
});
from matter-js.
That fixed it, thanks!
from matter-js.
Related Issues (20)
- Chain connecting 2 players causes 1 player to accelerate slower than the other even with same force
- Render.setSize is not present in the build
- Trying to change seed, to take control of deterministic behavior
- How to suppress body tremors? HOT 2
- Why does the attractor only work on one of the two BODYs? HOT 1
- Using compound bodies with Bodies.fromVertices does not work it just shows a filled in shape. HOT 1
- Why don't bodies sometimes collide? HOT 1
- Constraints with distance limits (e.g. for ropes)
- Why might there be such an error? HOT 1
- Simple Polygon Physics Issues HOT 1
- How to add project to the Wiki gallery ?
- How to scale the world? HOT 2
- [Phaser 3] Position of matter sprite's image not correct in container HOT 1
- loss of sprite quality on mobile HOT 1
- `Composite.translate` didn't move the bodies included
- Create Matter.Bodies.fromVertices with rounded vertices
- MouseConstraint preventing clicks on buttons on mobile. HOT 2
- Vulnerability related to the formula of universal gravitation
- Body with high mass and low inertia behaves erratically
- The startdrag event of dragging a body does not trigger after losing focus.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from matter-js.