private void Canvas_MouseWheel(object sender, MouseWheelEventArgs e) { Point pointToWindow = e.GetPosition(canvas); CTerkepiCella tc = getTerkepiCellaAtScreenPosition(pointToWindow); Point regiCanvasCoord = getCanvasCoord(tc); double ho = scrollviewer1.HorizontalOffset; double vo = scrollviewer1.VerticalOffset; if (e.Delta == -120 && oldalhossz > 5) { oldalhossz -= 15; } if (e.Delta == 120 && oldalhossz < 100) { oldalhossz += 15; } zoom.Value = oldalhossz; terkeprajzolas(); Point ujCanvasCoord = getCanvasCoord(tc); scrollviewer1.ScrollToHorizontalOffset(ho + (ujCanvasCoord.X - regiCanvasCoord.X)); scrollviewer1.ScrollToVerticalOffset(vo + (ujCanvasCoord.Y - regiCanvasCoord.Y)); }
public Point getCanvasCoord(CTerkepiCella tc) { Point p1 = new Point(); if ((tc.Oszlop % 2) == 0) { p1.X = (int)(tc.Oszlop * offsetX() + tc.Oszlop * oldalhossz); p1.Y = (int)(tc.Sor * 2 * offsetY() + offsetY()); } else { p1.X = (int)(tc.Oszlop * offsetX() + tc.Oszlop * oldalhossz); p1.Y = (int)(tc.Sor * 2 * offsetY() + 2 * offsetY()); } return(p1); }
public CTerkepiEgyseg getTerkepiEgysegAtScreenPosition(Point p) { CTerkepiEgyseg ret = null; CTerkepiCella tc = getTerkepiCellaAtScreenPosition(p); foreach (CJatekos j in App.jatek.jatekosok) { foreach (CTerkepiEgyseg te in j.egysegekLista) { if (te.aktualisCella.Oszlop == tc.Oszlop && te.aktualisCella.Sor == tc.Sor) { return(te); } } } return(ret); }
public void OnLeftMouseDown(Point windowCoord) { CTerkepiCella tc = getTerkepiCellaAtScreenPosition(windowCoord); if (App.jatek.terkep.terkepAllapot == ETerkepAllapot.harc) { IHarcoloTerkepiEgyseg tempHarcoloEgyseg = null; tempHarcoloEgyseg = (IHarcoloTerkepiEgyseg)aktualisEgyseg; if (tempHarcoloEgyseg != null) { tempHarcoloEgyseg.Tamadas(App.jatek.terkep, getTerkepiEgysegAtScreenPosition(windowCoord)); } terkeprajzolas(); App.jatek.terkep.terkepAllapot = ETerkepAllapot.szabad; } //} }
private void canvas_Drop(object sender, DragEventArgs e) { App.jatek.terkep.terkepAllapot = ETerkepAllapot.szabad; Point pointToWindow = e.GetPosition(canvas); CTerkepiImage img = (CTerkepiImage)e.Data.GetData(typeof(CTerkepiImage)); CTerkepiCella cella = getTerkepiCellaAtScreenPosition(pointToWindow); IMozgoTerkepiEgyseg tempMozgoEgyseg = null; tempMozgoEgyseg = (IMozgoTerkepiEgyseg)img.terkepiEgyseg; if (tempMozgoEgyseg != null) { if (cella.tulaj != null) { tempMozgoEgyseg.mozgasCellara(App.jatek.terkep, cella); } } terkeprajzolas(); }
public CTerkepiCella getTerkepiCellaAtScreenPosition(Point p) { CTerkepiCella ret = null; for (int j = 0; j < App.jatek.terkep.magassag; j++) { for (int i = 0; i < App.jatek.terkep.szelesseg; i++) { PointCollection curvePoints = getScreenCoords(App.jatek.terkep.sorok[i][j]); for (int k = 0; k < 6; k++) { if (IsPointInPolygon4(curvePoints, p)) { ret = App.jatek.terkep.sorok[i][j]; return(ret); } } } } return(ret); }
public PointCollection getScreenCoords(CTerkepiCella tc) { Point p1 = getCanvasCoord(tc); Point p2 = p1; p2.X += offsetX(); p2.Y += offsetY(); Point p3 = p2; p3.X += oldalhossz; Point p4 = p3; p4.X += offsetX(); p4.Y -= offsetY(); Point p5 = p4; p5.X -= offsetX(); p5.Y -= offsetY(); Point p6 = p5; p6.X -= oldalhossz; PointCollection curvePoints = new PointCollection(); curvePoints.Add(p1); curvePoints.Add(p2); curvePoints.Add(p3); curvePoints.Add(p4); curvePoints.Add(p5); curvePoints.Add(p6); return(curvePoints); }
private void HandleKeyPressOnCanvas(object sender, KeyEventArgs e) { Point pointToWindow = Mouse.GetPosition(canvas); if (App.jatek.terkep.terkepAllapot == ETerkepAllapot.szerkesztes) { CTerkepiCella cella = getTerkepiCellaAtScreenPosition(pointToWindow); if (cella != null) { if (e.IsDown && e.Key == Key.D1) { cella.tulaj = App.jatek.jatekosok[0]; } if (e.IsDown && e.Key == Key.D2) { cella.tulaj = App.jatek.jatekosok[1]; } if (e.IsDown && e.Key == Key.D3) { cella.tulaj = App.jatek.jatekosok[2]; } if (e.IsDown && e.Key == Key.D0) { cella.tulaj = null; cella.extraSzomszed = null; } if (e.IsDown && e.Key == Key.LeftCtrl) { from = getTerkepiCellaAtScreenPosition(pointToWindow); } if (e.IsDown && e.Key == Key.LeftShift) { if (from != null) { if (getTerkepiCellaAtScreenPosition(pointToWindow).extraSzomszed == null) { getTerkepiCellaAtScreenPosition(pointToWindow).extraSzomszed = new List <CTerkepiCella>(); } CTerkepiCella c = getTerkepiCellaAtScreenPosition(pointToWindow); if (c.tulaj == from.tulaj) { c.extraSzomszed.Add(from); } } } if (e.IsDown && e.Key == Key.T) { CMozgoTerkepiEgyseg e3 = new CTank(); e3.aktualisCella = getTerkepiCellaAtScreenPosition(pointToWindow); e3.jatekos = e3.aktualisCella.tulaj; e3.aktualisCella.tulaj.egysegekLista.Add(e3); } if (e.IsDown && e.Key == Key.K) { CMozgoTerkepiEgyseg e3 = new CKatona(); e3.aktualisCella = getTerkepiCellaAtScreenPosition(pointToWindow); e3.jatekos = e3.aktualisCella.tulaj; e3.aktualisCella.tulaj.egysegekLista.Add(e3); } } terkeprajzolas(); } }