Esempio n. 1
0
        private void addEventToListView(TileEvent tileEvent)
        {
            if (tileEvent != null)
            {
                ListViewItem itemEvent = new ListViewItem();
                itemEvent.Text = tileEvent.Name;
                itemEvent.Tag  = tileEvent;

                if (tileEvent.Type == TileEvent.TileEventType.collision)
                {
                    itemEvent.ImageIndex = 0;
                }
                else if (tileEvent.Type == TileEvent.TileEventType.postCollision)
                {
                    itemEvent.ImageIndex = 1;
                }
                else if (tileEvent.Type == TileEvent.TileEventType.preCollision)
                {
                    itemEvent.ImageIndex = 2;
                }
                else if (tileEvent.Type == TileEvent.TileEventType.touch)
                {
                    itemEvent.ImageIndex = 3;
                }

                this.eventListView.Items.Add(itemEvent);
            }
        }
Esempio n. 2
0
        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            if (this.currentTilesMap != null)
            {
                string eventName = this.eventNameTxtBx.Text.Replace(" ", "");

                TileEvent.TileEventType eventType = TileEvent.TileEventType.collision;
                if (this.eventTypeCmbBx.SelectedText.Equals("collision"))
                {
                    eventType = TileEvent.TileEventType.collision;
                }
                else if (this.eventTypeCmbBx.SelectedText.Equals("preCollision"))
                {
                    eventType = TileEvent.TileEventType.preCollision;
                }
                else if (this.eventTypeCmbBx.SelectedText.Equals("postCollision"))
                {
                    eventType = TileEvent.TileEventType.postCollision;
                }
                else if (this.eventTypeCmbBx.SelectedText.Equals("touch"))
                {
                    eventType = TileEvent.TileEventType.touch;
                }

                TileEvent tileEvent = new TileEvent(eventName, eventType);
                this.addEventToListView(tileEvent);
                this.currentTilesMap.TileEvents.Add(tileEvent);
            }
        }
Esempio n. 3
0
        private void toolStripButton7_Click(object sender, EventArgs e)
        {
            if (this.currentTilesMap != null)
            {
                ListViewItem[] list = new ListViewItem[this.eventListView.SelectedItems.Count];
                this.eventListView.SelectedItems.CopyTo(list, 0);
                for (int i = 0; i < list.Length; i++)
                {
                    ListViewItem item          = list[i];
                    TileEvent    eventSelected = item.Tag as TileEvent;
                    if (this.currentTilesMap.TileEvents.Contains(eventSelected))
                    {
                        this.currentTilesMap.TileEvents.Remove(eventSelected);
                    }

                    this.eventListView.Items.Remove(item);
                }
            }
        }
Esempio n. 4
0
 public void setEvent(TileEvent ev)
 {
     this.TileEvent = ev;
 }
