Jump to content

Recommended Posts

Posted

I want an entity to draw a trajectory and move 5 blocks horizontally and 4 blocks vertically in a direction where a player is looking in the end.

I have tried below, but the entity moved further and higher.

Vector3d vector = player.getLookVec().normalize().mul(5, 1, 5);
entity.setMotion(vector.x, 4, vector.z);

How can I derive the motion from desired distance and height?

Posted

There's a difference between velocity and distance. First, you normalize the look vector. This means that the vector will be anywhere from 0-1. Also, when you multiply it by 5, you are moving 5x more in the direction you were looking. Also, the motion upward will be 4. This is the velocity of the object (which is the distance per unit of time). So, based on the time unit used by Minecraft, in the first time unit, the user will move 5x the normalized look vector and 4 upwards. Their motion will continue in that direction for a parabolic curve of some kind depending on the motion calculated.

So, basically, just do physics.

Posted
25 minutes ago, ChampionAsh5357 said:

So, basically, just do physics.

Do you know how the velocity changes over time?

I found this table on the wiki but I do not get how to interpret those values.

Posted
29 minutes ago, Colened said:

Do you know how the velocity changes over time?

That's physics once again. You should really look over Newton's Laws of Motion to understand that. As for Minecraft's specific case, I've never looked into it.

31 minutes ago, Colened said:

I found this table on the wiki but I do not get how to interpret those values.

Again physics. It even gives you the calculations. A player has a velocity of 3.92 blocks per every in-game tick. Their acceleration is 0.08 blocks per every in-game tick squared. This forum is not really a physics course. You should probably look up actual velocity, distance, and acceleration formulas, plug the values in, and adjust to get the values you want.

Posted
8 hours ago, ChampionAsh5357 said:

You should probably look up actual velocity, distance, and acceleration formulas, plug the values in, and adjust to get the values you want.

I do know this is related to projectile motion.

With trials and errors, I found that a vector of length 1.1 and an angle of 50 degrees almost result in what I want but when I plug those values in v^2 * sin(2 * θ) / g (as noted here) where v = 1.1, θ = 50 / 180 * 3.14 and g = 0.08, its result is larger than how much an entity moves in the game. I wanted to know if there is a specific equation that Minecraft uses or what are the values that Minecraft uses in the projectile motion not to be lectured for physics.

Posted
2 hours ago, Colened said:

or what are the values that Minecraft uses in the projectile motion not to be lectured for physics

Apologies, not trying to lecture you. I just assume that the person I'm talking to only knows enough information in Java and not anything else. Only reason I mention it is that it's how any game calculates physics.

 

If I remember correctly, the entity's motion in the x and z every tick is multiplied by 0.91 and the slipperiness of the block underneath if the entity is on the ground. For the y direction, it's motion should be the y motion minus the effect of gravity (by default 0.08) and multiplied by 0.98f.

Posted

Due to air resistance*

I hate that it's baked in as a hardcoded value and not labeled in any way, but that's where the value comes from.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted
5 hours ago, ChampionAsh5357 said:

Apologies, not trying to lecture you.

I also apologize if I sounded rude.

5 hours ago, ChampionAsh5357 said:

If I remember correctly, the entity's motion in the x and z every tick is multiplied by 0.91 and the slipperiness of the block underneath if the entity is on the ground. For the y direction, it's motion should be the y motion minus the effect of gravity (by default 0.08) and multiplied by 0.98f.

5 hours ago, Draco18s said:

Due to air resistance*

Thank both of you. I guess I either have to try to come up with a quite complicated equation or just stick with trials and errors.

  • 1 year later...
Posted
On 10/1/2020 at 6:01 AM, ChampionAsh5357 said:

If I remember correctly, the entity's motion in the x and z every tick is multiplied by 0.91 and the slipperiness of the block underneath if the entity is on the ground. For the y direction, it's motion should be the y motion minus the effect of gravity (by default 0.08) and multiplied by 0.98f.

Yeah, it's exactly this. I've used this in many of my projects, and it's working perfectly to change gravity strength and air resistance accurately.

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Forge only supports Java Edition, you'll need to ask elsewhere for Pocket Edition support. Also, don't post in unrelated topics. I've split your post into its own topic.
    • How do I download mods for minecraft pe
    • I've tried multiple ways to get the chunk coordinates and none of them have worked, so I'm guessing it may be getChunk().  Is there another way to forcibly load a chunk on that same tick? If all else fails I guess I can just delay my action by a tick, but that's a pain in the butt and makes it more complex to provide appropriate feedback... Also welcome, Zander.  If you're searching for a similar solution, I hope this (eventually) helps you too 😅
    • My guess would be that you are not getting the chunk coordinates right, or getChunk dosnt work.
    • Hello, Recently I have been hosting an RLcraft server on Minecraft Forge Version 1.12.2 - 14.23.5.2860 I originally had lag issues and I chalked it up to playing on less than perfect hardware so I moved the server to better hardware(i9-9900k with 64GB of RAM for 1 player.) After lots of troubleshooting I discovered a couple of things. World saving was causing the MSPT to spike to over 2000Miliseconds and was happening every minute. This kind of makes sense as the world was pre-generated and is over 100GB. I learned that I could turn off world saving and just schedule that and that resolved that issue. After that issue was resolved I discovered another issue. It appears that when exploring chunks, any chunks explored stay loaded. They persist. I was originally thinking that this had to be a mod issue, but it didn't seem like anyone was talking about it. This isn't really a problem on packs with few worldgen mods or just few mods in general, but on beefier packs it becomes a problem. I went through forge changelogs and found this line. Build: 1.12.2-14.23.5.2841 - Thu Aug 29 01:58:50 GMT 2019 bs2609: Improve performance of persistent chunk checks (#5706) Is this a related item to what I am dealing with or just something else?   I went ahead and created a new dedicated server with Just Forge 14.23.5.2860, spark reforged, and it's core mods. I was able to replicate the issue and log it with spark. Hopefully you're able to see this spark profile. It basically shows that as I explored the chunk loading persisted(2000 chunks loaded over 10 minutes with one player)The view distance is set to 10 so that should be 200 chunks per player. If I don't move the loaded chunks are 200. I was however able to fix the persistent chunk issue if I save the world more frequently. My question is, is this intended function of the game or is this a bug? Everywhere I read seems to indicate Minecraft servers save every 5 minutes and not every minute. Can chunks not unload if the world does not autosave. Additionally. Autosave specifically appears to fix this issue. Manually running save-all does not resolve the issue.   I realize this is kind of a log one, sorry. Please let me know if you require further information. Thanks in advance for your time. https://spark.lucko.me/NvlMtC39Yt https://imgur.com/a/K0oyukx https://pastebin.com/z0qGu1Vh  
  • Topics

×
×
  • Create New...

Important Information

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