0

私のコードでは、X 軸上の 3 つのスプライトを 1 つの方向と速度で動かそうとしています。しかし、クラスでコードを書いたところ、エラーなく正常にコンパイルされましたが、ゲームを開始すると、動かしたいスプライトがまったく動きません。彼らはただそこに座っています。以下のコード:

                   class Enemy : EnemySprite
{
    const string ENEMY_ASSETNAME = "BadguyLeft";
    const int START_POSITION_X1 = 350;
    const int START_POSITION_X2 = 600;
    const int START_POSITION_X3 = 750;
    const int START_POSITION_Y = 415;
    const int MOVE_LEFT = -1;
    int WizardSpeed = 160;

    enum State
    {
        Walking
    }

実際の問題は次のとおりです。

               public void LoadContent(ContentManager theContentManager)
    {

        base.LoadContent(theContentManager, ENEMY_ASSETNAME);
    }

    public void Update(GameTime theGameTime)
    {
        //KeyboardState aCurrentKeyboardState = Keyboard.GetState();

        //UpdateMovement(aCurrentKeyboardState);

        //mPreviousKeyboardState = aCurrentKeyboardState;
        Position[0] = new Vector2(START_POSITION_X1, START_POSITION_Y);
        Position[1] = new Vector2(START_POSITION_X2, START_POSITION_Y);
        Position[2] = new Vector2(START_POSITION_X3, START_POSITION_Y);

        base.Update(theGameTime, mSpeed, mDirection);
    }

    private void UpdateMovement(KeyboardState aCurrentKeyboardState)
    {
        //int positionTracker = START_POSITION_X3;

        if (mCurrentState == State.Walking)
        {
            mSpeed = Vector2.Zero;
            mDirection = Vector2.Zero;


          for (int i = 0; i < Position.Count(); i++) 
            if (mCurrentState == State.Walking)
            {
                mSpeed.X = WizardSpeed;
                mDirection.X = MOVE_LEFT;
            }




        }
4

1 に答える 1

1

スプライトの位置を実際に変更することは決してありません。

update メソッドは、(通常) 移動が行われる場所です。

次のようになります。

//this will move an object to the left
Vector2 speed = new Vector2(-10, 0);
public void Update(GameTime theGameTime)
{
    //this will add the speed of the sprite to its position
    //making it move
    Position[0] += speed;
    Position[1] += speed;
    Position[2] += speed;

    base.Update(theGameTime, mSpeed, mDirection);
}
于 2013-05-19T03:46:56.777 に答える