public Game(int worldMaxX, int worldMaxY) { Logger = new JsonTraceListener(); World = new World(worldMaxX, worldMaxY); ItemFactory = new ItemFactory(); CreatureFactory = new CreatureFactory(World, Logger); Controller = new Controller(ref World); rnd = new Random(); _draw = new WorldDrawing(World); }
public Ball(int count, int newX, int newY, int newWidth, int newHeight, WorldDrawing drawing, bool isPushEnabled, int containerSize) { this.width = newWidth; this.height = newHeight; this.isPushEnabled = isPushEnabled; this.containerSize = containerSize; BitmapImage bi3 = new BitmapImage(); bi3.BeginInit(); this.Drawing = drawing; if (drawing != null) { bi3.UriSource = new Uri(drawing.BitmapFilePath, UriKind.Absolute); } else { bi3.UriSource = new Uri(@"Resources\particle1.png", UriKind.Relative); } bi3.CacheOption = BitmapCacheOption.OnLoad; bi3.EndInit(); this.Stretch = Stretch.Fill; this.Source = bi3; this.Name = "image" + count; this.Width = width; this.Height = height; Random rnd = new Random(); x = newX + (width / 2); y = newY + (height / 2); vX = (float)((rnd.NextDouble() * 3) + 1.000000f) / 10.00000f; vY = (float)((rnd.NextDouble() * 3) + 1.000000f) / 10.00000f; vX = vX / 10.000000f; vY = vY / 10.000000f; Canvas.SetLeft(this, x - width / 2); Canvas.SetTop(this, y - height / 2); this.IsHitTestVisible = true; this.TouchDown += new EventHandler <TouchEventArgs>(Ball_TouchDown); this.TouchMove += new EventHandler <TouchEventArgs>(Ball_TouchMove); this.TouchUp += new EventHandler <TouchEventArgs>(Ball_TouchUp); this.TouchLeave += new EventHandler <TouchEventArgs>(Ball_TouchLeave); }
private void addDrawingFromInkCanvas(SurfaceInkCanvas inkCanvas) { WorldDrawing drawing = currentWorld.createNewDrawing(); inkCanvas.Clip = new EllipseGeometry(new Point(inkCanvas.ActualWidth / 2, inkCanvas.ActualHeight / 2), inkCanvas.ActualWidth, inkCanvas.ActualHeight); //Save strokes FileStream fileStream = new FileStream(drawing.StrokesFilePath, FileMode.Create, FileAccess.Write); inkCanvas.Strokes.Save(fileStream); fileStream.Close(); //Save bitmap fileStream = new FileStream(drawing.BitmapFilePath, FileMode.Create, FileAccess.Write); int marg = int.Parse(inkCanvas.Margin.Left.ToString()); RenderTargetBitmap rtb = new RenderTargetBitmap((int)inkCanvas.ActualWidth - marg, (int)inkCanvas.ActualHeight - marg, 0, 0, PixelFormats.Pbgra32); rtb.Render(inkCanvas); PngBitmapEncoder png = new PngBitmapEncoder(); png.Frames.Add(BitmapFrame.Create(rtb)); png.Save(fileStream); fileStream.Close(); Image image = new Image(); image.Source = new ImageSourceConverter().ConvertFromString(drawing.BitmapFilePath) as ImageSource; Ball ball = new Ball(count, (int)(800 / 2 - 64), (int)(800 / 2 - 64), 128, 128, drawing, true, 800); planet.addBall(ball); inkCanvas.Strokes.Clear(); }