Esempio n. 1
0
        public SpriteManager(Game game, ref GameConfig config)
            : base(game)
        {
            this.config = config;

            this.spriteCollection = new SpriteCollection();
        }
        public Manager()
        {
            mVideo = Video.SetVideoMode(800, 300);
            p = new Publisher();

            mAchtergrond = new Achtergrond(mVideo);
            mEnemy = new Enemy(mVideo);
            mEnemy2 = new Enemy2(mVideo);
            p.AddVijand(mEnemy2);
            p.AddVijand(mEnemy);
            mHero = new Hero(mVideo, p);
            mHero = new ShootHero(mVideo, mHero);
            mHero = new FlyHero(mVideo, mHero);

            //Terug naar origine hero!
            ((FlyHero)mHero).theHero = null;
            mHero = new ShootHero(mVideo, mHero);
            collection = new SpriteCollection();
            collection.Add(mHero);
            //collection.Add(shootHero);
            collection.Add(mEnemy);
            collection.Add(mEnemy2);

            Events.KeyboardDown += Events_KeyboardDown;
            //collection.EnableTickEvent();
            //collection.EnableKeyboardEvent();

            init();

            Events.Tick += new EventHandler<TickEventArgs>(Events_Tick);
            Events.Run();
        }
        public void touchedWhenAllSpritesTouched()
        {
            var collection = new SpriteCollection(sprites, camera.MockObject, sensor.MockObject);

            sensor.Expects.AtLeastOne.Method(_ => _.insideSprite(null, null, null)).WithAnyArguments().WillReturn(true);

            Assert.That(collection.touchedAtSameTime(0f), Iz.True);
        }
Esempio n. 4
0
 /// <summary>
 /// Play an animation by the index.
 /// </summary>
 /// <param name="index">Index.</param>
 public void PlayIndex(int index)
 {
     currentAnimation = anims[index];
     frames = new SpriteCollection( anims[index].GetName() );
     SetSprite( frames.GetSpriteByIndex(0) );
     speed = anims[index].speed;
     loop = anims[index].loop;
 }
Esempio n. 5
0
 /// <summary>
 /// Play an animation by name.
 /// </summary>
 /// <param name="animation">Animation.</param>
 public void Play(string animation)
 {
     currentAnimation = GetAnimationByName( animation );
     frames = new SpriteCollection(animation);
     SetSprite( frames.GetSpriteByIndex(0) );
     speed = GetAnimationByName( animation ).speed;
     loop = GetAnimationByName( animation ).loop;
 }
 public GameMakerFile()
 {
     Sprites = new SpriteCollection();
       Sounds = new SoundCollection();
       Backgrounds = new BackgroundCollection();
       Paths = new PathCollection();
       Scripts = new ScriptCollection();
       Fonts = new FontCollection();
       TimeLines = new TimeLineCollection();
       Objects = new ObjectCollection();
       Rooms = new RoomCollection();
       Triggers = new TriggerCollection();
       Includes = new IncludedFileCollection();
       Constants = new ConstantCollection();
       Information = new GameInformation();
       Settings = new GameSettings();
       ResourceTree = new ResourceTree();
 }
        public void notTouchedWhenOneThenBothTooLate()
        {
            var collection = new SpriteCollection(sprites, null, sensor.MockObject);

            using (factory.Ordered()) {
                var heldDown = new[] {TouchPhase.Began, TouchPhase.Moved, TouchPhase.Stationary};
                var initialTouch = new[] {TouchPhase.Began};

                // first finger down
                sensor.Expects.One.Method(_ => _.insideSprite(null, null, null))
                    .With(Is.Anything, Is.EqualTo(sprite1.MockObject), Is.EqualTo(heldDown))
                    .WillReturn(true);
                sensor.Expects.One.Method(_ => _.insideSprite(null, null, null))
                    .With(Is.Anything, Is.EqualTo(sprite1.MockObject), Is.EqualTo(initialTouch))
                    .WillReturn(true);
                sensor.Expects.One.Method(_ => _.insideSprite(null, null, null))
                    .With(Is.Anything, Is.EqualTo(sprite2.MockObject), Is.EqualTo(heldDown))
                    .WillReturn(false);

                // second finger down
                sensor.Expects.One.Method(_ => _.insideSprite(null, null, null))
                    .With(Is.Anything, Is.EqualTo(sprite1.MockObject), Is.EqualTo(heldDown))
                    .WillReturn(true);
                sensor.Expects.One.Method(_ => _.insideSprite(null, null, null))
                    .With(Is.Anything, Is.EqualTo(sprite1.MockObject), Is.EqualTo(initialTouch))
                    .WillReturn(false);
                sensor.Expects.One.Method(_ => _.insideSprite(null, null, null))
                    .With(Is.Anything, Is.EqualTo(sprite2.MockObject), Is.EqualTo(heldDown))
                    .WillReturn(true);
                sensor.Expects.One.Method(_ => _.insideSprite(null, null, null))
                    .With(Is.Anything, Is.EqualTo(sprite2.MockObject), Is.EqualTo(initialTouch))
                    .WillReturn(true);
            }

            collection.touchedAtSameTime(0f);
            Assert.That(collection.touchedAtSameTime(0.3f), Iz.False);
        }
