0

尝试在此处制作 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 未处理”错误。

我会接受任何需要改进的批评。

谢谢您的帮助。

4

1 回答 1

1

你的精灵需要 boundingBox 属性

new Rectangle((int)Position.X,(int)Position.Y,texture.Width, texture.Height);

然后检查碰撞

if (Sprite1.BoundingBox.Intersects(Sprite2.BoundingBox))

但请确保在使用纹理的任何函数之前加载纹理。我猜您的错误发生在更新功能上,您尝试获取未加载的纹理宽度。

于 2013-11-04T09:45:48.410 回答