コード例 #1
0
        public void ConfigureFromXML(System.Xml.XmlNode pNode)
        {
            string value = pNode.Attributes["StartPosition"].Value;

            mPlayerInitialPosition = SMX.Maths.Vector2.ReadVector2FromString(value);
            //mPlayerInitialPosition = SMX.Maths.Vector2.ReadVector2FromXmlAttribute(pNode, "StartPosition");

            System.Xml.XmlNodeList ballNodes = pNode.SelectNodes("Ball");
            foreach (System.Xml.XmlNode ballNode in ballNodes)
            {
                Ball ball = new Ball();
                ball.ConfigureFromXML(ballNode);
                mBalls.Add(ball);
            }
        }
コード例 #2
0
        public void OnFrameMove()
        {
            mVelocityPxS += Game.mGravityVel * Game.mDt;

            mInitialPosition += mVelocityPxS * Game.mDt;

            if (mInitialPosition.Y > Game.DefaultGameHeight - 256)
            {
                mVelocityPxS *= -1;
            }

            if (mInitialPosition.X > Game.DefaultGameWidth - 256)
            {
                mVelocityPxS *= -1;
            }

            /*if (mInitialPosition.Y > 256)
             * {
             *  mVelocityPxS *= -1;
             * }
             *
             * if (mInitialPosition.X > 256)
             * {
             *  mVelocityPxS *= -1;
             * }*/
            float maxHorizontalVelocity = 150f;

            if (maxHorizontalVelocity >= 0)
            {
                mVelocityPxS.X = maxHorizontalVelocity;
            }
            else
            {
                mVelocityPxS.X = -maxHorizontalVelocity;
            }
        }
コード例 #3
0
 /// <summary>
 ///
 /// </summary>
 public static SharpDX.Vector2 ToSDX(this SMX.Maths.Vector2 pSrc)
 {
     return(new SharpDX.Vector2(pSrc.X, pSrc.Y));
 }
コード例 #4
0
        public void onFrameMove()
        {
            mSpeedPxS += Game.mGravityVel * Game.mDt;
            mPos      += mSpeedPxS * Game.mDt;

            mState = ePlayerState.Idle;
            if (Game.mInput.IsActionPressed(eAction.Left))
            {
                mPos.X -= DefaultHorizontalSPeedPxS * Game.mDt;
                mState  = ePlayerState.WalkLeft;
            }
            else if (Game.mInput.IsActionPressed(eAction.Right))
            {
                mPos.X += DefaultHorizontalSPeedPxS * Game.mDt;
                mState  = ePlayerState.WalkRight;
            }

            //Restricciones para que no se salga de la pantalla
            mPos.X = Math.Min(mPos.X, Game.DefaultGameWidth - PlayerWidth);
            mPos.X = Math.Max(mPos.X, 0);
            mPos.Y = Math.Min(mPos.Y, Game.DefaultGameHeight - PlayerHeight);
            mPos.Y = Math.Max(mPos.Y, 0);

            //Animacion del personaje
            float limitetiempo;

            switch (mState)
            {
            case ePlayerState.Idle:
                mSpriteSourceRectangle = mWalkAnimationSourceRectangles[mCurrentAnimationIdx];
                break;

            case ePlayerState.WalkLeft:
                mContadorDeTiempoAnimacion += Game.mDt;
                limitetiempo = 1f / 12f;

                if (mContadorDeTiempoAnimacion > limitetiempo)
                {
                    mContadorDeTiempoAnimacion = 0;
                    mCurrentAnimationIdx++;
                    if (mCurrentAnimationIdx >= mWalkAnimationSourceRectangles.Count)
                    {
                        mCurrentAnimationIdx = 0;
                    }

                    mSpriteSourceRectangle = mWalkAnimationSourceRectangles[mCurrentAnimationIdx];
                }
                break;

            case ePlayerState.WalkRight:
                mContadorDeTiempoAnimacion += Game.mDt;
                limitetiempo = 1f / 12f;

                if (mContadorDeTiempoAnimacion > limitetiempo)
                {
                    mContadorDeTiempoAnimacion = 0;
                    mCurrentAnimationIdx++;
                    if (mCurrentAnimationIdx >= mWalkAnimationSourceRectangles.Count)
                    {
                        mCurrentAnimationIdx = 0;
                    }

                    mSpriteSourceRectangle = mWalkAnimationSourceRectangles[mCurrentAnimationIdx];
                }
                break;
            }
        }
コード例 #5
0
 public void ConfigureFromXML(System.Xml.XmlNode pNode)
 {
     this.mInitialPosition = SMX.Maths.Vector2.ReadVector2FromString(pNode.Attributes["Position"].Value);
     this.mSize            = (eBallSize)Enum.Parse(typeof(eBallSize), pNode.Attributes["Size"].Value);
     this.mColor           = (eBallColor)Enum.Parse(typeof(eBallColor), pNode.Attributes["Type"].Value);
 }