614
you are viewing a single comment's thread
view the rest of the comments
[-] cookie_sabotage@sh.itjust.works 159 points 7 months ago
public class GameManager : MonoBehaviour
{
    public bool EnableHighContrast;
    public bool PlayerWon;
    public float PlayerUnitsMoved;
    public int PlayerDeathCount;
    public float PlayerHealth;

    public void PlayerTakeDamage(float damage)
    {
        PlayerHealth -= damage;
        if (PlayerHealth < 0)
        {
            PlayerDieAndRespawn();
        }
    }

    public void PlayerDieAndRespawn()
    {
        return;
    }
}

I couldn't contain myself.

[-] wise@feddit.uk 57 points 7 months ago

Should it be

PlayerHealth <= 0

?

Otherwise the player could have 0 health and not die? I’m sleep deprived so forgive me if I’m wrong

[-] joshfaulkner@lemmy.world 5 points 7 months ago* (last edited 7 months ago)

I know this is /c/Progammerhumor, but I wanted to pull on this thread a little bit for my own edification. I'm a Python guy and have been a while, but I've dabbled in other languages. The screenshot says "MonoBehaviour" which makes me assume this is mono or a .Net-like language (you know what happens when you assume).

If your player health is a float, would mono or .Net have an issue comparing the float with integer zero "0"? I mean, it seems like floating point precision may make it impossible for it to ever "equal" integer zero, but it also seems like the code isn't accounting for that precision error.

Am I overthinking this?

[-] herrvogel@lemmy.world 7 points 7 months ago

Floating point errors are a product of how floating points work as a mathematical concept. So they're independent of the programming language and can happen everywhere.

In this case though, I doubt it's a critical issue. So the player "died" when they actually had 0.000000000027 hp left or whatever. Who cares? Do you need to be that precise?

[-] TipRing@lemmy.world 14 points 7 months ago

Hanging on with 1.70E-31 health.

[-] Melobol@lemmy.ml 1 points 7 months ago

As a noob in unity and programming, my understanding is that MonoBehavior only means that this script has to be attached as a component to a game object to function. And has no other meaning - but correct me if I'm wrong please.

load more comments (7 replies)
load more comments (14 replies)
this post was submitted on 28 Mar 2024
614 points (98.1% liked)

Programmer Humor

32380 readers
1400 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS