コード例 #1
0
ファイル: Ball.cs プロジェクト: GDxU/GoalRush
        public override void Start()
        {
            m_params     = Engine.AssetManager.GetAsset <BallParameters>("Game/Ball.lua::Ball");
            m_properties = new BallProperties();

            m_effects = new List <BallEffect>();

            m_bodyCmp = new RigidBodyComponent();
            FarseerPhysics.Collision.Shapes.CircleShape bodyShape = new FarseerPhysics.Collision.Shapes.CircleShape(ConvertUnits.ToSimUnits(m_params.Content.Radius), 1.0f);
            Fixture fix = new Fixture(m_bodyCmp.Body, bodyShape);

            m_bodyCmp.Body.AngularDamping = m_params.Content.Physic.AngularDamping;
            m_bodyCmp.Body.Mass           = m_params.Content.Physic.Mass;
            m_bodyCmp.Body.LinearDamping  = m_params.Content.Physic.LinearDamping;
            m_bodyCmp.Body.Restitution    = m_params.Content.Physic.Restitution;
            m_bodyCmp.Body.IsBullet       = true;

            m_bodyCmp.Body.CollisionCategories = (Category)CollisionType.Gameplay | (Category)CollisionType.Ball;

            Owner.Attach(m_bodyCmp);

            if (Game.Arena.ColorScheme.Dark == true)
            {
                m_ballSprite = Sprite.Create("Graphics/ballSprite.lua::SpriteDark");
            }
            else
            {
                m_ballSprite = Sprite.Create("Graphics/ballSprite.lua::Sprite");
            }

            Owner.Attach(new SpriteComponent(m_ballSprite, "ArenaOverlay9"));

            m_ballBashSprite         = Sprite.Create("Graphics/ballSprite.lua::SpriteBash");
            m_ballBashSprite.Alpha   = 0;
            m_ballBashSprite.Playing = true;
            Owner.Attach(new SpriteComponent(m_ballBashSprite, "ArenaOverlay9"));


            m_ballTrail = new BallTrailFx(this);
            Owner.Attach(m_ballTrail);

            m_bodyCmp.Body.FixedRotation = true;

            m_bodyCmp.UserData.Add("Tag", "Ball");

            m_bodyCmp.OnCollision += new CollisionEvent(m_bodyCmp_OnCollision);

            m_player     = null;
            m_lastPlayer = null;

            m_audioCmpBallBounce = new AudioComponent("Audio/Sounds.lua::BallBounce");
            Owner.Attach(m_audioCmpBallBounce);
            m_audioCmpBallPlayerSnap = new AudioComponent("Audio/Sounds.lua::BallPlayerSnap");
            Owner.Attach(m_audioCmpBallPlayerSnap);
        }
コード例 #2
0
ファイル: Ball.cs プロジェクト: GDxU/GoalRush
        public void Reset()
        {
            m_properties = new BallProperties();

            foreach (var e in m_effects)
            {
                e.End();
            }
            m_effects.Clear();

            m_player     = null;
            m_lastPlayer = null;

            m_bodyCmp.Body.AngularDamping = m_params.Content.Physic.AngularDamping;
            m_bodyCmp.Body.Mass           = m_params.Content.Physic.Mass;
            m_bodyCmp.Body.LinearDamping  = m_params.Content.Physic.LinearDamping;
            m_bodyCmp.Body.Restitution    = m_params.Content.Physic.Restitution;
        }