예제 #1
0
파일: SGame.cs 프로젝트: pampersrocker/STAR
        protected void Initialize(Options options,GraphicsDevice graphics)
        {
            basicTarget = new RenderTarget2D(graphics,
                graphics.PresentationParameters.BackBufferWidth,
                graphics.PresentationParameters.BackBufferHeight,
                false,
                SurfaceFormat.Color,
                DepthFormat.None,
                graphics.PresentationParameters.MultiSampleCount,
                RenderTargetUsage.PreserveContents);
            player = new Player(new Vector2(100, 100), Content);
            blur = content.Load<Effect>("Stuff/Effects/Blur");
            waether = content.Load<Effect>("Stuff/Effects/Weather");
            waether.CurrentTechnique = waether.Techniques["Technique1"];
            motionblur = content.Load<Effect>("Stuff/Effects/MotionBlur");
            waether.Parameters["effectTexture"].SetValue(content.Load<Texture2D>("Stuff/Effects/Rain"));
            level = new Level();
            level.LoadLevel(content.ServiceProvider,graphics,options);
            InitializeLayer(options,graphics);
            player.Pos = level.Startpos;
            bg_rect = new Rectangle(0, 0, options.ScreenWidth, options.ScreenHeight);

            gamelogic = new GameLogic();
            gamelogic.Initialize(content.ServiceProvider,graphics, level.LevelVariables, options);
            camera = new Camera(options.ScreenWidth,
                options.ScreenHeight,
                level.Startpos,
                (float)options.ScaleFactor);
            debugscreen = new DebugScreen(Content, level.Startpos);
            Matrix viewMatrix = Matrix.CreateLookAt(
                   new Vector3(0.0f, 0.0f, 1.0f),
                   Vector3.Zero,
                   Vector3.Up
                   );

            Matrix projectionMatrix = Matrix.CreateOrthographicOffCenter(
                0,
                (float)options.ScreenWidth,
                (float)options.ScreenHeight,
                0,
                1.0f, 1000.0f);

            effect = new BasicEffect(graphics);
            effect.Alpha = 1.0f;
            effect.View = viewMatrix;
            effect.Projection = projectionMatrix;
            effect.VertexColorEnabled = true;

            colorizePost = new ColorizeLUT();
            colorizeBackground = new ColorizeLUT();
            JumpPad pad = new JumpPad();
            pad.Initialize(content.ServiceProvider, options, graphics, "0,0,32,32,0,-5000,0.95");
            iObjectManager.AddObject(pad);
            target = new RenderTarget2D(graphics,
                graphics.PresentationParameters.BackBufferWidth,
                graphics.PresentationParameters.BackBufferHeight,
                false,
                SurfaceFormat.Color,
                DepthFormat.None,
                graphics.PresentationParameters.MultiSampleCount,
                RenderTargetUsage.PreserveContents);

            toonShader = new ToonShader();
            toonShader.Initialize(Content.ServiceProvider, graphics, options);
            toonShader.Enabled = true;
        }
예제 #2
0
파일: SGame.cs 프로젝트: pampersrocker/STAR
        public void LoadLevel(IServiceProvider ServiceProvider,GraphicsDevice device,string level_name, LevelType leveltype,Options options)
        {
            level.Dispose();
            level = new Level();
            level.LevelLoadLineEnhanced += new LevelLoadLineEnhancedEventHandler(level_LevelLoadLineEnhanced);
            level.LoadLevel(ServiceProvider,device,options, level_name, leveltype);
            //level = new Level(ServiceProvider, level_name, leveltype);
            GameParameters.CurrentGraphXPack = level.LevelVariables.Dictionary[LV.GraphXPack];
            colorizeBackground.Dispose();
            colorizeBackground = new ColorizeLUT();
            colorizeBackground.Initialize(ServiceProvider, device, options);
            colorizeBackground.Enabled = true;
            colorizeBackground.StartResetEffect();
            colorizeBackground.FxData = LayerFXData.FromString(level.LevelVariables.Dictionary[LV.BackgroundFX]);
            colorizePost.Dispose();
            colorizePost = new ColorizeLUT();
            colorizePost.Initialize(ServiceProvider, device, options);
            colorizePost.Enabled = true;
            colorizePost.StartResetEffect();
            colorizePost.FxData = LayerFXData.FromString(level.LevelVariables.Dictionary[LV.PostFX]);
            iObjectManager.Dispose();
            iObjectManager = new InteractiveObjectManager();
            iObjectManager.Initialize(content.ServiceProvider, level.LevelVariables,device, options);

            LevelLoadEnhanced(50, "Level Loaded...");
            player = new Player(level.Startpos, Content);
            InitializeLayer(options,device);
            LevelLoadEnhanced(60, "Layers Initialized");
            gamelogic.Dispose();
            gamelogic = new GameLogic();
            gamelogic.Initialize(content.ServiceProvider,device, level.LevelVariables, options);
            camera = new Camera(options.ScreenWidth,
                options.ScreenHeight,
                level.Startpos,
                (float) options.ScaleFactor);
            debugscreen = new DebugScreen(Content, level.Startpos);
            LevelLoadEnhanced(75, "Game Logic Loaded");
            bg_tex = content.Load<Texture2D>(GameConstants.GraphXPacksPath + level.LevelVariables.Dictionary[LV.GraphXPack] + "/Backgrounds/" + level.LevelVariables.Dictionary[LV.BackgroundImg]);
            enemyManager.Dispose();
            enemyManager = new EnemyManager(ServiceProvider,options);
            LoadEnemies(options);

            enemyManager.PlayerKilled += gamelogic.PlayerKilled;

            //Invoke LevelLoaded Event
            LevelLoaded();
            //Cleaning UP...
            GC.Collect();

            firstFrame = true;
        }
