Example #1
0
    public void OnLocation(int id)
    {
        if (GameShop.IS.LocPrize [id] <= GameShop.IS.mTotalCash)
        {
            GameShop.IS.mTotalCash   -= GameShop.IS.LocPrize [id];
            GameShop.IS.LocPrize [id] = 0;
            GameShop.IS.mGameLoc      = id;

            GameShop.IS.Save();

            //SceneManager.LoadScene (1);

            asysc = SceneManager.LoadSceneAsync(1);
            asysc.allowSceneActivation = false;
            StartCoroutine(ShowLoadScreen());
            //setScreen(Scr.GameLoading);
            GameScr = Scr.GameLoading;
            mGameLoading.SetActive(GameScr == Scr.GameLoading);
            if (GameShop.IS.isSound)
            {
                MusicScene.Play();
            }
        }
        else
        {
            isNotEnough = true;
            mGameNotEnough.GetComponent <Animator>().SetBool("isOpen", isNotEnough);
            if (GameShop.IS.isSound)
            {
                MusicClick.Play();
            }
        }
    }
Example #2
0
        public void Dispose(bool DestroyChildren = false)
        {
            if (DestroyChildren == false)
            {
                // Re-binds the children to the "Being destroyed" object's parent
                foreach (Object2D Child in Children)
                {
                    Child.DestroyedParentPos = Pos;
                    Child.DestroyedParentRot = Rot;
                    Child.DestroyedParentSz  = Sz;
                    Child.Parent             = Parent;
                }
            }
            else
            {
                // Destroys the children
                foreach (Object2D Child in Children)
                {
                    Child.Dispose();
                }
            }

            // Runs OnDispose on all scripts
            foreach (Component2D Scr in Components)
            {
                Scr.OnDispose();
            }

            // Completely un-links the object
            Level.Objects2D.Remove(ObjectName);
        }
 private void MoveLeft(object sender, RoutedEventArgs e)
 {
     if (Grid.Margin.Left > 0)
     {
         Grid.Margin = new Thickness(Grid.Margin.Left - 100, 0, 0, 0);
     }
     else
     {
         Grid.Margin = new Thickness(0, 0, Grid.Margin.Right + 100, 0);
         Scr.ScrollToHorizontalOffset(Scr.HorizontalOffset + 100);
     }
 }
Example #4
0
    void setScreen(Scr gameScr)
    {
        GameScr = gameScr;
        if (_Animator)
        {
            _Animator.SetBool("isOpen", false);
        }
        switch (GameScr)
        {
        case Scr.MenuScr:
            _Animator = mGameMenu.GetComponent <Animator>();
            break;

        case Scr.SettingScr:
            _Animator = mGameSetting.GetComponent <Animator>();
            break;

        case Scr.ShopScr:
            _Animator = mGameShop.GetComponent <Animator>();
            break;

        case Scr.GameInAppScr:
            _Animator = mGameInApp.GetComponent <Animator>();
            break;

        case Scr.GameFreeCashScr:
            _Animator = mGameFreeCash.GetComponent <Animator>();
            break;

        case Scr.GameModeScr:
            _Animator = mGameMode.GetComponent <Animator>();
            break;

        case Scr.GameLocScr:
            _Animator = mGameLoc.GetComponent <Animator>();
            break;

        case Scr.GameLoading:
            _Animator = mGameLoading.GetComponent <Animator>();
            break;

        case Scr.GameBitCoin:
            _Animator = mGameBitCoin.GetComponent <Animator>();
            break;
        }



        _Animator.SetBool("isOpen", true);
    }
        private async Task <string> SendImage()
        {
            var options = new ChannelOptions
            {
                Logger       = NullLogger.Instance,
                ReadAsDemand = true
            };

            Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog();
            openFileDialog.Title            = "选择文件";
            openFileDialog.Filter           = "jpg|*.jpg|jpeg|*.jpeg";
            openFileDialog.FileName         = string.Empty;
            openFileDialog.FilterIndex      = 1;
            openFileDialog.RestoreDirectory = true;
            openFileDialog.DefaultExt       = "jpg";
            bool?result = openFileDialog.ShowDialog();

            if (result != true)
            {
                return(null);
            }
            string fileName = openFileDialog.FileName;

            var buffer = ImageHelper.ImageToBytes(fileName);

            ChatArea.Children.Add(new SendControl(new TcpPackage()
            {
                LocalName  = TbUserName.Text,
                RemoteName = LbChatWith.Content.ToString()
            }, ImageHelper.BytesToBitmapImage(buffer)));
            Scr.ScrollToEnd();

            #region 发送接收确认码, 再创建UDP进行通信, 比较麻烦, 预留, 重写
            // 发送确认码, 并接收确认


            //while (packages.Length() > 0)
            //{
            //    var data = await packages.DequeueAsync();
            //    await _sendUdpImageClient.SendAsync(data, data.Length);
            //}

            //await _sendImageTcpClient.CloseAsync();
            //await _sendUdpImageClient.UdpClientCloseAsync();
            #endregion

            return(fileName);
        }
        private async Task SendMessage(string message)
        {
            var sendPackage = new TcpPackage()
            {
                OpCode      = LbChatWith.Content.Equals("All") ? OpCode.All : OpCode.Single,
                MessageType = MessageType.Text,
                LocalName   = TbUserName.Text,
                RemoteName  = LbChatWith.Content.ToString(),
                Message     = message
            };

            ChatArea.Children.Add(new SendControl(sendPackage, null));
            var msg = sendPackage.ToString();
            await _sendTcpClient.SendAsync(new ReadOnlyMemory <byte>(Encoding.UTF8.GetBytes(msg)));

            Scr.ScrollToEnd();
        }
