Пример #1
0
 private void Start()
 {
     EnergyJauge.MaxValue     = ENERGY_MAX_VALUE;
     EnergyJauge.TargetAmount = 0;
     OxygenJauge.MaxValue     = OXYGEN_MAX_VALUE;
     OxygenJauge.TargetAmount = OXYGEN_MAX_VALUE;
     WaterJauge.MaxValue      = WATER_MAX_VALUE;
     WaterJauge.TargetAmount  = WATER_MAX_VALUE;
     UpgradeBtn.interactable  = false;
     UpgradeBtn.onClick.AddListener(UpgradeSpaceship);
     _currentUpgradeGoal = 0;
     _waterFilter        = FindObjectOfType <WaterFilter>();
     UpdateUpgradeUI();
     StartCoroutine(OxygenDecay());
     if (MusicManager.instance != null)
     {
         MusicManager.instance.PlayMainTheme();
     }
 }
Пример #2
0
        public DrawMap(GameState gameState, IOverworld overworld, VirtualResolution virtualResolution, SpriteBatch spriteBatch, IRenderer renderer, IAssetLoader assetLoader, Camera camera, Primitive primitive, GameDate gameDate)
        {
            _random = new Random();

            _overworld         = overworld;
            _virtualResolution = virtualResolution;
            _spriteBatch       = spriteBatch;
            _renderer          = renderer;
            _assetLoader       = assetLoader;
            _camera            = camera;
            _primitive         = primitive;

            _tempTileMap  = _assetLoader.Get <Texture2D>("debug/outmap.png");
            _superTileset = _assetLoader.Get <Texture2D>("debug/supertileset.png");

            _tileMapFilter = new TilemapFilter(_renderer, _spriteBatch,
                                               _assetLoader.Get <Effect>("shaders/tilemap.fx"), 16);
            _tileMapFilter.SetSuperTileset(_superTileset);
            _tileMapFilter.SetTileMapTexture(_tempTileMap);

            _waterReflectionFilter = new WaterReflectionFilter(_renderer, _spriteBatch,
                                                               _assetLoader.Get <Effect>("shaders/water_reflection.fx"));

            _waterFilter = new WaterFilter(_renderer, _spriteBatch, _camera,
                                           _assetLoader.Get <Effect>("shaders/water.fx"),
                                           _assetLoader.Get <Texture2D>("ui/noise.png"),
                                           _assetLoader.Get <Texture2D>("ui/noise2.png"), _virtualResolution);

            _waterDisplacementFilter = new WaterDisplacementFilter(_renderer, _spriteBatch, _virtualResolution,
                                                                   _assetLoader.Get <Effect>("shaders/displace.fx"),
                                                                   _assetLoader.Get <Texture2D>("ui/displacement.png"),
                                                                   _assetLoader.Get <Texture2D>("ui/displacement2.png"));

            _dayNightFilter = new DayNightFilter(_renderer, _spriteBatch, gameDate,
                                                 _assetLoader.Get <Effect>("shaders/average.fx"),
                                                 _assetLoader.Get <Effect>("shaders/color.fx"),
                                                 new List <(float, Texture2D)>()
            {
                (0, assetLoader.Get <Texture2D>("luts/daycycle1.png")),
                (0.1875f, assetLoader.Get <Texture2D>("luts/daycycle1.png")),
                (0.208334f, assetLoader.Get <Texture2D>("luts/daycycle2.png")),
                (0.30208333f, assetLoader.Get <Texture2D>("luts/daycycle3.png")),
                (0.41667f, assetLoader.Get <Texture2D>("luts/daycycle4.png")),
                (0.46f, assetLoader.Get <Texture2D>("luts/daycycle5.png")),
                (0.54f, assetLoader.Get <Texture2D>("luts/daycycle5.png")),
                (0.58333f, assetLoader.Get <Texture2D>("luts/daycycle6.png")),
                (0.6875f, assetLoader.Get <Texture2D>("luts/daycycle7.png")),
                (0.7708333f, assetLoader.Get <Texture2D>("luts/daycycle8.png")),
                (0.82291667f, assetLoader.Get <Texture2D>("luts/daycycle9.png")),
                (0.90625f, assetLoader.Get <Texture2D>("luts/daycycle10.png"))
            });

            CreateRenderTargets();

            _windTrail = new GameObject();
            CAnimation windTrailAnimation;

            _windTrail.Components.Add(new CPosition(Vector2.Zero));
            _windTrail.Components.Add(new CSprite(assetLoader.Get <Texture2D>("ui/windtrail.png"), Vector2.Zero));
            _windTrail.Components.Add(windTrailAnimation = new CAnimation()
            {
                Loop = false, OnComplete = OnComplete
            });
            windTrailAnimation.AddAnimation("effect", new List <AnimationFrame>()
            {
                new AnimationFrame(new Rectangle(0, 0, 512, 54), 0.07f),
                new AnimationFrame(new Rectangle(0, 64, 512, 54), 0.07f),
                new AnimationFrame(new Rectangle(0, 128, 512, 54), 0.07f),
                new AnimationFrame(new Rectangle(0, 192, 512, 54), 0.07f),
                new AnimationFrame(new Rectangle(0, 256, 512, 54), 0.07f),
                new AnimationFrame(new Rectangle(0, 320, 512, 54), 0.07f),
                new AnimationFrame(new Rectangle(0, 384, 512, 54), 0.07f),
                new AnimationFrame(new Rectangle(0, 448, 512, 54), 0.07f),
                new AnimationFrame(new Rectangle(0, 512, 512, 54), 0.07f),
            });
            _windTrail.Components.Add(new CFringeEntity {
                Opacity = 0.15f
            });

            gameState.Stage.GameObjects.Add(_windTrail);
        }