Esempio n. 5
0
        public void Draw(Graphics g, Point offsetPoint, string layerToShow, bool showCollision)
        {
            Point pDest = new Point(this.mapParent.Location.X + this.Location.X + offsetPoint.X, this.mapParent.Location.Y + this.Location.Y + offsetPoint.Y);

            if (layerToShow.Equals("ALL") || layerToShow.Equals("TEXTURE"))
            {
                //Dessiner l'image associée
                if (this.TileModelTexture != null)
                {
                    g.DrawImage(this.TileModelTexture.Image, new Rectangle(pDest, new Size(this.mapParent.TilesWidth, this.mapParent.TilesHeight)));
                }


                if (this.TileTextureSequence != null)
                {
                    if (this.mapParent.TextureSequences.Contains(this.TileTextureSequence) && this.TileTextureSequence.Frames.Count > 0)
                    {
                        g.DrawImage(this.TileTextureSequence.Frames[0].Image, new Rectangle(pDest, new Size(this.mapParent.TilesWidth, this.mapParent.TilesHeight)));
                    }
                    else
                    {
                        this.TileTextureSequence = null;
                    }
                }
            }


            if (layerToShow.Equals("ALL") || layerToShow.Equals("OBJECT"))
            {
                if (this.TileModelImageObject != null)
                {
                    g.DrawImage(this.TileModelImageObject.Image, new Rectangle(pDest, new Size(this.mapParent.TilesWidth, this.mapParent.TilesHeight)));
                }


                if (this.TileObjectSequence != null)
                {
                    if (this.mapParent.ObjectSequences.Contains(this.TileObjectSequence) && this.TileObjectSequence.Frames.Count > 0)
                    {
                        g.DrawImage(this.TileObjectSequence.Frames[0].Image, new Rectangle(pDest, new Size(this.mapParent.TilesWidth, this.mapParent.TilesHeight)));
                    }
                    else
                    {
                        this.TileObjectSequence = null;
                    }
                }
            }

            if (layerToShow.Equals("ALL") || layerToShow.Equals("EVENT"))
            {
                if (this.TileEvent != null)
                {
                    if (this.mapParent.TileEvents.Contains(this.TileEvent))
                    {
                        if (this.TileEvent.Type == TilesMapping.TileEvent.TileEventType.collision)
                        {
                            g.DrawImage(Properties.Resources.collisionIcon2, new Rectangle(pDest, new Size(this.mapParent.TilesWidth / 2, this.mapParent.TilesHeight / 2)));
                        }
                        else if (this.TileEvent.Type == TilesMapping.TileEvent.TileEventType.preCollision)
                        {
                            g.DrawImage(Properties.Resources.preCollisionIcon, new Rectangle(pDest, new Size(this.mapParent.TilesWidth / 2, this.mapParent.TilesHeight / 2)));
                        }
                        else if (this.TileEvent.Type == TilesMapping.TileEvent.TileEventType.postCollision)
                        {
                            g.DrawImage(Properties.Resources.postCollisionIcon, new Rectangle(pDest, new Size(this.mapParent.TilesWidth / 2, this.mapParent.TilesHeight / 2)));
                        }
                        else if (this.TileEvent.Type == TilesMapping.TileEvent.TileEventType.touch)
                        {
                            g.DrawImage(Properties.Resources.touchIcon, new Rectangle(pDest, new Size(this.mapParent.TilesWidth / 2, this.mapParent.TilesHeight / 2)));
                        }
                    }
                    else
                    {
                        this.TileEvent = null;
                    }
                }
            }

            if (showCollision == true)
            {
                if (this.IsCrossable == true)
                {
                    Brush brosse = new SolidBrush(Color.FromArgb(50, Color.LightBlue));

                    g.FillRectangle(brosse, pDest.X, pDest.Y, this.Width, this.Height);
                }
                else
                {
                    Brush brosse = new SolidBrush(Color.FromArgb(50, Color.Red));
                    g.FillRectangle(brosse, pDest.X, pDest.Y, this.Width, this.Height);
                }
            }
        }
