这是我的一些玩家类代码。
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 函数中。
好吧,我刚刚想出了这个。当两个整数相除时,它们将对输出进行取整以使结果成为整数。如果我改为使用 (16.0f/9.0f),它会给我一个浮点数作为输出。