尝试在这里制作2D侧卷轴
我对编程很陌生。我试着按照指南和教程,运气不好。我知道这很简单,但我无法理解。
我为游戏中的所有不同角色提供了多个班级。
我有一个矩形用于玩家将控制的主精灵角色。
但问题是我想在敌人的精灵周围添加矩形,以便我可以在游戏中添加碰撞。
public class enemyRocks
{
public Texture2D texture;
public Vector2 position;
public Vector2 velocity;
public Rectangle rockRectangle;
public bool isVisible = true;
Random random = new Random();
int randX;
public enemyRocks(Texture2D newTexture, Vector2 newPosition)
{
texture = newTexture;
position = newPosition;
randX = -5;
velocity = new Vector2(randX, 0);
}
public void Update(GraphicsDevice graphics)
{
position += velocity;
if (position.X < 0 - texture.Width)
isVisible = false;
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, Color.White);
}
}
我真的尝试了很多方法,但它似乎没有用。
到目前为止我所做的一切都给了我一个“nullreferenceexception未处理”的错误。
我会接受任何需要改进的批评。
感谢您的帮助。
答案 0 :(得分:1)
你的sprite上需要boundingBox属性
new Rectangle((int)Position.X,(int)Position.Y,texture.Width, texture.Height);
然后检查碰撞
if (Sprite1.BoundingBox.Intersects(Sprite2.BoundingBox))
但请确保在使用纹理的任何函数之前加载纹理。我猜您的错误发生在更新功能上,您尝试获取未加载的纹理宽度。