Inheritance: MonoBehaviour
	void Awake ()
	{
		if (instance == null)
			instance = this;
		else if (instance != this)
			Destroy (this.gameObject);
	}
示例#2
0
 public GraphViewer()
 {
     _gridDrawer = new GridDrawer
     {
         CellSize = 15
     };
 }
示例#3
0
        internal void Initialize()
        {
            this._camera.Initialize(this._editorGame.CurrentScene);
            var gridSize = this.GetGridSize();

            this._primaryGridDrawer = new GridDrawer()
            {
                Camera                  = this._camera,
                Color                   = new Color(255, 255, 255, 100),
                ColumnWidth             = gridSize,
                LineThickness           = 1f,
                RowHeight               = gridSize,
                UseDynamicLineThickness = true
            };

            this._primaryGridDrawer.Initialize(this._editorGame.CurrentScene);

            var smallGridSize = gridSize / 2f;

            this._secondaryGridDrawer = new GridDrawer()
            {
                Camera                  = this._camera,
                Color                   = new Color(255, 255, 255, 75),
                ColumnWidth             = smallGridSize,
                LineThickness           = 1f,
                RowHeight               = smallGridSize,
                UseDynamicLineThickness = true
            };

            this._secondaryGridDrawer.Initialize(this._editorGame.CurrentScene);
        }
示例#4
0
    public void ShowPos()
    {
        //对象中心位置
        nomalizePos.x = (int)transform.position.x;
        nomalizePos.z = (int)transform.position.z;

        canBuild = true;
        buildingInfo.rectangle.enable = true;
        //将整数化的坐标记录在grids中
        for (int i = 0; i < buildingInfo.widght; i++)
        {
            for (int j = 0; j < buildingInfo.length; j++)
            {
                int gx = (int)nomalizePos.x + i - (buildingInfo.widght / 2);
                int gz = (int)nomalizePos.z + j - (buildingInfo.length / 2);
                buildingInfo.locat[i, j].pos    = new Vector3(gx, transform.position.y, gz);
                buildingInfo.locat[i, j].enable = ctrl.HaveBuild(buildingInfo.locat[i, j].pos);
                //当有一个不满足,就不能够建造
                if (!buildingInfo.locat[i, j].enable)
                {
                    canBuild = false;
                    buildingInfo.rectangle.enable = false;
                }
            }
        }

        buildingInfo.rectangle.pos = transform.position;

        if (!buildingInfo.didDraw)
        {
            gikey = GridDrawer.AddRectangle(buildingInfo.rectangle);
            buildingInfo.didDraw = true;
        }
    }
示例#5
0
    private void BulidOrNot()
    {
        if (canBuild && Input.GetMouseButtonDown(0))
        {
            //修正对象坐标
            Vector3 fixedPos = buildingInfo.locat[0, 0].pos;
            fixedPos.x        += buildingInfo.widght / 2f - 0.5f;
            fixedPos.z        += buildingInfo.length / 2f - 0.5f;
            fixedPos.y         = transform.position.y;
            transform.position = fixedPos;

            //修改建造状态
            buildingInfo.didDraw    = false;
            buildingInfo.buildState = BuildState.Normal;
            GridDrawer.DropRectangle(gikey);
            //记录建筑信息
            ctrl.AddNewBuiliding(this);
        }
        else if (Input.GetMouseButtonDown(1))
        {
            //清空建造提示
            GridDrawer.DropRectangle(gikey);
            //销毁对象
            Destroy(gameObject);
            //修改建造状态
            buildingInfo.buildState = BuildState.Normal;
        }
    }
示例#6
0
    private GameObject CreateShipGroup(ClientShip targetShip, string targetShipResPath, float shipWrapRadius)
    {
        GameObject group = new GameObject();

        group.transform.SetParent(DeploySceneManager.Instance.PlayerGridDrawer.GridInstance.transform);

        //约定组名为目标舰船在数据索引值,记录之,方便传给战斗布阵单元的坐标
        group.name = PlayerSys.GetPlayerShipList().IndexOf(targetShip).ToString();
        // 初始化阵形
        BattleSys.SetFormation(true, targetShip);
        //成组上阵,组中舰船的数量
        int groupMemberCount = targetShip.Reference.stack ? targetShip.Reference.stack_num : 1;

        BoxCollider tempCollider = null;

        for (int i = 0; i < groupMemberCount; i++)
        {
            Vector3    pos    = targetShip.FormationList == null ? Vector3.zero : targetShip.FormationList[i];
            GameObject member = CreateShip(targetShipResPath, group.transform, GridDrawer.OffsetByWrapRadius(pos, shipWrapRadius));

            if (tempCollider == null)
            {
                tempCollider = member.GetComponent <BoxCollider>();
            }
            Destroy(member.GetComponent <BoxCollider>());
            DestoryTrailEffect(member);
        }

        //添加tag,用于点选式布阵的碰撞检测
        group.tag = "ShipModel";

        return(group);
    }
        public PrintingDataGridViewProvider(GridDrawer drawer, PrintDocument printDocument)
        {
            _PrintPageEventHandler = new PrintPageEventHandler(PrintDocument_PrintPage);

            _Drawer = drawer;

            this.PrintDocument = printDocument;
        }
 void OnSceneGUI(SceneView sceneView)
 {
     if (showGrid)
     {
         GridDrawer.Draw(level.Grid, gridSize);
         sceneView.Repaint();
     }
 }
        public PrintingDataGridViewProvider(GridDrawer drawer, PrintDocument printDocument)
        {
            _PrintPageEventHandler = new PrintPageEventHandler(PrintDocument_PrintPage);

            _Drawer = drawer;

            this.PrintDocument = printDocument;
        }