Example #7
0
        protected override void Update(GameTime gameTime)
        {
            if (IsActive && !PauseGame)
            {
                if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
                {
                    Close(true);
                }

                // Update important scripts first
                foreach (Component Scr in BaseScripts.ToList())
                {
                    Scr.Update();
                }

                MyGame.Main.Update();

                Level.Update();
            }

            base.Update(gameTime);
        }
Example #8
0
        private async Task Send(string message)
        {
            ////await _client.SendAsync(Encoding.UTF8.GetBytes(message + "\r\n"));
            //var data = new TextMessageModel
            //{
            //    LocalName = TbUserName.Text,
            //    TextMessage = message
            //};
            //// 向ChatArea中添加组件
            //WpChatArea.Children.Add(new SendControl(data));
            //CreateUdpClient();

            ////await _client.SendAsync(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data) + "\r\n"));

            var sendPackage = new MessagePackage <TextMessageModel>()
            {
                OpCode      = LbCurrentChat.Content.Equals("All") ? OpCode.All : OpCode.Single,
                MessageType = MessageType.TextMessage,
                Message     = new TextMessageModel()
                {
                    LocalName   = TbUserName.Text,
                    RemoteName  = LbCurrentChat.Content.ToString(),
                    TextMessage = TbSendArea.Text
                }
            };

            WpChatArea.Children.Add(new SendControl(new TextMessageModel()
            {
                LocalName   = TbUserName.Text,
                RemoteName  = LbCurrentChat.Content.ToString(),
                TextMessage = TbSendArea.Text
            }));

            await _client.SendAsync(Encoding.UTF8.GetBytes(sendPackage.ToString()));

            Scr.ScrollToEnd();
        }