Esempio n. 8
0
 public Collection<Rectangle> Blit(SpriteCollection spriteCollection)
 {
     if (spriteCollection == null)
     {
         throw new ArgumentNullException("SpriteCollection");
     }
     return spriteCollection.Draw(this);
 }
Esempio n. 9
0
        internal virtual void InitializeSprites()
        {
            newStyleSpinner = SkinManager.UseNewLayout && (SkinManager.IgnoreBeatmapSkin || TextureManager.Load(@"spinner-circle", SkinSource.Beatmap) == null) && TextureManager.Load(@"spinner-background", SkinSource.Skin) == null;

            if (GameBase.GameField.CorrectionOffsetActive)
            {
                spinnerTopOffset -= 16;
            }

            //this is madness, but works.
            posTopLeftCentre = new Vector2(GameBase.WindowManager.WidthScaled / Math.Max(1, GameBase.WindowManager.WidthWidescreenRatio) / 2f, spinnerTopOffset + 219);

            Color initialColour = (GameBase.Mode == OsuModes.Play && Player.currentScore != null && (ModManager.CheckActive(hitObjectManager.ActiveMods, Mods.SpunOut) || Player.Relaxing2) ? Color.Gray : Color.White);

            if (GameBase.Mode == OsuModes.Play && SkinManager.Current.SpinnerFadePlayfield)
            {
                //we need to add a backing layer as this skin requests the playfield is hidden while the spinner is present.

                SpriteCollection.Add(new pSprite(GameBase.WhitePixel, Fields.TopLeft, Origins.TopLeft, Clocks.Audio, new Vector2(0, 0), SpriteManager.drawOrderFwdLowPrio(StartTime - 1), false, Color.Black)
                {
                    Scale       = 1.6f,
                    VectorScale = new Vector2(640, spinnerTopOffset)
                });

                if (GameBase.GameField.CorrectionOffsetActive)
                {
                    SpriteCollection.Add(new pSprite(GameBase.WhitePixel, Fields.TopLeft, Origins.TopLeft, Clocks.Audio, new Vector2(0, 480 - 19), SpriteManager.drawOrderFwdLowPrio(StartTime - 1), false, Color.Black)
                    {
                        Scale       = 1.6f,
                        VectorScale = new Vector2(640, 19) //Use 19 here instead of 16 as the spinner-background graphic seems a little short...
                    });
                }
            }

            if (newStyleSpinner)
            {
                SpriteCircleTop = new pSprite(TextureManager.Load(@"spinner-top"), Fields.TopLeft, Origins.Centre, Clocks.Audio, posTopLeftCentre, SpriteManager.drawOrderFwdLowPrio(StartTime + 1), false, initialColour);
                SpriteCollection.Add(SpriteCircleTop);

                spriteCircleBottom = new pSprite(TextureManager.Load(@"spinner-bottom"), Fields.TopLeft, Origins.Centre, Clocks.Audio, posTopLeftCentre, SpriteManager.drawOrderFwdLowPrio(StartTime), false, initialColour);
                SpriteCollection.Add(spriteCircleBottom);

                spriteMiddleTop = new pSprite(TextureManager.Load(@"spinner-middle"), Fields.TopLeft, Origins.Centre, Clocks.Audio, posTopLeftCentre, SpriteManager.drawOrderFwdLowPrio(StartTime + 3), false, Color.TransparentWhite);
                SpriteCollection.Add(spriteMiddleTop);

                spriteMiddleBottom = new pSprite(TextureManager.Load(@"spinner-middle2"), Fields.TopLeft, Origins.Centre, Clocks.Audio, posTopLeftCentre, SpriteManager.drawOrderFwdLowPrio(StartTime + 2), false, Color.TransparentWhite);
                SpriteCollection.Add(spriteMiddleBottom);
            }
            else
            {
                pTexture bgTexture = null;
                //Check for a jpg background for beatmap-based skins (used to reduce filesize), then fallback to png.
                if (!SkinManager.IgnoreBeatmapSkin)
                {
                    bgTexture = TextureManager.Load(@"spinner-background.jpg", SkinSource.Beatmap);
                }
                if (bgTexture == null)
                {
                    bgTexture = TextureManager.Load(@"spinner-background", SkinSource.Beatmap | SkinSource.Skin);
                }

                Color bgColour = SkinManager.Colours.ContainsKey(@"SpinnerBackground") ? SkinManager.Colours[@"SpinnerBackground"] : new Color(100, 100, 100, 255);
                spriteBackground = new pSprite(bgTexture, Fields.TopLeft, Origins.Centre, Clocks.Audio, posTopLeftCentre, SpriteManager.drawOrderFwdLowPrio(StartTime - 1), false, bgColour);
                SpriteCollection.Add(spriteBackground);

                SpriteCircleTop = new pSprite(TextureManager.Load(@"spinner-circle"), Fields.TopLeft, Origins.Centre, Clocks.Audio, posTopLeftCentre, SpriteManager.drawOrderFwdLowPrio(StartTime), false, initialColour);
                SpriteCollection.Add(SpriteCircleTop);

                spriteScoreMetre            = new pSprite(TextureManager.Load(@"spinner-metre"), Fields.TopLeft, Origins.TopLeft, Clocks.Audio, new Vector2(posTopLeftCentre.X - 320, spinnerTopOffset), SpriteManager.drawOrderFwdLowPrio(StartTime + 1), false, initialColour);
                spriteScoreMetre.DrawHeight = 0;
                SpriteCollection.Add(spriteScoreMetre);
            }

            if (GameBase.Mode == OsuModes.Play)
            {
                spriteRpmBackground = new pSprite(TextureManager.Load(@"spinner-rpm"), Fields.TopLeft, Origins.TopLeft, Clocks.Audio, new Vector2(posTopLeftCentre.X - 87, 445), SpriteManager.drawOrderFwdLowPrio(StartTime + 3), false, initialColour);

                spriteRpmText = new pSpriteText("", SkinManager.Current.FontScore, SkinManager.Current.FontScoreOverlap, Fields.TopLeft, Origins.TopRight, Clocks.Audio, new Vector2(posTopLeftCentre.X + 80, 448), SpriteManager.drawOrderFwdLowPrio(StartTime + 4), false, initialColour)
                {
                    Scale = 0.9f
                };

                SpriteCollection.Add(spriteRpmText);
                SpriteCollection.Add(spriteRpmBackground);
            }

            if (SpriteCircleTop.Texture.Source != SkinSource.Osu && (!ModManager.CheckActive(hitObjectManager.ActiveMods, Mods.Hidden)))
            {
                SpriteApproachCircle = new pSprite(TextureManager.Load(@"spinner-approachcircle"), Fields.TopLeft, Origins.Centre, Clocks.Audio, posTopLeftCentre, SpriteManager.drawOrderFwdLowPrio(StartTime + 2), false, initialColour);
                SpriteCollection.Add(SpriteApproachCircle);
            }

            SpriteBonusCounter = new pSpriteText(string.Empty, SkinManager.Current.FontScore, SkinManager.Current.FontScoreOverlap, Fields.TopLeft, Origins.Centre, Clocks.Audio,
                                                 new Vector2(posTopLeftCentre.X, spinnerTopOffset + 299), SpriteManager.drawOrderFwdLowPrio(StartTime + 3), false, initialColour);

            SpriteCollection.Add(SpriteBonusCounter);
        }
