Box2D | simulating rigid bodies | Build Tool library
kandi X-RAY | Box2D Summary
kandi X-RAY | Box2D Summary
The main motivation behind this port is to provide a true C++ version of Box2D as opposed to the current C-like Box2D and make the CMake build system more flexible. Notice: Since this port will be kept in sync with the [Git repository] the master branch will receive forced pushes.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of Box2D
Box2D Key Features
Box2D Examples and Code Snippets
Community Discussions
Trending Discussions on Box2D
QUESTION
I'm trying to implement a simple AI for a 2D game in libGDX. The AI should make an enemy follow the player if the player is in range and if the enemy can see the player. To determine whether the enemy can see the player I'm using a raycast.
Now my problem is, that the raycast does not seem to collide with a static body in the Box2D world.
(It's just an assumption, that the static body is the problem, because it's working fine with a dynamic body)
The QuestionDo raycasts in libGDX collide with static bodies by default? Or is there an other way to make a raycast collide with static bodies?
I couldn't find any information on this in the libGDX wiki or in the API.
What I've tried so farI've tested the raycast AI with a dynamic body in between the enemy and the player:
Here the enemy with the raycast AI (the one in the upper left) is not moving towards the player (in the lower right) because there is a dynamic body in between them (the other enemy in the middle), which is correctly colliding with the raycast.
But if I put a static body in between the enemy and the player the raycast won't detect the static body, but only the dynamic body (that should be found later than the static body):
Here the static body in the middle is not detected by the raycast.
I've also tested to use setSleepingAllowed(false)
on the static body, to make sure it's not just sleeping. But that also didn't fix it.
ANSWER
Answered 2021-May-22 at 20:37In box2d, RayCasts should collide with static bodies, so your problem is probably somewhere else.
Keep in mind that the raycast callback is not reporting the fixtures in order of the distance to the start point. Instead the order is random and you have to handle that in you callback. If this is not the problem, you might want to add some code to the question.
QUESTION
From my understanding, in Box2d, objects will collide with another object if the other object's category is in the mask.
I have set up a really simple scene where I have a square that should fall through the floor. For testing purposes I have made it so the mask and the category are completely different on the square and floor like below
...ANSWER
Answered 2021-Apr-08 at 14:45Turns out I hadn't set up a contact filter for the world. I think I just assumed it would do this by default.
Adding the line world.SetContactFilter(new ContactFilter());
fixes the issue.
QUESTION
I'm trying to program a simulation for my physics paper. I saw Box2d as an option. My question is, are physics game engines like Box2d accurate for this kind of purposes?
...ANSWER
Answered 2021-Apr-08 at 06:37Generally speaking game engines are usually aimed at making things look realistic though from experience I can say that many - sometimes undocumented - shortcuts are implemented in the engines to achieve real time simulation even on slow computing devices.
Your mileage may vary - but depending on your requirements I'd look into frameworks prioritizing accuracy over speed of calculations.
QUESTION
I am trying to make a portable framework library that works between Linux and Windows, however whenever I compile my code on Linux I keep running into an error:
...ANSWER
Answered 2021-Mar-27 at 02:36CMAKE_POSITION_INDEPENDENT_CODE
only influences targets defined after it has been set. However, you're setting CMAKE_POSITION_INDEPENDENT_CODE
to ON
after including the extern
subdirectory, which is why the external libraries are not built with position-independent code.
QUESTION
For a Box2D composition, I need this code to avoid unintentional clicks:
...ANSWER
Answered 2021-Mar-19 at 12:28try
QUESTION
I work with this, and realized that links always get fired if you drag them. I would like to avoid that, and coded this:
...ANSWER
Answered 2021-Mar-19 at 07:11this could be a solution, the idea is to capture the event and prevent it if there was a pointer movement:
QUESTION
I'm facing a problem with an http request done in HTTP.java
.
On desktop all works fine (that request is not performed because it's necessary only on Android).
In Android all works without that http request.
After that that http request is made, all others fail after timeout with UnknownHostException error, as if they no longer have access to the internet connection, even if it is active. Also after minutes and after the onResume all http requests fail. Although the app cannot get an http response, the AdMob ad appears in my App, so I think that probably the connection works (or does the AdMob library cache some ads and show them when needed?).
Often, in these cases sometimes it works again:
- uninstalling and reinstalling the App from Android Studio
- closing the App, waiting some minutes and reopening it
- clearing App data from the device
- waiting an undefined amount of time
❗ After several attempts I discovered that as soon as the problem occurs, almost every time, if I activate the airplane mode and then disable it, the data connection is deactivated and then reactivated, and the App can immediately execute all subsequent http requests without having to do anything else on your device and without even having to reopen the application.
- tested with wifi on a 1GB fibra network: same error
- I checked the connection: it is stable, in wifi and also with SIM
- in the manifest there is the permission for using internet (otherwise it would never have worked)
- at the same time, the same App on desktop works perfectly and at the best speed, receiving http responses in less than 1 second, so the server isn't the problem
- I tested also with the url https://www.google.it: same error, the same url is reachable in the device via browser in less than 1 second
- as in the line
.timeout(10000)
I'm using a timeout of 10 seconds, the server has timeout set to 60 seconds - checked the server SSL "quality" at https://www.ssllabs.com/ssltest: got "A" in "Overall Rating"
- done the SIM "reboot" directly with a Vodafone operator
I'm testing on a real device with a flat 4G connection and with wifi, with "NetGuard - no-root firewall" VPN App installed.
This VPN works very well with all the other apps and probably mine too, but I can't rule out that it's the problem, although I hardly think it is (I use it since years without problems).
There is something wrong in my code? Or at least, how can I know the exact cause of this error?
Thanks.
AndroidLauncher.java:
...ANSWER
Answered 2021-Mar-02 at 03:51That error maybe relate to VPN connect, please close the application, off VNP if it was connected, re-connect to VPN and restart you application.
In all case, you must be connect the VPN before open the application.
QUESTION
I am making a game in Kotlin.Using Libgdx and Box2d
1.function creates bodies via Box2d and adds these bodies in bodyArrayList:ArrayList
2.function creates textures and adds these textures in textureArrayList
3.function is matching items of bodyArrayList with items of textureArrayList. The function has for loop.
4.function is removing bodies when crash a wall.
5.function is removing textures when crash a wall.
All functions are working in update() method. All these are working perfectly. However because I cannot remove items of te ArrayLists while for loop works on these ArrayLists, items of ArrayList is increasing and the game is starting slowing downn 1 hour later. The ArrayLists' size is going up as you guess. If I try to remove items of ArrayLists I am taking exceptions in matching() function as you guess.
My question is how can I remove these items from ArrayLists while "for loop" is working in a safe manner.
1.function creates bodies
...ANSWER
Answered 2021-Feb-18 at 09:04You can use Iterator
to remove items from Collections
while iterating
QUESTION
I am trying to render the bodies that I made in the open-source tool using ShapeRenderer. It seems to work for simple shapes like a square by simply retrieving the vertices and giving them back to the ShapeRenderer. However, when it comes to complex Bodies with about 9 polygons (the one I'm trying to render) I've tried rendering the polygons one by one, but it looks like it's giving me the same polygon over and over again, no matter how I initialize or go through my list of Vector2[]. I've been stuck on this for a while now, and any insight would help. (I'm using the BodyEditorLoader class to get the vertices)
BodyEditorLoader Class where I get my vertices from. (Gotten from open source library)
...ANSWER
Answered 2021-Feb-02 at 04:00For anyone wanting to do attempt the same, the error comes from me copying the wrong list of vectors. Instead of copying:
QUESTION
This is quite bizarre in my opinion. I create fixtures based on a fixtureDef. I use the libGDX version of Box2D. This is my code:
...ANSWER
Answered 2021-Jan-03 at 08:53UPDATE
It seems that this issue is already tracked here and has been fixed in the new 1.9.13 release (see the release notes. So this problem can be fixed by updating your libGDX version to 1.9.13.
I just tested this in my project and found the same behavior that you described. I'm setting the maskBits
of my FixutreDef
to 9, but when I create the Body
and check the fixtures with the debuger the maskBits
of the Fixture
are set to -1. So this bug seems to be reproducable.
But if I change the maskBits
of the FixtureDef
, to avoid a specific category of fixtures (I tested it with enemy fixtures), they indeed do no longer collide with the created Fixture
(what is not possible if it realy has the maskBits
set to -1, because that would mean that the fixture collides with every other object).
So the maskBits
of the fixtures in libGDX seem to be wrong, while the maskBits
of the fixtures in Box2D seem to be correct, which could be possible, because libGDX uses a java wrapper for Box2D, which is implemented in native methods (in C I think).
Therefore the collision detection is working, but the java wrappers show the wrong values (maybe because of wrong references, because you said that "The mask that these fixtures get is instead the mask of the body that I have destroyed prior to creating these new fixtures").
This problem might just be a bug in libGDX, which is quite hard to find, because everything seems to be working at first (until you debug it).
You should add this bug to libGDX's issue tracker, so it can be fixed. But unfortunately this could take some time, so you probably need to keep your workarround for some time, or just ignore it, because the collision detection is working anyways.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install Box2D
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page