Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (โ‹ฎ) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

I'm making an projectile item, that when thrown, should bounce around a bit before stopping on the ground. however I'm having a really hard time with the physics of it, I've tried a few things but none of them quite worked.

I tried looking at the code for some other entities, such as the ArrowEntity, but it didn't help either. For making the item bounce, I'd probably need the normal at the hit point to be able to "reflect" it's velocity

How could I make it so the entity would behave more like a physics object?

here's the code for the entity: DSixEntity.java

For the simplest implementation, whenever the projectile interacts with the surface, you'll get the associated face that the surface interacted with. Then, invert the associated component and multiply it with some number between 0-1 to represent to loss of energy. For example, if the associated motion velocity is <3,-1,2> and the ball hits a face on the Y-axis (either UP or DOWN), it will invert the component to <3,1,2>. Let's say we want to have 80% of the energy conserved, then it would be <3,0.8,2>. Of course, you'll need probably a deadzone for the total motion to deal with ridiculously small numbers. If you want to introduce other factors, then I would suggest looking over some bouncing ball physics.

  • Author
1 hour ago, ChampionAsh5357 said:

For the simplest implementation, whenever the projectile interacts with the surface, you'll get the associated face that the surface interacted with.

how do I get the associated face? it doesn't seem that RayTraceResult can tell me that.

note: I was/am about to implement the jBullet engine (I might as well since my projectiles have shapes more complex than a cube)

If RayTraceResult#getType returns BLOCK, then you know the ray trace is an instance of BlockRayTraceResult which has a method called #getDirection (or #getFace in MCP) exactly for that.

  • Author
13 hours ago, poopoodice said:

thanks for the example! but as I've said, since my entities use some more complicated shapes, I think I'm better off using a third-party physics library

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions โ†’ Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.