Esempio n. 10
0
 public SpriteIterator(SpriteCollection sprite_list)
 {
     this._sprites = sprite_list;
 }
Esempio n. 11
0
 /// <summary>
 /// Create new sprite
 /// </summary>
 /// <param name="position">position of Sprite</param>
 /// <param name="surface">Surface of Sprite</param>
 /// <param name="group">
 /// SpriteCollection group to put Sprite into.
 /// </param>
 public Sprite(Surface surface, Point position, SpriteCollection group)
     : this(surface, new Vector(position), group)
 {
 }
Esempio n. 12
0
 protected abstract void ProcessResource( SpriteCollection aSprites );
Esempio n. 13
0
 /// <summary>
 /// Creates a new particle emitter that emits sprite objects.
 /// </summary>
 /// <param name="sprites">The sprite collection to choose sprites from when emitting.</param>
 public ParticleSpriteEmitter(SpriteCollection sprites)
 {
     m_Sprites = sprites;
 }
Esempio n. 14
0
 /// <summary>
 /// Creates a new particle emitter that emits sprite objects.
 /// </summary>
 /// <param name="system">The particle system to add this particle emitter.</param>
 /// <param name="sprites">The sprite collection to choose sprites from when emitting.</param>
 public ParticleSpriteEmitter(ParticleSystem system, SpriteCollection sprites)
     : base(system)
 {
     m_Sprites = sprites;
 }