Example #9
0
        private async Task InitTcp()
        {
            var options = new ChannelOptions
            {
                Logger       = NullLogger.Instance,
                ReadAsDemand = true
            };

            _client = new EasyClient <TextPackageInfo>(new LinePipelineFilter(), options).AsClient();

            var connected = await _client.ConnectAsync(new IPEndPoint(IPAddress.Loopback, 8888));

            var connectPackage = new MessagePackage <TextMessageModel>()
            {
                OpCode      = OpCode.Connect,
                MessageType = MessageType.TextMessage,
                Message     = new TextMessageModel()
                {
                    LocalName  = TbUserName.Text,
                    RemoteName = "Server"
                }
            };
            await _client.SendAsync(
                new ReadOnlyMemory <byte>(Encoding.UTF8.GetBytes(connectPackage.ToString())));

            while (true)
            {
                var receivePackage =
                    JsonConvert.DeserializeObject <MessagePackage <TextMessageModel> >((await _client.ReceiveAsync()).Text);

                if (receivePackage.Message == null)
                {
                    continue;
                }
                switch (receivePackage.OpCode)
                {
                case OpCode.DisConnect:
                    MessageBox.Show(receivePackage.Message.TextMessage, receivePackage.Message.LocalName);
                    TbUserName.IsEnabled = true;
                    break;

                case OpCode.Connect:
                    LvOnlineList.Children.Clear();
                    var allItem = new UserItemsControl("All");
                    allItem.setRoteName = SetRoteName;
                    LvOnlineList.Children.Add(allItem);
                    foreach (var userClient in receivePackage.Clients)
                    {
                        var childItem = new UserItemsControl(userClient.Username);
                        childItem.setRoteName = SetRoteName;
                        LvOnlineList.Children.Add(childItem);
                    }

                    TbUserName.IsEnabled = false;
                    break;

                case OpCode.All:
                    this.LbCurrentChat.Content = receivePackage.Message.LocalName;
                    WpChatArea.Children.Add(new MessageControl(new TextMessageModel()
                    {
                        LocalName   = receivePackage.Message.LocalName,
                        TextMessage = receivePackage.Message.TextMessage
                    }));
                    break;

                case OpCode.Single:
                    LbCurrentChat.Content = receivePackage.Message.LocalName;
                    WpChatArea.Children.Add(new MessageControl(new TextMessageModel()
                    {
                        LocalName   = receivePackage.Message.LocalName,
                        TextMessage = receivePackage.Message.TextMessage
                    }));
                    break;
                }
                Scr.ScrollToEnd();

                if (connected)
                {
                    BdConnectState.Background = new SolidColorBrush(Colors.LimeGreen);
                    TbUserName.IsEnabled      = false;
                }
                else
                {
                    BdConnectState.Background = new SolidColorBrush(Colors.OrangeRed);
                    TbUserName.IsEnabled      = true;
                    break;
                }

                await Task.Delay(500);
            }

            //while (true)
            //{
            //    var package = await _client.ReceiveAsync();
            //    //if(package != null) SpChatArea.Text += "Receive:" + package.Text + Environment.NewLine;
            //    var data = JsonConvert.DeserializeObject<TextMessageModel>(package.Text);
            //    if (package != null)
            //    {
            //        WpChatArea.Children.Add(new MessageControl(new TextMessageModel()
            //        {
            //            LocalName = data.LocalName,
            //            TextMessage = data.TextMessage
            //        }));
            //    }
            //    await Task.Delay(500);
            //}
        }
        private async void InitTcpConnectAndReceive()
        {
            var options = new ChannelOptions
            {
                Logger       = NullLogger.Instance,
                ReadAsDemand = true
            };

            _sendTcpClient = new EasyClient <TextPackageInfo>(new LinePipelineFilter(), options).AsClient();

            _connected = await _sendTcpClient.ConnectAsync(new IPEndPoint(IPAddress.Loopback, 8888));

            var connectPackage = new TcpPackage()
            {
                OpCode      = OpCode.Connect,
                LocalName   = TbUserName.Text,
                RemoteName  = "Server",
                MessageType = MessageType.Text
            };

            await _sendTcpClient.SendAsync(
                new ReadOnlyMemory <byte>(Encoding.UTF8.GetBytes(connectPackage.ToString())));


            while (true)
            {
                var receivePackage = TcpPackage.JsonToPackage((await _sendTcpClient.ReceiveAsync()).Text);
                if (string.IsNullOrEmpty(receivePackage.Message))
                {
                    continue;
                }

                switch (receivePackage.OpCode)
                {
                case OpCode.Connect:
                    SpOnlineList.Children.Clear();
                    var allItem = new UserItemsControl("All");
                    allItem.setRoteName = SetRoteName;
                    SpOnlineList.Children.Add(allItem);
                    foreach (var onlineClient in receivePackage.Clients)
                    {
                        var childItem = new UserItemsControl(onlineClient.Username);
                        childItem.setRoteName = SetRoteName;
                        SpOnlineList.Children.Add(childItem);
                    }
                    TbUserName.IsEnabled       = false;
                    BtnConnectServer.IsEnabled = false;
                    break;

                case OpCode.DisConnect:
                    MessageBox.Show(receivePackage.Message, receivePackage.LocalName);
                    TbUserName.IsEnabled = true;
                    break;

                case OpCode.All:
                case OpCode.Single:
                    LbChatWith.Content = receivePackage.OpCode == OpCode.All
                            ? receivePackage.RemoteName : receivePackage.LocalName;
                    switch (receivePackage.MessageType)
                    {
                    case MessageType.Text:
                        ChatArea.Children.Add(new ReceiveControl(receivePackage, null));
                        break;

                    case MessageType.Image:
                        // 建立UDP客户端 直接接收消息
                        ReceiveImage(receivePackage: receivePackage);
                        break;

                    case MessageType.File:
                        var res = MessageBox.Show("是否接收文件?", "提示", MessageBoxButton.YesNo,
                                                  MessageBoxImage.Information);
                        if (res == MessageBoxResult.Yes)
                        {
                            // 发送TCP确认连接消息
                            // 创建UDP客户端
                        }
                        break;
                    }
                    break;

                case OpCode.Confirm:
                    switch (receivePackage.MessageType)
                    {
                    case MessageType.Image:
                        var fileName = await SendImage();

                        await Task.Delay(1000);
                        await SendImage(fileName, receivePackage);

                        break;

                    case MessageType.File:
                        break;
                    }
                    break;
                }

                Scr.ScrollToEnd();

                if (_connected)
                {
                    BdConnectState.Background = new SolidColorBrush(Colors.LimeGreen);
                    TbUserName.IsEnabled      = false;
                }
                else
                {
                    BdConnectState.Background = new SolidColorBrush(Colors.OrangeRed);
                    TbUserName.IsEnabled      = true;
                    break;
                }

                //await Task.Delay(1000);
            }
        }