예제 #3
0
파일: Level.cs 프로젝트: pampersrocker/STAR
 private void InitializeEffects(IServiceProvider serviceProvider,GraphicsDevice graphicsDevice,Options options)
 {
     colorize = new ColorizeLUT();
     colorize.Initialize(serviceProvider, graphicsDevice, options);
     colorize.FxData = LayerFXData.FromString(levelvariables.Dictionary[LV.LevelFX]);
     //colorize.StartResetEffect();
     colorize.Enabled = true;
 }
예제 #4
0
파일: Layer.cs 프로젝트: pampersrocker/STAR
        protected void Initialize(IServiceProvider ServiceProvider,int numberOfLayerObjects,Star.GameManagement.Options options,LevelVariables levelvariables,GraphicsDevice graphicsDevice)
        {
            content = new ContentManager(ServiceProvider);
            content.RootDirectory = "Data";
            //colorizeEffect = new Colorize();
            //colorizeEffect.Initialize(ServiceProvider, graphicsDevice, options);
            colorizeLUT = new ColorizeLUT();
            colorizeLUT.Initialize(ServiceProvider, graphicsDevice, options);
            colorizeLUT.Enabled = true;
            //fxData = LayerFXData.Default;
            //fxData.SaturationEnabled = true;
            //fxData.HueEnabled = true;
            //fxData.Saturation = 0f;
            GraphicsManager.AddItem(this);
            //colorizeEffect.Enabled = true;

            //setColorizeEffectParameters();
            layerobjects = new LayerObject[numberOfLayerObjects];
            InitializeGraphX(options,levelvariables);
            FinalizeInitialize();
        }
예제 #5
0
        protected override void Initialize()
        {
            //Initilaize Layer Data
            layerData = new Dictionary<LayerFX, LayerFXData>();

            //Fill Dictionary with Default Values
            foreach (LayerFX layer in Enum.GetValues(typeof(LayerFX)))
            {
                layerData.Add(layer, LayerFXData.Default);
            }

            editorcontent = new ContentManager(Services, "StarEditData");
            gamecontent = new ContentManager(Services, "Data");
            blanktex = gamecontent.Load<Texture2D>("Stuff/Blank");

            recttool = new Rectangle();
            options = new Options();
            options.ScreenHeight = DisplayRectangle.Height;
            options.ScreenWidth = DisplayRectangle.Width;
            options.ScreenWidth = GraphicsDevice.PresentationParameters.BackBufferWidth;
            options.ScreenHeight = GraphicsDevice.PresentationParameters.BackBufferHeight;
            options.InitObjectHolder.graphics = GraphicsDevice;

            options.InitObjectHolder.serviceProvider = Services;
            oldscreensize = new Point(DisplayRectangle.Width, DisplayRectangle.Height);
            try
            {
                arial = editorcontent.Load<SpriteFont>("Arial");
                spritebatch = new SpriteBatch(GraphicsDevice);
            }
            catch (Exception e)
            {
                string error = e.Message;
            }
            level = new Level();
            level.LoadLevel(Services,GraphicsDevice,options);
            //level = new Level(Services);
            iObjectManager = new InteractiveObjectManager();
            iObjectManager.Initialize(Services, level.LevelVariables, GraphicsDevice, options);
            rearparallaxLayer = new ParallaxLayer();
            frontparallaxLayer = new ParallaxLayer();
            cloudlayer = new CloudLayer();
            reardecoLayer = new DecoLayer();
            frontDecoLayer = new DecoLayer();
            SetBGRect();
            camera = new Camera(DisplayRectangle.Width, DisplayRectangle.Height, Vector2.Zero, DisplayRectangle.Height / 600f);
            mousetile = new Tile(0, 0);
            mousetile.load_tile((int)TileType.Wall,null);
            mouseTex = editorcontent.Load<Texture2D>("mousetile");
            if (level.Tiles != null)
            {
                mousetile.LoadGrass();
            }
            SetBorders(1, 1);
            enemymanager = new EnemyManager(Services, new Options());
            try
            {
                placeEnemy = new SingleEnemyManager(Services);
                placeEnemy.LoadEnemy(selectedEnemy);
            }
            catch (Exception e)
            {
                FileManager.WriteInErrorLog(this, e.Message, e.GetType());
            }

            bg_tex = new Texture2D(GraphicsDevice, 1, 1);
            colorizePost = new ColorizeLUT();
            colorizePost.Initialize(Services,GraphicsDevice,new Options());
            colorizePost.Enabled = true;
            colorizePost.StartResetEffect();
            colorizePost.FxData = LayerFXData.Default;
            colorizeBackground = new ColorizeLUT();
            colorizeBackground.Initialize(Services, GraphicsDevice, new Options());
            colorizeBackground.Enabled = true;
            colorizeBackground.StartResetEffect();

            target = new RenderTarget2D(GraphicsDevice,
                GraphicsDevice.PresentationParameters.BackBufferWidth,
                GraphicsDevice.PresentationParameters.BackBufferHeight,
                false,
                SurfaceFormat.Color,
                DepthFormat.None,

                GraphicsDevice.PresentationParameters.MultiSampleCount,
                RenderTargetUsage.PreserveContents);
        }