Esempio n. 15
0
 private void OnEnable()
 {
     sc = (SpriteCollection)target;
 }
 /// <summary>
 /// Creates a new particle emitter that emits sprite objects.
 /// </summary>
 /// <param name="sprite">The sprite to emit.</param>
 public ParticleSpriteEmitter(Sprite sprite)
 {
     m_Sprites = new SpriteCollection();
     m_Sprites.Add(sprite);
 }
Esempio n. 17
0
        internal void UpdateCalculations(bool force, double multiplier)
        {
            if (force || taikoMiddle == null)
            {
                //slider endpoint is not hittable when the next hitobject has
                //a starttime before the slider's endtime.
                List <HitObject> hitobjects = hitObjectManager.hitObjects;
                int ind = hitobjects.IndexOf(this);
                if (ind < hitobjects.Count - 1 &&
                    hitobjects[ind + 1].HittableStartTime - (EndTime + (int)MinHitDelay) <= (int)MinHitDelay)
                {
                    endpointHittable = false;
                }

                float scalefactor = !SoundType.IsType(HitObjectSoundType.Finish) ? 0.65f : 1;

                SpatialLength *= SegmentCount;
                double v = hitObjectManager.SliderScoringPointDistance * hitObjectManager.Beatmap.DifficultySliderTickRate;
                double b = hitObjectManager.Beatmap.BeatLengthAt(StartTime);
                EndTime = StartTime + (int)(SpatialLength / v * b);

                SpatialLength *= multiplier;

                taikoMiddle = new pSprite(TextureManager.Load(@"taiko-roll-middle"), Fields.GamefieldWide,
                                          Origins.TopLeft, Clocks.Audio,
                                          new Vector2(Position.X,
                                                      Position.Y - hitObjectManager.HitObjectRadius * scalefactor),
                                          SpriteManager.drawOrderBwd(EndTime + 10),
                                          false, new Color(252, 184, 6));
                taikoMiddle.VectorScale =
                    new Vector2((float)SpatialLength * GameBase.WindowManager.Ratio / hitObjectManager.SpriteRatio * (1 / scalefactor), 1);
                taikoMiddle.Transformations.Add(new Transformation(TransformationType.Fade, 0, 1,
                                                                   StartTime - hitObjectManager.PreEmpt, StartTime));
                taikoMiddle.Transformations.Add(new Transformation(TransformationType.Fade, 1, 0, EndTime,
                                                                   EndTime + hitObjectManager.PreEmptSliderComplete));
                spriteManager.Add(taikoMiddle);
                SpriteCollection.Add(taikoMiddle);
                DimCollection.Add(taikoMiddle);

                taikoEnd = new pSprite(TextureManager.Load(@"taiko-roll-end"), Fields.GamefieldWide, Origins.TopLeft,
                                       Clocks.Audio,
                                       new Vector2(Position.X, Position.Y - hitObjectManager.HitObjectRadius * scalefactor),
                                       SpriteManager.drawOrderBwd(EndTime + 8),
                                       false, new Color(252, 184, 6));
                taikoEnd.OriginPosition =
                    new Vector2(
                        (float)-SpatialLength * GameBase.WindowManager.Ratio / hitObjectManager.SpriteRatio * (1 / scalefactor), 0);
                taikoEnd.Transformations.Add(new Transformation(TransformationType.Fade, 0, 1,
                                                                StartTime - hitObjectManager.PreEmpt, StartTime));
                taikoEnd.Transformations.Add(new Transformation(TransformationType.Fade, 1, 0, EndTime,
                                                                EndTime + hitObjectManager.PreEmptSliderComplete));

                spriteManager.Add(taikoEnd);
                SpriteCollection.Add(taikoEnd);
                DimCollection.Add(taikoEnd);

                sliderBall.Transformations.Add(new Transformation(sliderStartCircle.Position,
                                                                  sliderStartCircle.Position, StartTime - 500, EndTime));
                sliderFollower.Transformations.Add(new Transformation(sliderStartCircle.Position,
                                                                      sliderStartCircle.Position, StartTime, EndTime));

                counter =
                    new pSpriteText("", SkinManager.Current.FontScore, SkinManager.Current.FontScoreOverlap,
                                    Fields.GamefieldWide, Origins.Centre, Clocks.Audio,
                                    HitObjectManagerTaiko.HIT_LOCATION, 0.9f, false, Color.White);
                counter.Scale = 0.8f;
                counter.Transformations.Add(new Transformation(TransformationType.Fade, 0, 1, StartTime, StartTime));
                counter.Transformations.Add(new Transformation(TransformationType.Fade, 0.6f, 0, EndTime, EndTime + 300));
                spriteManager.Add(counter);

                int index = 0;

                for (double i = StartTime; i < HittableEndTime; i += MinHitDelay)
                {
                    if (i == StartTime)
                    {
                        hittablePoints.Add(new HitPoint((int)i, null));
                        index++;
                        continue;
                    }

                    bool major = ((hitObjectManager.Beatmap.DifficultySliderTickRate == 3) ||
                                  (hitObjectManager.Beatmap.DifficultySliderTickRate == 6) ||
                                  (hitObjectManager.Beatmap.DifficultySliderTickRate == 1.5d)) ? (index % 3) == 0 : (index % 4) == 0;

                    pSprite scoringDot = new pSprite(TextureManager.Load(@"sliderscorepoint"),
                                                     Fields.GamefieldWide, Origins.Centre, Clocks.Audio, new Vector2(Position.X,
                                                                                                                     Position.Y),
                                                     SpriteManager.drawOrderBwd(StartTime + 1), false, major ? Color.Yellow : Color.White, this);

                    if (!major)
                    {
                        scoringDot.Scale *= 0.8f;
                    }


                    scoringDot.OriginPosition.X -= (float)(SpatialLength * (float)(i - StartTime) / Length) * GameBase.WindowManager.Ratio / hitObjectManager.SpriteRatio / scoringDot.Scale * (1 / scalefactor);

                    scoringDot.Transformations.Add(new Transformation(TransformationType.Fade, 0, 1,
                                                                      StartTime - hitObjectManager.PreEmpt, StartTime));
                    scoringDot.Transformations.Add(new Transformation(TransformationType.Fade, 1, 0, EndTime,
                                                                      EndTime + hitObjectManager.PreEmptSliderComplete));

                    hittablePoints.Add(new HitPoint((int)i, scoringDot));

                    spriteManager.Add(scoringDot);
                    SpriteCollection.Add(scoringDot);
                    DimCollection.Add(scoringDot);

                    index++;
                }

                if (scalefactor != 1)
                {
                    foreach (pSprite p in SpriteCollection)
                    {
                        p.Scale *= scalefactor;
                    }
                }

                for (int i = 0; i < sliderStartCircle.SpriteCollection.Count; i++)
                {
                    pSprite s = sliderStartCircle.SpriteCollection[i];
                    foreach (Transformation t in s.Transformations)
                    {
                        if (t.Type ==
                            TransformationType.Fade &&
                            t.StartFloat == 1)
                        {
                            t.Time1 = EndTime;
                            t.Time2 = EndTime;
                        }
                    }
                    SpriteCollection.Add(s);
                    DimCollection.Add(s);
                    spriteManager.Add(s);
                }
            }
        }
 /// <summary>
 /// Creates a new particle emitter that emits sprite objects.
 /// </summary>
 /// <param name="system">The particle system to add this particle emitter.</param>
 /// <param name="sprites">The sprite collection to choose sprites from when emitting.</param>
 public ParticleSpriteEmitter(ParticleSystem system, SpriteCollection sprites)
     : base(system)
 {
     m_Sprites = sprites;
 }
 /// <summary>
 /// Creates a new particle emitter that emits sprite objects.
 /// </summary>
 /// <param name="system">The particle system to add this particle emitter.</param>
 /// <param name="sprite">The sprite to emit.</param>
 public ParticleSpriteEmitter(ParticleSystem system, Sprite sprite)
     : base(system)
 {
     m_Sprites = new SpriteCollection();
     m_Sprites.Add(sprite);
 }
