Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将一个精灵的位置设置为另一个精灵的位置?_C#_Xna - Fatal编程技术网

C# 如何将一个精灵的位置设置为另一个精灵的位置?

C# 如何将一个精灵的位置设置为另一个精灵的位置?,c#,xna,C#,Xna,是否可以将一个精灵的位置设置为与正在移动的另一个精灵的位置完全相同 因此,我想将“sprite.position”设置为与我的类角色相同的位置: Character.cs: class Character { Texture2D texture; public Vector2 position; Vector2 velocity; public Character(Texture2D newTexture, Ve

是否可以将一个精灵的位置设置为与正在移动的另一个精灵的位置完全相同

因此,我想将“sprite.position”设置为与我的类角色相同的位置:

Character.cs:

    class Character
    {
        Texture2D texture;
        public Vector2 position;
        Vector2 velocity; 

        public Character(Texture2D newTexture, Vector2 newPosition)
        {

            texture = newTexture;
            position = newPosition;

        }
        public void Update(GameTime gameTime)
        {
            position += velocity;

        }   

        public void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(texture, position, Color.White);
        }

    }
游戏1.cs:

    public class Game1 : Microsoft.Xna.Framework.Game
    {


        Bullet bullet;

        Character player;


        protected override void Initialize()
        {

            allSprites = new List<ISprite>();
            allSpriteObstakels = new List<ISprite>();

            bullet.position = Character.position; // not working




            base.Initialize();
        }

      }
公共类游戏1:Microsoft.Xna.Framework.Game
{
子弹;
角色扮演者;
受保护的覆盖无效初始化()
{
allSprites=新列表();
allSpriteObstakels=新列表();
bullet.position=Character.position;//不工作
base.Initialize();
}
}

正如评论所建议的,当你说“它不工作”时,你需要清楚“不工作”的实际含义。例如,您是否遇到编译错误?您是否收到运行时异常?游戏是否正在运行,但没有达到预期效果(逻辑错误)

也就是说,以下是我对可能发生的事情的最佳猜测:

  • 我不知道上面的代码是否完整,但是bullet和player没有在任何地方实例化。在使用实例之前,需要“新建”实例
  • 您使用的是“bullet.position”,其中bullet是一个实例,但是您使用的是“Character.position”,其中Character是一个类。你打算用“玩家位置”来代替吗
  • 此代码只运行一次,这意味着项目符号将被设置为与角色相同的位置。如果希望项目符号位置始终与角色相同,则需要在每一帧连续重新指定bullet.position值

但最重要的是学会提问,这样这里的社区就可以帮助你。

当然这是可能的。在我的Game1.cs中,我试图调用“bullet.position=Character.position”;但这不起作用,有什么不起作用?任务失败了吗?“它不起作用”不是一个问题陈述。专业提示:不要在没有其他内容的巨大代码墙中有一行“不工作”的注释。没有人会看到它。做一个MCVE,准确地说出问题主体中不起作用的内容。我试图最小化它,我希望我没有太多地最小化它。你仍然没有说不起作用的内容。那条线断了怎么办?它看起来像是有效的C#。当你运行它的时候,你有没有遇到编译错误,运行时异常,velociraptors攻击,什么?(现在我看到了,只需更改为
player.Position
它不是一个静态属性,但是如果您给出了错误,我可以更快地看到它)。