Ejemplo n.º 1
0
 /*
 ============================================================================
 Sprite functions
 ============================================================================
 */
 public BaseSprite AddSprite(BaseSprite sprite)
 {
     sprite.material = this.material;
     sprite.spriteID = this.spriteList.Count;
     this.spriteList.Add(sprite);
     return sprite;
 }
Ejemplo n.º 2
0
    // 配置文件加载结束回调
    private void ConfigLoadEnd()
    {
        // 创建一个 Sprite
        BaseSprite sprite = new BaseSprite();

        sprite.Init(Vector3.zero);
        SpriteManager.GetInstance().AddSprite(sprite);
        // 创建一个 Npc
        CheckNpc();
    }
Ejemplo n.º 3
0
 public BTConcrete(BaseSprite owner, long aiFunction, string aiConfig)
 {
     _owner = owner;
     _data  = DataCenter.behaviorData.GetBehaviorInfo(aiConfig);
     if (null == _data)
     {
         Debug.LogError("AIConfig not find:" + aiConfig);
     }
     SetData(aiFunction, _data, DataCenter.behaviorData.GetBehaviorInfo);
     Init(_owner);
 }
 public bool Contains(BaseSprite bs)
 {
     foreach (var item in regionSizes)
     {
         if (item.Contains(bs.trueMapSize()) || item.Intersects(bs.trueMapSize()))
         {
             return(true);
         }
     }
     return(false);
 }
        private void LoadWorld()
        {
            RpgLibrary.WorldClasses.LevelData levelData =
                Game.Content.Load <RpgLibrary.WorldClasses.LevelData>(@"Game\Levels\Starting Level");

            RpgLibrary.WorldClasses.MapData mapData =
                Game.Content.Load <RpgLibrary.WorldClasses.MapData>(@"Game\Levels\Maps\" + levelData.MapName);

            TileMap map = TileMap.FromMapData(mapData, Game.Content);

            Level level = new Level(map);

            ChestData chestData = Game.Content.Load <ChestData>(@"Game\Chests\Plain Chest");

            Chest chest = new Chest(chestData);

            BaseSprite chestSprite = new BaseSprite(
                containers,
                new Rectangle(0, 0, 32, 32),
                new Point(10, 10));

            ItemSprite itemSprite = new ItemSprite(
                chest,
                chestSprite);

            level.Chests.Add(itemSprite);

            World world = new World(GameRef, GameRef.ScreenRectangle);

            world.Levels.Add(level);
            world.CurrentLevel = 0;

            AnimatedSprite s = new AnimatedSprite(
                GameRef.Content.Load <Texture2D>(@"SpriteSheets\Eliza"),
                AnimationManager.Instance.Animations);

            s.Position = new Vector2(0 * Engine.TileWidth, 5 * Engine.TileHeight);

            EntityData ed = new EntityData("Eliza", 10, 10, 10, 10, 10, 10, "20|CON|12", "16|WIL|16",
                                           "0|0|0");

            Entity e = new Entity("Eliza", ed, EntityGender.Female, EntityType.NPC);

            NonPlayerCharacter npc = new NonPlayerCharacter(e, s);

            npc.SetConversation("eliza1");
            world.Levels[world.CurrentLevel].Characters.Add(npc);

            GamePlayScreen.World = world;

            CreateConversation();

            ((NonPlayerCharacter)world.Levels[world.CurrentLevel].Characters[0]).SetConversation("eliza1");
        }
Ejemplo n.º 6
0
 public bool Contains(BaseSprite bs)
 {
     foreach (var item in zoneSizes)
     {
         if (item.Contains(bs.spriteGameSize) || item.Intersects(bs.spriteGameSize))
         {
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 7
0
 internal bool CanPickUp(BaseSprite bs)
 {
     if (mapLoc == default(Rectangle))
     {
         mapLoc = new Rectangle(location.ToPoint(), new Point(64));
     }
     if (bs.trueMapSize().Contains(mapLoc) || bs.trueMapSize().Intersects(mapLoc))
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 8
0
 private void HandlePowerup(BaseSprite baseSprite)
 {
     if (baseSprite.spriteName.Equals("Fireflower"))
     {
         SetFire();
     }
     else if (baseSprite.spriteName.Equals("Mushroom"))
     {
         SetLarge();
     }
     baseSprite.DestroySprite();
 }
Ejemplo n.º 9
0
        protected override void LoadContent()
        {
            spriteBatch  = new SpriteBatch(GraphicsDevice);
            pixel        = Content.Load <Texture2D>("Textures/white2By2");
            torchTexture = Content.Load <Texture2D>("Textures/torch22by48");
            centerScreen = new Vector2(GraphicsDevice.Viewport.Width / 2, GraphicsDevice.Viewport.Height / 2);
            rgb          = new Tuple <Vector2, Vector2, Vector2>(new Vector2(100, 200), new Vector2(0, 120), new Vector2(0, 0));

            middlePx = new BaseSprite(pixel, centerScreen, Color.Green, Vector2.One);

            torch = new Torch(torchTexture, centerScreen, new Vector2(3f), 1.0f, Vector2.Zero, Vector2.Zero, 1f, pixel);
        }
Ejemplo n.º 10
0
    private void ConfigLoadEnd()
    {
        BaseSprite sprite = new BaseSprite();

        sprite.Init(Vector3.zero);
        _spriteList.Add(sprite);

        for (int i = 0; i < _spriteList.Count; ++i)
        {
            _spriteBTUpdateManager.AddSprite(sprite);
        }
    }
Ejemplo n.º 11
0
 private void checkBox6_CheckedChanged(object sender, EventArgs e)
 {
     if (listBox2.SelectedIndex != -1)
     {
         if (listBox3.SelectedIndex != -1)
         {
             ObjectGroup og   = listBox2.SelectedItem as ObjectGroup;
             BaseSprite  temp = og.groupItems[listBox3.SelectedIndex];
             temp.bIsActive = checkBox6.Checked;
         }
     }
 }
Ejemplo n.º 12
0
 protected override AnimationContext ApplyCore(BaseSprite sprite)
 {
     return(new RelativeVectorAnimationContext()
     {
         StartX = sprite.ScaleX,
         PrevX = sprite.ScaleX,
         FinalX = sprite.ScaleX + sprite.ScaleX * m_percentScaleX,
         StartY = sprite.ScaleY,
         PrevY = sprite.ScaleY,
         FinalY = sprite.ScaleY + sprite.ScaleY * m_percentScaleY,
     });
 }
Ejemplo n.º 13
0
 protected override AnimationContext ApplyCore(BaseSprite sprite)
 {
     return(new RelativeVectorAnimationContext()
     {
         StartX = sprite.X,
         PrevX = sprite.X,
         FinalX = sprite.X + m_diffX,
         StartY = sprite.Y,
         PrevY = sprite.Y,
         FinalY = sprite.Y + m_diffY,
     });
 }
Ejemplo n.º 14
0
        public List <BaseSprite> CreateBaseSprites(XElement elements)
        {
            BaseSprite sprite  = null;
            var        items   = elements.Descendants("Items");
            var        element = elements.Descendants("CustomProperties").Descendants("Property");

            float layerDepth = 0;

            foreach (var property in element)
            {
                if (property.Attribute("Name") != null)
                {
                    string name = property.Attribute("Name").Value;
                    if (name == "LayerDepth")
                    {
                        layerDepth = float.Parse(property.Descendants("string").First <XElement>().Value, CultureInfo.InvariantCulture);
                    }
                }
            }

            List <BaseSprite> lsSprites = new List <BaseSprite>();

            foreach (var item in items)
            {
                var parts = item.Descendants("Item");

                foreach (var part in parts)
                {
                    if (part.Name == "Item")
                    {
                        element = part.Descendants("Position");
                        float posx = float.Parse(element.Elements("X").ElementAt(0).Value, CultureInfo.InvariantCulture);
                        float posy = float.Parse(element.Elements("Y").ElementAt(0).Value, CultureInfo.InvariantCulture);

                        float rot = float.Parse(part.Elements("Rotation").ElementAt(0).Value, CultureInfo.InvariantCulture);

                        element = part.Descendants("Scale");
                        float width  = float.Parse(element.Elements("X").ElementAt(0).Value, CultureInfo.InvariantCulture);
                        float height = float.Parse(element.Elements("Y").ElementAt(0).Value, CultureInfo.InvariantCulture);

                        sprite          = new BaseSprite();
                        sprite.Rot      = rot;
                        sprite.PosZ     = layerDepth;
                        sprite.Position = new Vector2(posx, -posy);
                        sprite.Scale    = new Vector2(width, height);
                        lsSprites.Add(sprite);
                    }
                }
            }

            return(lsSprites);
        }
Ejemplo n.º 15
0
    public void Hurt(BaseSprite b)
    {
        if (!invulnerable)
        {
            if (large)
            {
                myAudio.PlayOneShot(powerDown);
                SetAnimator(smallAnimator);
                SetInvulnerable();
                //Start little recording
                if (startLittleRecord == 0)
                {
                    startLittleRecord = Time.time;
                }
                if (startLargeRecord != 0)
                {
                    if (LogHandler.Instance != null)
                    {
                        LogHandler.Instance.WriteLine(gameObject.name + " LargeState: StTime = " + startLargeRecord + " EdTime = " + Time.time);
                    }
                    startLargeRecord = 0;
                }
                large = false;
            }
            else if (fire)
            {
                myAudio.PlayOneShot(powerDown);
                SetAnimator(largeAnimator);
                SetInvulnerable();
                fire  = false;
                large = true;

                if (startLargeRecord == 0)
                {
                    startLargeRecord = 0;
                }

                if (startFireRecord != 0)
                {
                    if (LogHandler.Instance != null)
                    {
                        LogHandler.Instance.WriteLine(gameObject.name + " FireState: StTime = " + startFireRecord + " EdTime = " + Time.time);
                    }
                    startLargeRecord = 0;
                }
            }
            else
            {
                Kill(b);
            }
        }
    }
Ejemplo n.º 16
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="Controller.PlayerManager" /> class.
 ///     Postcondition: this.Player is a new instance of <see cref="Model.Player" /> class, this.Lives == 3,
 ///     this.ScoresMade == 0.
 /// </summary>
 /// <param name="lives">The number of lives this player starts with</param>
 /// <param name="winScore">
 ///     The number of times that this player needs to score in order
 ///     to win.
 /// </param>
 public PlayerManager(int lives, int winScore)
 {
     this.Disabled      = false;
     this.Lives         = lives;
     this.ScoresToWin   = winScore;
     this.ScoresMade    = 0;
     this.TotalScore    = 0;
     this.MovingSprite  = new PlayerMovingSprite();
     this.PlayerSprites = new List <BaseSprite>();
     this.Player        = new Player();
     this.setUpSprites();
     this.Player.ChangeSprite(this.PlayerSprites[0]);
 }
Ejemplo n.º 17
0
        BaseSprite LoadDonutCase(BaseSprite sprite, string texturedir, XElement part)
        {
            DonutCase c = new DonutCase(this);

            c.Scale = sprite.Scale;
            c.Initialize(Content);
            c.Position = sprite.Position;
            if (sprite.Rot != 0)
            {
                c.Rot = sprite.Rot;
            }
            return(c);
        }
Ejemplo n.º 18
0
        BaseSprite LoadBasketBall(BaseSprite sprite, string texturedir, XElement part)
        {
            BasketBall b = new BasketBall();

            b.Width     = sprite.Width;  // *sprite.ScaleX;
            b.Height    = sprite.Height; // *sprite.ScaleY;
            b.Dimension = sprite.Dimension;
            b.Scale     = sprite.Scale;
            b.World     = world;
            b.Initialize(Content);
            b.Position = sprite.Position;
            return(b);
        }
Ejemplo n.º 19
0
    public void RemoveSprite(int spriteId)
    {
        BaseSprite sprite = _spriteList.Find((bs) =>
        {
            return(bs.SpriteID == spriteId);
        });

        if (null == sprite)
        {
            return;
        }
        _spriteList.RemoveAll((bs) => {
            return(bs.SpriteID == spriteId);
        });
        _spriteBTUpdateManager.AddSprite(sprite);
    }
Ejemplo n.º 20
0
        private static Boolean CheckEnemyKillTarget(BaseSprite enemy, BaseSprite target)
        {
            Boolean test = MyGame.Manager.CollisionManager.BoxesCollision(enemy.Position, target.Position);

            if (!test)
            {
                return(false);
            }

            test = MyGame.Manager.CollisionManager.ColorCollision(enemy.Position, target.Position);
            if (!test)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 21
0
        private void listBox3_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox2.SelectedIndex != -1)
            {
                if (listBox3.SelectedIndex != -1)
                {
                    ObjectGroup og   = listBox2.SelectedItem as ObjectGroup;
                    BaseSprite  temp = og.groupItems[listBox3.SelectedIndex];



                    checkBox9.Checked = temp.bIsVisible;
                    checkBox6.Checked = temp.bIsActive;
                    checkBox7.Checked = temp.bHasCollision;
                    checkBox8.Checked = temp.bActivateOnTouch;
                }
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {
            if (seoColl != null && sheetTex != null)
            {
                generatedSources = new List <TileSource>();
                generatedObjects = new List <BaseSprite>();

                foreach (var item in seoColl.lseo)
                {
                    if (item.spriteObjectType == SpriteExportObject.spriteType.Tile)
                    {
                        TileSource ts = new TileSource();
                        ts.tileName                      = item.name;
                        ts.tileAnimation                 = new ShapeAnimation();
                        ts.tileAnimation.texFileLoc      = texLoc;
                        ts.tileAnimation.animationFrames = new List <Microsoft.Xna.Framework.Rectangle>(item.animationFrames);
                        ts.tileAnimation.ReloadTexture();
                        generatedSources.Add(ts);
                    }

                    if (item.spriteObjectType == SpriteExportObject.spriteType.Object)
                    {
                        BaseSprite ts = new BaseSprite();
                        ts.shapeName = item.name;
                        ShapeAnimation temp = new ShapeAnimation();
                        temp.texFileLoc      = texLoc;
                        temp.animationFrames = new List <Microsoft.Xna.Framework.Rectangle>(item.animationFrames);
                        temp.ReloadTexture();
                        ts.baseAnimations.Add(temp);
                        ts.spriteGameSize = new Microsoft.Xna.Framework.Rectangle(0, 0, item.width, item.height);
                        generatedObjects.Add(ts);
                        MapBuilder.gcDB.AddObject(ts);
                    }
                }

                foreach (var item in generatedSources)
                {
                    MapBuilder.gcDB.AddTile(item);
                }

                this.Close();
            }
        }
Ejemplo n.º 23
0
    public void PrintDeath(BaseSprite b)
    {
        if (b != null)
        {
            if (LogHandler.Instance != null)
            {
                LogHandler.Instance.WriteLine(gameObject.name + " Die = " + Time.time + " by " + b.spriteName);
            }
        }
        else
        {
            if (LogHandler.Instance != null)
            {
                LogHandler.Instance.WriteLine(gameObject.name + " Die = " + Time.time + " by gap");
            }
        }

        WriteTimeToPlay();
    }
Ejemplo n.º 24
0
    public void AddSprite(BaseSprite baseSprite)
    {
        if (_AiIDList.Contains(baseSprite.SpriteID))
        {
            return;
        }

        IBTNeedUpdate sprite = baseSprite as IBTNeedUpdate;

        if (sprite != null)
        {
            _AiList.Add(sprite);
            _AiIDList.Add(baseSprite.SpriteID);
        }
        else
        {
            UnityEngine.Debug.LogError("Error");
        }
    }
        public static void Start()
        {
            BasicSpriteSelector = new System.Windows.Forms.OpenFileDialog();
            bRunFileSelector    = true;
            BasicSpriteSelector.InitialDirectory = Environment.CurrentDirectory;

            BasicSpriteSelector.Filter      = "CGBS Files (.cgbs)|*.cgbs";
            BasicSpriteSelector.FilterIndex = 1;
            BasicSpriteSelector.Multiselect = false;

            System.Windows.Forms.DialogResult testDia = BasicSpriteSelector.ShowDialog();

            if (testDia == System.Windows.Forms.DialogResult.OK)
            {
                Console.WriteLine("You selected: " + BasicSpriteSelector.FileName);
                BaseSprite test = EditorFileWriter.BasicSpriteReader(BasicSpriteSelector.FileName);
                MapBuilder.testSprite = test;
                bRunFileSelector      = false;
            }
        }
        public void Start()
        {
            textBox1.Text        = "";
            newSprite            = new BaseSprite();
            numericUpDown1.Value = 0;
            numericUpDown4.Value = 64;
            numericUpDown5.Value = 64;
            textureloclabel.Text = "";
            selectedTex          = null;
            texBoxX = 64;
            texBoxY = 64;
            offX    = 0;
            offY    = 0;

            listBox1.DataSource = null;
            listBox1.DataSource = Enum.GetNames(typeof(SaveTypesObject));

            LoadLightEditorStuff();

            Show();
        }
 public void Start(BaseSprite bs, List <Node> mp, int rotationAtEndOfMovement = -1)
 {
     if (bs != null && mp.Count != 0)
     {
         Node n = new Node();
         n.coord      = (bs.position / 64).ToPoint();
         movingSprite = bs;
         movePath     = mp;
         movePath.Reverse();
         if (movePath.Find(node => node.coord == n.coord) == null)
         {
             movePath.Insert(0, n);
         }
         rotationAtEnd               = rotationAtEndOfMovement;
         bIsBusy                     = true;
         currentNodeIndex            = 0;
         timeSinceLastStep           = 0;
         movingSprite.animationIndex = (int)BaseCharacter.CharacterAnimations.Movement;
         finalPos                    = movePath[movePath.Count - 1].coord.ToVector2() * 64;
     }
 }
 public void AddObject(BaseSprite bs)
 {
     if (!groupItems.Contains(bs))
     {
         if (groupItems.Count == 0)
         {
             groupItems.Add(bs);
             groupItemsIDs.Add(bs.shapeID);
             relativeOffSet.Add(new Vector2(0, 0));
         }
         else
         {
             groupItems.Add(bs);
             groupItemsIDs.Add(bs.shapeID);
             relativeOffSet.Add((bs.position - groupItems[0].position));
         }
     }
     else
     {
         System.Windows.Forms.DialogResult dialogResult = System.Windows.Forms.MessageBox.Show("Seems like the current selected object group already contains that item, do you still wish to add it?", "WARNING", System.Windows.Forms.MessageBoxButtons.YesNo);
         if (dialogResult == System.Windows.Forms.DialogResult.Yes)
         {
             if (groupItems.Count == 0)
             {
                 groupItems.Add(bs);
                 groupItemsIDs.Add(bs.shapeID);
                 relativeOffSet.Add(new Vector2(0, 0));
             }
             else
             {
                 groupItems.Add(bs);
                 groupItemsIDs.Add(bs.shapeID);
                 relativeOffSet.Add((bs.position - groupItems[0].position));
             }
         }
         else if (dialogResult == System.Windows.Forms.DialogResult.No)
         {
         }
     }
 }
        internal bool CanPickUp(BaseSprite bs)
        {
            mapPUEntitiesInRange.Clear();
            List <Rectangle> regions = GameProcessor.loadedMap.chunksToConsider.Select(c => c.region).ToList();

            var tempList = mapPUEntities.FindAll(e => e.isInRegion(regions));

            for (int i = 0; i < tempList.Count; i++)
            {
                var temp = tempList[i].CanPickUp(bs);

                if (temp)
                {
                    mapPUEntitiesInRange.Add(tempList[i]);
                }
            }

            mapPUEntitiesInRange.RemoveAll(mue => mue.itemList.Count == 0);
            mapPUEntities.RemoveAll(mue => mue.itemList.Count == 0);

            return(mapPUEntitiesInRange.Count != 0 ? true : false);
        }
Ejemplo n.º 30
0
        public override void CreateCosmeticChildren(ComponentManager manager)
        {
            SpriteSheet spriteSheet = new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32, 32);

            BaseSprite = AddChild(new SimpleSprite(Manager, "Turret", Matrix.Identity, spriteSheet, new Point(2, 7))) as SimpleSprite;
            BaseSprite.OrientationType = SimpleSprite.OrientMode.YAxis;
            TurretSprite = AddChild(new SimpleSprite(Manager, "Turret", Matrix.CreateTranslation(Vector3.Up * 0.25f), spriteSheet, new Point(1, 7))) as SimpleSprite;
            TurretSprite.OrientationType = SimpleSprite.OrientMode.Fixed;
            SetTurretAngle(0.0f);

            BaseSprite.SetFlag(Flag.ShouldSerialize, false);
            TurretSprite.SetFlag(Flag.ShouldSerialize, false);
            AddChild(new Shadow(manager)).SetFlag(Flag.ShouldSerialize, false);

            AddChild(new GenericVoxelListener(Manager, Matrix.Identity, new Vector3(0.5f, 0.5f, 0.5f), new Vector3(0.0f, -1.0f, 0.0f), (changeEvent) =>
            {
                if (changeEvent.Type == VoxelChangeEventType.VoxelTypeChanged && changeEvent.NewVoxelType == 0)
                {
                    Die();
                }
            })).SetFlag(Flag.ShouldSerialize, false);
            base.CreateCosmeticChildren(manager);
        }
Ejemplo n.º 31
0
        private void button22_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Would you like to create a -completely- separate copy of the object with a differen ID? If not, every single object with the same ID on this map will have the newly created script.", "Script warning", MessageBoxButtons.YesNo);

            if (dialogResult == DialogResult.Yes)
            {
                BaseSprite temp = (BaseSprite)((BaseSprite)listBox2.SelectedItem).ShallowCopy();
                MapBuilder.gcDB.AddObject(temp);
                MapBuilder.loadedMap.mapSprites.Remove((BaseSprite)listBox2.SelectedItem);
                MapBuilder.loadedMap.mapSprites.Add(temp);
                scriptForm.Show();
                scriptForm.LoadScript(temp.script);
                if (listBox1.SelectedIndex != -1)
                {
                    listBox2.SelectedIndex = -1;
                    listBox2.Items.Clear();
                    listBox2.Items.AddRange(MapBuilder.loadedMap.mapSprites.FindAll(s => ((MapRegion)listBox1.SelectedItem).Contains(s)).ToArray());
                }
                else
                {
                    listBox2.SelectedIndex = -1;
                    listBox2.Items.Clear();
                    listBox2.Items.AddRange(MapBuilder.loadedMap.mapSprites.ToArray());
                }
            }
            else if (dialogResult == DialogResult.No)
            {
                if (listBox2.SelectedIndex != -1)
                {
                    //   MapBuilder.bCreatingScript = true;
                    scriptForm.Show();
                    scriptForm.LoadScript(((BaseSprite)listBox2.SelectedItem).script);
                    //    ScriptBuilder.Start(ref MapBuilder.parentMap.mapSprites[listBox1.SelectedIndex].script);
                }
            }
        }
Ejemplo n.º 32
0
 public void FocusSprite(BaseSprite focus)
 {
     if(focus != null)
     {
         bool change = true;
         if(focus is DPSprite)
         {
             ((DPSprite)focus).dialoguePosition.SetFocus();
             if(!((DPSprite)focus).dialoguePosition.focusable) change = false;
         }
         if(change)
         {
             this.spriteList.Remove(focus);
             this.spriteList.Insert(0, focus);
         }
     }
     int i=0;
     foreach(BaseSprite sprite in this.spriteList)
     {
         sprite.spriteID = i;
         sprite.UpdateTextures();
         i++;
     }
 }
Ejemplo n.º 33
0
 public void RemoveSprite(BaseSprite del)
 {
     this.spriteList.Remove(del);
     int i=0;
     foreach(BaseSprite sprite in this.spriteList)
     {
         sprite.spriteID = i;
         sprite.UpdateTextures();
         i++;
     }
 }
Ejemplo n.º 34
0
 public void AddSpecial(BaseSprite nSprite)
 {
     mSpecial.Add(nSprite);
 }