Esempio n. 20
0
 private void OnEnable()
 {
     _interactiveObject = (BaseInteractiveObject)target;
     SpriteCollection   = (SpriteCollection)Resources.Load("Cursors");
     _interactiveObject.InteractComponentsList = (InteractComponents)Resources.Load("InteractComponents");
 }
Esempio n. 21
0
 /// <summary>
 /// Erases SpriteCollection from surface
 /// </summary>
 /// <param name="spriteCollection">SpriteCollection to erase</param>
 /// <param name="background">
 /// Background Surface to cover up SpriteCollection
 /// </param>
 public void Erase(SpriteCollection spriteCollection,
     Surface background)
 {
     if (spriteCollection == null)
     {
         throw new ArgumentNullException("spriteCollection");
     }
     spriteCollection.Erase(this, background);
 }
        public void touchedWhenOneSpriteTouched()
        {
            var collection = new SpriteCollection(sprites, camera.MockObject, sensor.MockObject);

            sensor.Expects.AtLeastOne.Method(_ => _.insideSprite(null, null, null))
                .With(Is.Anything, Is.EqualTo(sprite1.MockObject), Is.Anything).WillReturn(true);
            sensor.Expects.One.Method(_ => _.insideSprite(null, null, null))
                .With(Is.Anything, Is.EqualTo(sprite2.MockObject), Is.Anything).WillReturn(false);

            Assert.That(collection.touchedAtSameTime(0f), Iz.False);
        }