示例#10
0
    // Start is called before the first frame update


    public void Start()
    {
        if (gridDrawer == null)
        {
            gridDrawer = this;
        }
        else
        {
            Debug.LogError("Multiple grid drawers n scene, that is not allowed");
        }
    }
示例#11
0
文件: Main.cs 项目: GloomyBoy/Solver
        private void clbSwaps_SelectedIndexChanged(object sender, EventArgs e)
        {
            var listBox = sender as CheckedListBox;
            var swap    = listBox.SelectedItem as SwapResult;

            pbGameGrid.Image = GridDrawer.GetGridImage(_grid);
            GridDrawer.DrawSwap((Bitmap)pbGameGrid.Image, swap);
            pbEnemies.Image = new Bitmap(pbEnemies.Width, pbEnemies.Height);
            GridDrawer.GetGridEnemies(_grid, pbEnemies.Image);
            GridDrawer.GetSwapResultPicture(swap, pbEnemies.Image);
            //var proposed = swap.NextTurnPropositions;
        }
示例#12
0
 private void DrawGrid(Grid grid, Graphics graph)
 {
     for (int i = 0; i < grid.Width; i++)
     {
         for (int j = 0; j < grid.Height; j++)
         {
             var point = new Point(Consts.GRID_LEFT_TOP.X + Consts.CELL_SIZE * i, Consts.GRID_LEFT_TOP.Y + Consts.CELL_SIZE * j);
             var color = GridDrawer.GetCellColor(grid[i, j].Tag);
             var pen   = new Pen(color, 3);
             graph.DrawRectangle(pen, point.X, point.Y, Consts.CELL_SIZE - 3, Consts.CELL_SIZE - 3);
         }
     }
 }
示例#13
0
        private void Start()
        {
            m_gridDrawer = FindObjectOfType <GridDrawer>();

            var types = GestureTypesManager.Instance.LoadTypes();

            SetGestureTypesOptions(types);

            m_currentGesturesDropdown.onValueChanged.AddListener(val =>
            {
                if (OnGestureTypeSelected != null)
                {
                    OnGestureTypeSelected(m_currentGesturesDropdown.options[val].text);
                }
            });

            Destroy(m_recordingEnablingToggle.gameObject);
            //m_recordingEnablingToggle.OnSelectEvents.AddListener(() => { ToggleRecording(); });

            m_addGestureType.OnButtonClicked    += M_addGestureType_OnButtonClicked;
            m_removeGestureType.OnButtonClicked += M_removeGestureType_OnButtonClicked;

            var datasets = DatasetManager.Instance.LoadDatasets();

            DisplayDatasets(datasets);

            m_addDataset.OnButtonClicked    += M_addDataset_OnButtonClicked;
            m_removeDataset.OnButtonClicked += M_removeDataset_OnButtonClicked;

            m_datasetsDropdown.onValueChanged.AddListener(val =>
            {
                if (OnDatasetSelected != null)
                {
                    OnDatasetSelected(m_datasetsDropdown.options[val].text);
                }
            });

            m_cleanScreen.OnButtonClicked += M_cleanScreen_OnButtonClicked;
            m_saveImage.OnButtonClicked   += M_saveImage_OnButtonClicked;

            OnGestureTypeSelected += UIManager_OnGestureTypeSelected;
            OnDatasetSelected     += UIManager_OnDatasetSelected;

            m_currentGestureTypeName = types.Count != 0 ? types[0] : null;
            m_currentDatasetName     = datasets.Count != 0 ? datasets[0] : null;

            CustomGestureRecognizer.Instance.OnGestureRecognized += Instance_OnGestureRecognized;


            m_uploadButton.OnButtonClicked += (gO) => UploadImages();
        }