Esempio n. 6
0
        public void DrawGorgon(Point offsetPoint, string layerToShow, bool showCollision, float worldScale)
        {
            Point pDest = new Point((int)((this.mapParent.Location.X + this.Location.X + offsetPoint.X) * worldScale),
                                    (int)((this.mapParent.Location.Y + this.Location.Y + offsetPoint.Y) * worldScale));

            Rectangle rectDest = new Rectangle(pDest,
                                               new Size((int)((this.mapParent.TilesWidth * worldScale)),
                                                        (int)((this.mapParent.TilesHeight) * worldScale)));

            if (layerToShow.Equals("ALL") || layerToShow.Equals("TEXTURE"))
            {
                //Dessiner l'image associée
                if (this.TileModelTexture != null)
                {
                    GorgonLibrary.Graphics.Sprite sprite = this.TileModelTexture.GorgonSprite;
                    if (sprite != null && sprite.Image != null)
                    {
                        float imgScaleX = (float)this.mapParent.TilesWidth / (float)sprite.Image.Width;
                        float imgScaleY = (float)this.mapParent.TilesHeight / (float)sprite.Image.Height;

                        float finalXScale = worldScale * imgScaleX;
                        float finalYScale = worldScale * imgScaleY;
                        sprite.SetScale(finalXScale, finalYScale);

                        sprite.SetPosition(pDest.X, pDest.Y);
                        sprite.Draw();
                    }
                    else
                    {
                        this.TileModelTexture = null;
                    }
                }


                if (this.TileTextureSequence != null)
                {
                    if (this.mapParent.TextureSequences.Contains(this.TileTextureSequence) && this.TileTextureSequence.Frames.Count > 0)
                    {
                        GorgonLibrary.Graphics.Sprite sprite = this.TileTextureSequence.Frames[0].GorgonSprite;
                        if (sprite != null && sprite.Image != null)
                        {
                            float imgScaleX = (float)this.mapParent.TilesWidth / (float)sprite.Image.Width;
                            float imgScaleY = (float)this.mapParent.TilesHeight / (float)sprite.Image.Height;

                            float finalXScale = worldScale * imgScaleX;
                            float finalYScale = worldScale * imgScaleY;
                            sprite.SetScale(finalXScale, finalYScale);

                            sprite.SetPosition(pDest.X, pDest.Y);
                            sprite.Draw();
                        }
                    }
                    else
                    {
                        this.TileTextureSequence = null;
                    }
                }
            }


            if (layerToShow.Equals("ALL") || layerToShow.Equals("OBJECT"))
            {
                if (this.TileModelImageObject != null)
                {
                    GorgonLibrary.Graphics.Sprite sprite = this.TileModelImageObject.GorgonSprite;
                    if (sprite != null && sprite.Image != null)
                    {
                        float imgScaleX = (float)this.mapParent.TilesWidth / (float)sprite.Image.Width;
                        float imgScaleY = (float)this.mapParent.TilesHeight / (float)sprite.Image.Height;

                        float finalXScale = worldScale * imgScaleX;
                        float finalYScale = worldScale * imgScaleY;
                        sprite.SetScale(finalXScale, finalYScale);

                        sprite.SetPosition(pDest.X, pDest.Y);
                        sprite.Draw();
                    }
                    else
                    {
                        this.TileModelImageObject = null;
                    }
                }


                if (this.TileObjectSequence != null)
                {
                    if (this.mapParent.ObjectSequences.Contains(this.TileObjectSequence) && this.TileObjectSequence.Frames.Count > 0)
                    {
                        GorgonLibrary.Graphics.Sprite sprite = this.TileObjectSequence.Frames[0].GorgonSprite;
                        if (sprite != null && sprite.Image != null)
                        {
                            float imgScaleX = (float)this.mapParent.TilesWidth / (float)sprite.Image.Width;
                            float imgScaleY = (float)this.mapParent.TilesHeight / (float)sprite.Image.Height;

                            float finalXScale = worldScale * imgScaleX;
                            float finalYScale = worldScale * imgScaleY;
                            sprite.SetScale(finalXScale, finalYScale);

                            sprite.SetPosition(pDest.X, pDest.Y);
                            sprite.Draw();
                        }
                        else
                        {
                            this.TileObjectSequence = null;
                        }
                    }
                    else
                    {
                        this.TileObjectSequence = null;
                    }
                }
            }

            if (layerToShow.Equals("ALL") || layerToShow.Equals("EVENT"))
            {
                if (this.TileEvent != null)
                {
                    if (this.mapParent.TileEvents.Contains(this.TileEvent))
                    {
                        GorgonLibrary.Graphics.Sprite sprite = null;
                        if (this.TileEvent.Type == TilesMapping.TileEvent.TileEventType.collision)
                        {
                            sprite = this.mapParent.CollisionEventSprite;
                        }
                        else if (this.TileEvent.Type == TilesMapping.TileEvent.TileEventType.preCollision)
                        {
                            sprite = this.mapParent.PreCollisionEventSprite;
                        }
                        else if (this.TileEvent.Type == TilesMapping.TileEvent.TileEventType.postCollision)
                        {
                            sprite = this.mapParent.PostCollisionEventSprite;
                        }
                        else if (this.TileEvent.Type == TilesMapping.TileEvent.TileEventType.touch)
                        {
                            sprite = this.mapParent.TouchEventSprite;
                        }

                        if (sprite != null)
                        {
                            float imgScaleX = (float)this.mapParent.TilesWidth / 2 / (float)sprite.Image.Width;
                            float imgScaleY = (float)this.mapParent.TilesHeight / 2 / (float)sprite.Image.Height;

                            float finalXScale = worldScale * imgScaleX;
                            float finalYScale = worldScale * imgScaleY;
                            sprite.SetScale(finalXScale, finalYScale);

                            sprite.SetPosition(pDest.X, pDest.Y);
                            sprite.Draw();
                        }
                    }
                    else
                    {
                        this.TileEvent = null;
                    }
                }
            }

            if (showCollision == true)
            {
                Color color;
                if (this.IsCrossable == true)
                {
                    color = Color.FromArgb(50, Color.LightBlue);
                }
                else
                {
                    color = Color.FromArgb(100, Color.Red);
                }


                Rectangle rectCollision = new Rectangle(this.mapParent.Location.X + this.Location.X + offsetPoint.X,
                                                        this.mapParent.Location.Y + this.Location.Y + offsetPoint.Y,
                                                        this.mapParent.TilesWidth, this.mapParent.TilesHeight);

                GorgonGraphicsHelper.Instance.FillRectangle(rectCollision, 1, color, worldScale, false);
            }
        }
Esempio n. 7
0
 public void applyEventOnTilePointed(Point p, TileEvent ev)
 {
     Tile tileTouched = this.getTileAtLocation(p);
     if (tileTouched != null)
     {
         tileTouched.setEvent(ev);
     }
 }
Esempio n. 8
0
        public void applyEventOnAllTiles(TileEvent ev)
        {
            for (int i = 0; i < this.NbLines; i++)
            {
                for (int j = 0; j < this.NbColumns; j++)
                {
                    this.TabTiles[i, j].setEvent(ev);

                }
            }
        }