Example #11
0
        public Screen LoadScreen(string strName,
                                 UIServiceWpfApp argApp = null)
        {
            Debug.Assert(!string.IsNullOrEmpty(strName) && null != m_objDoc);

            LogProcessorService.Log.UIService.LogDebugFormat("Prepare for loading the screen with name [{0}]", strName);
            string strScr = string.Format(@"/{0}/{1}/{2}[@name='{3}']", UIServiceCfgDefines.s_WndNode, UIServiceCfgDefines.s_ScreensNode, UIServiceCfgDefines.s_ScreenNode, strName);
            //LogProcessorService.Log.UIService.LogDebugFormat("The xpath value is {0}", strScr);

            XmlNode objNode = m_objDoc.SelectSingleNode(strScr);

            if (null == objNode)
            {
                LogProcessorService.Log.UIService.LogWarnFormat("The screen [{0}] isn't exist", strName);
                return(null);
            }

            //
            string strUrl           = null;
            string strPath          = null;
            string strSite          = null;
            string subSite          = null;
            string needClearElement = null;
            bool   needCache        = true;
            //bool validationEnable = false;
            XmlAttribute objAttri = objNode.Attributes[UIServiceCfgDefines.s_UriAttri];

            if (null != objAttri)
            {
                strUrl = objAttri.Value;
                //LogProcessorService.Log.UIService.LogDebugFormat("The url of a page is {0}", strUrl);
            }
            else
            {
                throw new Exception("The url of a page must be exists");
            }

            bool bHtml = IsHtml(strUrl);
            bool bXaml = IsXaml(strUrl);

            if (!bHtml &&
                !bXaml)
            {
                return(null);
            }
            if (bHtml)
            {
                strUrl = strUrl.Replace(@"\", @"/");
            }

            objAttri = objNode.Attributes[UIServiceCfgDefines.s_SiteAttri];
            if (null != objAttri)
            {
                strSite = objAttri.Value;
            }
            objAttri = objNode.Attributes[UIServiceCfgDefines.s_subSiteAttri];
            if (null != objAttri)
            {
                subSite = objAttri.Value;
            }
            objAttri = objNode.Attributes[UIServiceCfgDefines.s_cacheAttri];
            if (null != objAttri &&
                !string.IsNullOrEmpty(objAttri.Value))
            {
                int temp = 0;
                if (int.TryParse(objAttri.Value, out temp))
                {
                    needCache = temp == 0 ? false : true;
                }
            }

            if (needCache)
            {
                objAttri = objNode.Attributes[UIServiceCfgDefines.s_needClearElementAttri];
                if (null != objAttri &&
                    !string.IsNullOrEmpty(objAttri.Value))
                {
                    needClearElement = objAttri.Value;
                }
            }
            //objAttri = objNode.Attributes[UIServiceCfgDefines.s_validationEnableAttri];
            //if ( null != objAttri &&
            //     !string.IsNullOrEmpty(objAttri.Value) )
            //{
            //    int temp = 0;
            //    if ( int.TryParse( objAttri.Value, out temp ) )
            //    {
            //        validationEnable = temp == 0 ? false : true;
            //    }
            //}
            //else
            //{
            //    strSite = SiteOfScreens;
            //}
            //LogProcessorService.Log.UIService.LogDebugFormat("The site of a page is {0}", strSite);

            //            objAttri = objNode.Attributes[s_PathAttri];
            //if ( null != objAttri )
            //{
            //    strPath = AppDomain.CurrentDomain.BaseDirectory + objAttri.Value;
            //}
            //else
            //{
            if (bHtml)
            {
                strPath = basePath4Html;
            }
            else if (bXaml)
            {
                strPath = basePath4Xaml;
            }
            string configPath = strPath;
            string dir        = string.Format(@"{0}{1}/", strPath, this.ResouceManager.CurrentUILanguage);
            Uri    uri        = new Uri(dir);

            if (uri.IsFile)
            {
                string localPath = uri.LocalPath;
                if (Directory.Exists(localPath))
                {
                    strPath = dir;
                }
            }
            //           }
            //LogProcessorService.Log.UIService.LogDebugFormat("The path of a page is {0}", strPath);

            Screen Scr = null;

            if (bHtml)
            {
                Scr = new htmlScreen()
                {
                    Name       = strName,
                    Path       = strPath,
                    Url        = strUrl,
                    Site       = strSite,
                    SubSite    = subSite,
                    NeedCache  = needCache,
                    ConfigPath = configPath
                };
            }
            else if (bXaml)
            {
                //Scr = new XamlScreen()
                //{
                //    Name = strName,
                //    Path = strPath,
                //    Url = strUrl,
                //    Site = strSite,
                //    SubSite = subSite,
                //    NeedCache = needCache,
                //    ConfigPath = configPath
                //};
            }
            Scr.App            = argApp;
            Scr.ResouceManager = this.ResouceManager;
            //Screen objScr = new Screen()
            //{
            //    Name = strName,
            //    Path = strPath,
            //    Url = strUrl,
            //    Site = strSite
            //};
            if (needCache &&
                !string.IsNullOrEmpty(needClearElement))
            {
                string[] arrElements = needClearElement.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var item in arrElements)
                {
                    Scr.AddNeedClearElement(item);
                }
            }

            //load storyboards of a screen.
            XmlNode storyboards = objNode.SelectSingleNode(UIServiceCfgDefines.s_storyboardsNode);

            if (null != storyboards)
            {
                LoadStoryboards(storyboards, Scr);
            }

            //load triggers of a screen
            XmlNode triggers = objNode.SelectSingleNode(UIServiceCfgDefines.s_TriggersNode);

            if (null != triggers)
            {
                LoadTriggers(triggers, Scr);
            }

            //load data template of a screen
            XmlNode templates = objNode.SelectSingleNode(UIServiceCfgDefines.s_templatesNode);

            if (null != templates)
            {
                LoadTemplates(templates, Scr);
            }

            //LogProcessorService.Log.UIService.LogInfoFormat("Success to load a screen with name [{0}] from a configuration file", strName);

            return(Scr);
        }