我如何在另一个类中加载Texture2d?

问题描述 投票:0回答:1

这是我的一些玩家类代码。


namespace My_Game.Content.Sprites
{
    internal class Player : Sprites
    {
        public Player() {
            setDefaultVariables();
        }
        public Player(ContentManager content)
        {
            loadTexture(content);
        }


        private void setDefaultVariables() {

            position.X = Global.WIDTH / 2 - 8;
            position.Y = Global.HEIGHT / 2 - 8;

            color = Color.White;

            speed = 200;

        }

        private void loadTexture(ContentManager content)
        {
            texture = content.Load<Texture2D>("Gold Idle");
        }


        public void update(GameTime gameTime)
        {
            var kstate = Keyboard.GetState();
            float deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds;

           
            //collsisions with side of screen
            if (position.X <= 0)
            {
                position.X = 0;
            }
            if (position.X >= Global.WIDTH - texture.Width)
            {
                position.X = Global.WIDTH - texture.Width;
            }
            if (position.Y <= 0)
            {
                position.Y = 0;
            }
            if (position.Y >= Global.HEIGHT - texture.Height)
            {
                position.Y = Global.HEIGHT - texture.Height;
            }
        }
    }
}

由于某种原因,当我在碰撞部分调用纹理时,纹理被设置为 null。 我将第一个玩家构造函数放在 Game1 类中,将另一个放在 LoadContent 函数中。

c# monogame texture2d
1个回答
0
投票

好吧,我刚刚想出了这个。当两个整数相除时,它们将对输出进行取整以使结果成为整数。如果我改为使用 (16.0f/9.0f),它会给我一个浮点数作为输出。

© www.soinside.com 2019 - 2024. All rights reserved.