Esempio n. 23
0
 /// <summary>
 /// Creates a new particle emitter that emits sprite objects.
 /// </summary>
 /// <param name="system">The particle system to add this particle emitter.</param>
 /// <param name="sprite">The sprite to emit.</param>
 public ParticleSpriteEmitter(ParticleSystem system, Sprite sprite)
     : base(system)
 {
     m_Sprites = new SpriteCollection();
     m_Sprites.Add(sprite);
 }
Esempio n. 24
0
 // Start is called before the first frame update
 void Start()
 {
     spriteCollection = new SpriteCollection("blaetter");
     NewGame();
 }
Esempio n. 25
0
 /// <summary>
 /// Creates a new particle emitter that emits sprite objects.
 /// </summary>
 /// <param name="sprite">The sprite to emit.</param>
 public ParticleSpriteEmitter(Sprite sprite)
 {
     m_Sprites = new SpriteCollection();
     m_Sprites.Add(sprite);
 }
Esempio n. 26
0
 internal override void ModifyPosition(Vector2 newPosition, bool isOffset = false)
 {
     base.ModifyPosition(newPosition, isOffset);
     SpriteCollection.ForEach(p => p.Position = newPosition);
 }
Esempio n. 27
0
        protected override void ProcessResource( SpriteCollection aSprites )
        {
            if ( !aSprites.Any() )
            return;

              OnCategoryProcessing( ResourceTypes.Sprites );
              Directory.CreateDirectory( IO.Path.Combine( Directories.Sprites, Directories.Images ) );
              var previous = SetCurrentDirectory( Directories.Sprites );

              foreach ( var sprite in aSprites ) {
            var fileName = SafeResourceFilename( sprite );
            var subimages = new XElement( "Subimages" );

            for ( int i = 0; i < sprite.Subimages.Count; i++ ) {
              var subimage = sprite.Subimages[i];
              var subimageFilename = AddImageExtension( fileName + " [" + i + "]" );

              SaveImage( IO.Path.Combine( Directories.Images, subimageFilename ), subimage.Bitmap, subimage.Width, subimage.Height );
              subimages.Add( new XElement( "BitmapPath", IO.Path.Combine( Directories.Images, subimageFilename ) ) );
            }

            var document =
              new XElement( "Sprite",
            CreateIndexedResourceNodes( sprite ),
            new XElement( "OriginX", sprite.OriginX ),
            new XElement( "OriginY", sprite.OriginY ),
            subimages,
            new XElement( "CollisionMaskShape", sprite.CollisionMaskShape ),
            new XElement( "CollisionMaskAlphaTolerance", sprite.CollisionMaskAlphaTolerance ),
            new XElement( "SeperateCollisionMasks", sprite.SeperateCollisionMasks ),
            new XElement( "BoundingBox",
              new XElement( "Type", sprite.BoundingBoxType ),
              new XElement( "Left", sprite.BoundingBoxLeft ),
              new XElement( "Right", sprite.BoundingBoxRight ),
              new XElement( "Bottom", sprite.BoundingBoxBottom ),
              new XElement( "Top", sprite.BoundingBoxTop )
            )
              );

            SaveDocument( document, fileName + ".xml" );
            OnResourceProcessed( sprite.Name );
              }

              OnCategoryProcessed( ResourceTypes.Sprites );
              SetCurrentDirectory( previous );
        }
