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); } }
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; } }
/// <summary> /// /// </summary> public static SharpDX.Vector2 ToSDX(this SMX.Maths.Vector2 pSrc) { return(new SharpDX.Vector2(pSrc.X, pSrc.Y)); }
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; } }
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); }