示例#1
0
 void LoadPathsAndWalls(MainGameViewModel context)
 {
     foreach (var path in context.Maze.Paths)
     {
         FileModelVisual3D fmv3D = new FileModelVisual3D();
         fmv3D.Source = context.AssemblyPath + ViewConstants.GiftModelPath;
         var     transformGroup = new Transform3DGroup();
         Binding binding        = new Binding();
         binding.Path   = new PropertyPath(ViewConstants.PropertyPathHaveGift);
         binding.Source = path;
         binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
         binding.Converter           = FindResource(ViewConstants.ResourceNameConverterBoolToVisibility) as BooleanToVisibilityConverter;
         BindingOperations.SetBinding(fmv3D, FileModelVisual3D.VisibilityProperty, binding);
         Vector3D vector = new Vector3D(path.Row * ViewConstants.OneTailSize, ViewConstants.GiftsYPos, path.Cell * -ViewConstants.OneTailSize);
         transformGroup.Children.Add(new TranslateTransform3D(vector));
         transformGroup.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1.0, 0.0, 0.0), 90)));
         transformGroup.Children.Add(new ScaleTransform3D(ViewConstants.ScaleAll, ViewConstants.ScaleAll, ViewConstants.ScaleAll));
         fmv3D.Transform = transformGroup;
         Viewport.Children.Add(fmv3D);
     }
     foreach (var wall in context.ListBricks)
     {
         FileModelVisual3D fmv3D = new FileModelVisual3D();
         fmv3D.Source = context.AssemblyPath + ViewConstants.WallModelPath;
         var      transformGroup = new Transform3DGroup();
         Vector3D vector         = new Vector3D(wall.X * ViewConstants.OneTailSize, 0.0, wall.Y * -ViewConstants.OneTailSize);
         transformGroup.Children.Add(new TranslateTransform3D(vector));
         transformGroup.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1.0, 0.0, 0.0), 90)));
         transformGroup.Children.Add(new ScaleTransform3D(ViewConstants.ScaleAll, ViewConstants.ScaleAll, ViewConstants.ScaleAll));
         fmv3D.Transform = transformGroup;
         Viewport.Children.Add(fmv3D);
     }
 }
示例#2
0
        FileModelVisual3D LoadModelPath(MainGameViewModel context, string path)
        {
            FileModelVisual3D fmv3D = new FileModelVisual3D();

            fmv3D.Source = context.AssemblyPath + path;
            return(fmv3D);
        }
示例#3
0
        Transform3DGroup LoadModelPositionScaleAndBaseRot(MainGameViewModel context, object Source)
        {
            var     transformGroup      = new Transform3DGroup();
            Binding bindingAngleRot     = new Binding();
            var     axisAngleRotation3D = new AxisAngleRotation3D();

            axisAngleRotation3D.Axis            = new Vector3D(0.0, 1.0, 0.0);
            bindingAngleRot.Path                = new PropertyPath(ViewConstants.PropertyPathDirection);
            bindingAngleRot.Source              = Source;
            bindingAngleRot.Converter           = new DirectionToRotationConverter();
            bindingAngleRot.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            BindingOperations.SetBinding(axisAngleRotation3D, AxisAngleRotation3D.AngleProperty, bindingAngleRot);
            transformGroup.Children.Add(new RotateTransform3D(axisAngleRotation3D));

            var     translateTransform = new TranslateTransform3D();
            Binding bindingX           = new Binding();

            bindingX.Path   = new PropertyPath(ViewConstants.PropertyPathRow);
            bindingX.Source = Source;
            bindingX.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            bindingX.Converter           = new GridToPosXConverter();
            BindingOperations.SetBinding(translateTransform, TranslateTransform3D.OffsetXProperty, bindingX);

            Binding bindingZ = new Binding();

            bindingZ.Path   = new PropertyPath(ViewConstants.PropertyPathCell);
            bindingZ.Source = Source;
            bindingZ.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            bindingZ.Converter           = new GridToPosZConverter();
            BindingOperations.SetBinding(translateTransform, TranslateTransform3D.OffsetZProperty, bindingZ);

            transformGroup.Children.Add(translateTransform);
            transformGroup.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1.0, 0.0, 0.0), 90)));
            transformGroup.Children.Add(new ScaleTransform3D(ViewConstants.ScaleAll, ViewConstants.ScaleAll, ViewConstants.ScaleAll));
            return(transformGroup);
        }
        public MainGamePage()
        {
            this.InitializeComponent();

            DataContext = new MainGameViewModel();
        }
示例#5
0
        public MainGamePage()
        {
            InitializeComponent();

            BindingContext = new MainGameViewModel();
        }