Esempio n. 28
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="rom1"></param>
        /// <param name="rom2"></param>
        /// <param name="HMirror"></param>
        /// <param name="VMirror"></param>
        /// <param name="imageSet"></param>
        public NesPpu(byte[] rom1, byte[] rom2, bool HMirror, bool VMirror, Action<uint[]> imageSet)
        {
            this.PatternTables = new PatternTableCollection(rom1, rom2);
            this.NameAttributePairTables = new NameAttributeTablePairCollection();
            this.VirtualNameAttributePairTables = new VirtualNameAttributeTablePairCollection(this.NameAttributePairTables);
            this.Sprites = new SpriteCollection();
            this.BgPalettes = new PaletteCollection();
            this.SpritePalettes = new PaletteCollection();

            this.ControlRegister1 = new NesPpuControlRegister1();
            this.ControlRegister2 = new NesPpuControlRegister2();
            this.StatusRegister = new NesPpuStatusRegister();

            this.DRamAddress = new PpuMemoryAddress();
            this.SpriteAddress = new PpuSpriteAddress();
            this.Scroll = new NesPpuScroll();

            this.HMirror = HMirror;
            this.VMirror = VMirror;

            this.ImageCommitAction = imageSet;
            this.Clock = new NesPpuClock();

            this.PpuImage = new NesPpuImage();
        }
Esempio n. 29
0
 /// <summary>
 /// Create new sprite
 /// </summary>
 /// <param name="vector">Vector of Sprite</param>
 /// <param name="surface">Surface of Sprite</param>
 /// <param name="group">
 /// SpriteCollection group to put Sprite into.
 /// </param>
 public Sprite(Surface surface, Vector vector, SpriteCollection group)
     : this(surface, vector)
 {
     if (group == null)
     {
         throw new ArgumentNullException("group");
     }
     group.Add(this);
 }
 private void LoadComboBox()
 {
     int positionX = 0;
     comboBoxNamespaces = new SpriteCollection();
     foreach (string s in this.demoList.Keys)
     {
         TextButtonSprite sprite = new TextButtonSprite(s, new SdlDotNet.Graphics.Font(Path.Combine(filePath, Path.Combine(dataDirectory, fontName)), 11));
         sprite.X = positionX;
         sprite.TextButtonSpriteSelected += new EventHandler<TextButtonSpriteEventArgs>(sprite_TextButtonSpriteSelected);
         this.comboBoxNamespaces.Add(sprite);
         positionX = positionX + 100;
     }
 }
Esempio n. 31
0
 /// <summary>
 /// Check to see if Sprite intersects with any sprite in a SpriteCollection
 /// </summary>
 /// <param name="spriteCollection">Collection to chekc the intersection with</param>
 /// <returns>True if sprite intersects with any sprite in collection</returns>
 public virtual bool IntersectsWith(SpriteCollection spriteCollection)
 {
     if (spriteCollection == null)
     {
         throw new ArgumentNullException("SpriteCollection");
     }
     foreach (Sprite sprite in spriteCollection)
     {
         if (this.IntersectsWith(sprite))
         {
             return true;
         }
     }
     return false;
 }
Esempio n. 32
0
 public SpriteCollectionSort()
 {
     manager = new SpriteCollection();
 }