コード例 #1
0
ファイル: Game.cs プロジェクト: Jakob-Droid/GameFrameWorkV2
 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);
 }
コード例 #2
0
ファイル: Ball.cs プロジェクト: DigohD/Cultural-Tabletop
        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);
        }
コード例 #3
0
        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();
        }