Posted April 10, 20214 yr I'm writing a mod for weapons and I ran into the problem of projectile position when shooting. How can I spawn a projectile so that when viewed from the first person, it flies out of the weapon, and not from the center of the screen?
April 10, 20214 yr The easiest solution is to change the position of the bullet before it is spawned. It will however slightly mess with your aim, so take that into consideration. An example code written in 1.15.2 (in 1.16.5 it is propably something similar): float rot = playerEntity.rotationYaw/180.f*3.14159f; //Converts the player rotation to radians float z = MathHelper.sin(rot) * 0.3f; //the multiplier (0.3f) defines how much is the bullet moved to the right float x = MathHelper.cos(rot) * 0.3f; //this and the former equation localizes the bullet to the rotation of the player //the subtrahend 0.5f controlls the height of the bullet //changing the minus sign before x and z to plus moves the bullet to the left anEntity.setPosition(playerEntity.getPosX() - x, playerEntity.getPosYEye() - (double)0.5f, playerEntity.getPosZ() - z); //add the bullet to the world after this
April 10, 20214 yr Author This code is similar to the arrow. The problem with this code will be that when I turn 45-90 degrees, my bullet will take the position on the left side
April 10, 20214 yr Author Upd, oh sorry, i replaced in my entity yaw rotation to player yaw and this solve my problem. Thx
April 10, 20214 yr That shouldn't happen because of the sinus and cosinus, at least it didn't happen in my tests.
April 10, 20214 yr Author Just now, Thorius said: That shouldn't happen because of the sinus and cosinus, at least it didn't happen in my tests. Your code works well, I should have used the yaw player instead of taking yaw from my projectile. Thank you again
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.