Esempio n. 1
0
        public override void Draw(float t, float dt)
        {
            if (shouldLeave) // TODO: When we parallelise this probably won't work.
            {
                CScore score = (CScore)Game1.Inst.Scene.GetComponentFromEntity <CScore>(player);
                SfxUtil.PlaySound("Sounds/Effects/horny_end");
                Game1.Inst.LeaveScene();
                Game1.Inst.EnterScene(new EndGameScene(passedTime, score.Score, won));
            }

            var camera = (CCamera)GetComponentFromEntity <CCamera>(player);

            if (camera.Position.Y < configs.WaterHeight)
            {
                GfxUtil.SetRT(mRT);
                base.Draw(t, dt);
                GfxUtil.SetRT(null);
                mUnderWaterFx.Parameters["SrcTex"].SetValue(mRT);
                mUnderWaterFx.Parameters["Phase"].SetValue(t);
                GfxUtil.DrawFsQuad(mUnderWaterFx);
            }
            else if (configs.IsRaining)
            {
                GfxUtil.SetRT(mRT);
                base.Draw(t, dt);
                GfxUtil.SetRT(null);
                mPostProcessor.ApplyPostProcess(t, dt, mRT);
            }
            else
            {
                GfxUtil.SetRT(null);
                base.Draw(t, dt);
            }

            mHud.Update();
            mHud.Draw(player);
        }