- Home /
I want to code a Power Up!
Hello, I coded a booster for my platform game the other day. Here is my code, but there is a problem;
[code]
public class PowerUpJump : MonoBehaviour { public int jumpPlus; public int duration; public PlayerController playerController; private void OnTriggerEnter2D(Collider2D collision) { if (collision.CompareTag("Player")) {
playerController.jumpForce += jumpPlus;
gameObject.SetActive(false);
Invoke("ResetEffect",duration);
Invoke("CallBackPowerUp", duration);
}
}
private void ResetEffect()
{
playerController.jumpForce -= jumpPlus;
}
private void CallBackPowerUp()
{
gameObject.SetActive(true);
}
}
This does not prevent the booster from working, but when 2 of the boosters come in succession, the overlapping power ups make my character jump higher because of the code I wrote. In other words, the effect of the 1st power up continues even when the 2nd one is active. When I get the 2nd power up, I want the effect of the old one to pass. Can you help? The callbak function was written there to respawn after the power up effect wears off. It has nothing to do with it.
Answer by xxmariofer · Jun 10, 2021 at 09:04 AM
hello, if you dont want the forces to overlap simply dont sum them
playerController.jumpForce = jumpPlus;
and when reseting the jumpforce instead of decreasing set to the default value
playerController.jumpForce = 4;//change the 4 with the default value
Your answer
Follow this Question
Related Questions
Temporary boost 1 Answer
How do i make a one gun only Weapon system. (2D) 2 Answers
2D 360 degress platformer example needed 0 Answers
Restricting movement to one plane, but smoothly switching what plane that is 0 Answers
Massive lag moving platforms 1 Answer