示例#14
0
        public MainWindow()
        {
            var assemblyName = System.Reflection.Assembly.GetExecutingAssembly().GetName();

            _windowTitlePrefix = "Rationals Explorer ";
#if DEBUG
            _windowTitlePrefix += assemblyName.Version.ToString();
#else
            _windowTitlePrefix += String.Format("{0}.{1}", assemblyName.Version.Major, assemblyName.Version.Minor);
#endif

            _viewport = new TD.Viewport3();

            _drawerSettings = DrawerSettings.Reset();

            _gridDrawer = new GridDrawer();

            // Initialize from Xaml
            AvaloniaXamlLoader.Load(this);

            _mainGrid = ExpectControl <Grid>(this, "mainGrid");

            _mainImageControl = ExpectControl <Image>(this, "mainImage");

            var mainImagePanel = ExpectControl <Control>(this, "mainImagePanel");
            mainImagePanel.GetObservable(Control.BoundsProperty).Subscribe(OnMainImageBoundsChanged);

            _menuPresetSave        = ExpectControl <Control>(this, "menuPresetSave");
            _menuPresetRecent      = ExpectControl <ItemsControl>(this, "menuPresetRecent");
            _menuPresetRecentItems = new Avalonia.Collections.AvaloniaList <MenuItem>();

            _textBoxSelectionInfo = ExpectControl <TextBox>(this, "textBoxSelectionInfo");

            // prepare rendering
            _eventRenderDoWork = new System.Threading.AutoResetEvent(false);
            //
            _threadRender      = new System.Threading.Thread(RenderThread);
            _threadRender.Name = "Render";
            _threadRender.Start();

            //
            FindDrawerSettingsControls(this);
            InitSoundEngines();

            LoadAppSettings();

            // Propagate some settings to Drawer
            _gridDrawer.SetSystemSettings(_systemSettings.drawerFont);
        }
        public void Render()
        {
            GridDrawer.DrawGrid(EditorConfig.smallGridSpacing, EditorConfig.smallGridOpacity, window.position, ref offset, ref drag);
            GridDrawer.DrawGrid(EditorConfig.largeGridSpacing, EditorConfig.largeGridOpacity, window.position, ref offset, ref drag);
            MenuBarDrawer.DrawMenuBar(window);

            selectorNodeDrawer.Draw(window?.selectorNodes);
            actionNodeDrawer.Draw(window?.actionNodes);
            pinDrawer.Draw(window.connectionPins);

            if (selectedPin != null)
            {
                connectionDrawer.DrawDraggedLine(selectedPin, Event.current.mousePosition);
            }
            connectionDrawer.DrawConnections(window.connections);
        }
示例#16
0
        private void DrawWeakSpot(Grid grid, Graphics graph)
        {
            int weakSpotY = 15;

            if (grid.WeakSlot >= 0)
            {
                Brush b     = new SolidBrush(GridDrawer.GetCellColor(grid._enemies[grid.WeakSlot]));
                var   point = new Point(Consts.GRID_LEFT_TOP.X + Consts.CELL_SIZE * grid.WeakSlot + Consts.CELL_SIZE / 2, Consts.GRID_LEFT_TOP.Y - weakSpotY);
                graph.FillPolygon(b, new Point[]
                {
                    new Point(point.X - 15, point.Y),
                    new Point(point.X, point.Y - 15),
                    new Point(point.X + 15, point.Y),
                    new Point(point.X - 15, point.Y)
                });
            }
        }
示例#17
0
        static void DisplayGizmos(MapEditorModel mapEditorModel)
        {
            MapEditorData data = mapEditorModel.Data;

            if (data == null)
            {
                return;
            }

            if (data.Grid.DrawGrid)
            {
                GridDrawer.DrawGizmosGrid(mapEditorModel.Data.Grid);
            }

            if (data.DrawCase)
            {
                DrawGizmosCases(mapEditorModel);
            }
        }
示例#18
0
文件: Main.cs 项目: GloomyBoy/Solver
        private void LoadImage(Bitmap bitmap)
        {
            if (bitmap == null)
            {
                return;
            }
            PictureHelper.LoadImage(bitmap, out var grid);
            if (grid == null || grid.IsEqual(_grid))
            {
                return;
            }

            _grid = grid;
            if (cbRec.Checked)
            {
                bitmap.Save(_recordFolder + $"\\record_{_recordIndex}.png");
                _recordIndex++;
            }
            if (_grid.WeakSlot >= 0 && cbTitanColor.SelectedIndex >= 0)
            {
                foreach (var i in Enumerable.Range(1, 5))
                {
                    _grid._enemies[i] = (CellColor)cbTitanColor.SelectedItem;
                }
            }
            pbGameGrid.Image = GridDrawer.GetGridImage(grid);
            pbEnemies.Image  = new Bitmap(pbEnemies.Width, pbEnemies.Height);
            GridDrawer.GetGridEnemies(grid, pbEnemies.Image);
            var results = GridAnalyzer.GetPossibleSwaps(grid);

            results = results.OrderByDescending(r => r, new TitanSwapComparer()).ToList();
            clbSwaps.Items.Clear();
            clbSwaps.Items.AddRange(items: results.ToArray());
            if (results.Count > 0)
            {
                clbSwaps.SetSelected(0, true);
            }
        }
示例#19
0
 public void Load(HexGrid g, Texture2D template)
 {
     _grid       = g;
     _gridDrawer = new GridDrawer(template, g, this.gameObject);
 }
示例#20
0
 private void OnEnable()
 {
     _myTarget = (GridDrawer)target;
 }
示例#21
0
 void Start()
 {
     m_camera   = CameraCache.Main;
     IsHolding  = true;
     GridDrawer = FindObjectOfType <GridDrawer>();
 }