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); } }
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); } }
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); } } }
public void setEvent(TileEvent ev) { this.TileEvent = ev; }
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); } } }
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); } }
public void applyEventOnTilePointed(Point p, TileEvent ev) { Tile tileTouched = this.getTileAtLocation(p); if (tileTouched != null) { tileTouched.setEvent(ev); } }
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); } } }