コード例 #1
0
ファイル: SnakeView.xaml.cs プロジェクト: prbasha/SnakeUWP
        /// <summary>
        /// Default constructor.
        /// </summary>
        public SnakeView()
        {
            InitializeComponent();

            // Create the View Model.
            ViewModel = new SnakeViewModel();
        }
コード例 #2
0
 private bool IsCollisionWithBorder(SnakeViewModel snakeVM, WindowViewModel windowVM)
 {
     return(snakeVM.HeadX < 0 ||
            snakeVM.HeadX + snakeVM.Width > windowVM.BoardWidth ||
            snakeVM.HeadY < 0 ||
            snakeVM.HeadY + snakeVM.Height > windowVM.WindowHeight - 40);
 }
コード例 #3
0
 private bool IsCollisionWithFood(SnakeViewModel snakeVM, FoodViewModel foodVM)
 {
     return(snakeVM.HeadX + snakeVM.Width > foodVM.X &&
            snakeVM.HeadX < foodVM.X + foodVM.Width &&
            snakeVM.HeadY < foodVM.Y + foodVM.Height &&
            snakeVM.HeadY + snakeVM.Height > foodVM.Y);
 }
コード例 #4
0
ファイル: SnakeView.xaml.cs プロジェクト: prbasha/SnakeWPF
        /// <summary>
        /// Default constructor.
        /// </summary>
        public SnakeView()
        {
            InitializeComponent();

            // Create the View Model.
            SnakeViewModel viewModel = new SnakeViewModel();

            DataContext = viewModel;    // Set the data context for all data binding operations.
        }
コード例 #5
0
 private bool IsCollisionWithTail(SnakeViewModel snakeVM)
 {
     foreach (var tailPart in snakeVM.GuiTail)
     {
         if (snakeVM.HeadX == tailPart.X && snakeVM.HeadY == tailPart.Y)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #6
0
ファイル: App.xaml.cs プロジェクト: RichardTiborNagy/EVA2
        /// <summary>
        /// Startup eventhandler. Creates components, hooks up events.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void App_Startup(object sender, StartupEventArgs e)
        {
            dataAccess = new TextFilePersistence();

            model           = new SnakeModel(dataAccess);
            model.GameOver += new EventHandler <GameOverEventArgs>(Model_GameOver);

            viewModel            = new SnakeViewModel(model);
            viewModel.ExitGame  += new EventHandler(ViewModel_Exit);
            viewModel.LoadLevel += new EventHandler(ViewModel_LoadLevel);

            window             = new SnakeWindow();
            window.DataContext = viewModel;
            window.Show();
        }
コード例 #7
0
ファイル: MainWindow.xaml.cs プロジェクト: zeglerbej/Snake
        public MainWindow()
        {
            //Initialize
            InitializeComponent();
            background = new Rectangle();
            _svm       = new SnakeViewModel();

            KeyDown += OnKeyDown;
            Field.Focus();

            gameTimer          = new DispatcherTimer();
            DataContext        = _svm;
            gameTimer.Tick    += GameLogic;
            gameTimer.Interval = TimeSpan.FromMilliseconds(Params.frameDuration);

            DrawBackground();
            Field.Children.Add(background);
        }
コード例 #8
0
        public void CollisionAction(SnakeViewModel snakeVM, FoodViewModel foodVM, WindowViewModel windowVM)
        {
            if (IsCollisionWithFood(snakeVM, foodVM))
            {
                foodVM.GenerateNewPosition();
                snakeVM.TailExtend();
            }

            if (IsCollisionWithBorder(snakeVM, windowVM))
            {
                snakeVM.SetToBeginningState();
            }

            if (IsCollisionWithTail(snakeVM))
            {
                snakeVM.SetToBeginningState();
            }
        }
コード例 #9
0
ファイル: App.xaml.cs プロジェクト: 0verdoes/WPF_Snake
        private void App_StartUp(object sender, StartupEventArgs e)
        {
            DbPersistence _dataAccess = new DbPersistence("name=SnakeModel");

            _model = new SnakeModel(_dataAccess);

            _viewmodel = new SnakeViewModel(_model);


            _viewmodel.LoadGameOpen  += new EventHandler(ViewModel_LoadGameOpen);
            _viewmodel.LoadGameClose += new EventHandler <String>(ViewModel_LoadGameClose);
            _viewmodel.SaveGameOpen  += new EventHandler(SaveGameOpen);
            _viewmodel.SaveGameClose += new EventHandler <String>(SaveGameClose);

            _view             = new MainWindow();
            _view.DataContext = _viewmodel;

            _view.Show();
        }
コード例 #10
0
        private void App_Startup(object sender, StartupEventArgs e)
        {
            _model           = new SnakeGameModel(10);
            _model.GameOver += new EventHandler <SnakeEventArgs>(Model_GameOver);

            // nézemodell létrehozása
            _viewModel           = new SnakeViewModel(10, _model);
            _viewModel.NewGame  += new EventHandler(ViewModel_NewGame);
            _viewModel.ExitGame += new EventHandler(ViewModel_ExitGame);
            _viewModel.LoadGame += new EventHandler(ViewModel_LoadGame);
            _viewModel.SaveGame += new EventHandler(ViewModel_SaveGame);
            //_model = _viewModel.GameModel;
            _mapSize = 10;

            // nézet létrehozása
            _view             = new MainWindow();
            _view.DataContext = _viewModel;
            _view.Closing    += new System.ComponentModel.CancelEventHandler(View_Closing); // eseménykezelés a bezáráshoz
            _view.Show();
        }
コード例 #11
0
        public GamesViewModel()
        {
            LoginViewModel      = new LoginViewModel();
            ScoreboardViewModel = new ScoreboardViewModel();
            TicTacToeViewModel  = new TicTacToeViewModel();
            PairGameViewModel   = new PairGameViewModel();
            RatingViewModel     = new RatingViewModel();
            SnakeViewModel      = new SnakeViewModel();
            DoorsGameViewModel  = new DoorsGameViewModel();
            MoneyViewModel      = new MoneyViewModel();

            _playerManager = new PlayerManager();


            NewGameCommand = new RelayCommand(param => StartGame((string)param));

            ShopCommand = new RelayCommand(param =>
            {
                ShopWindow shopWindow = new ShopWindow();
                shopWindow.ShowDialog();
            });

            ScoreboardCommand = new RelayCommand(param =>
            {
                ScoreboardViewModel.Refresh();
                ScoreboardView scoreboardView = new ScoreboardView();
                scoreboardView.ShowDialog();
            });

            RatingCommand = new RelayCommand(param =>
            {
                RatingView ratingView = new RatingView();
                ratingView.ShowDialog();
            });

            PlayerEditCommand = new RelayCommand(param =>
            {
                EditView editView = new EditView();
                editView.ShowDialog();
            });

            AddMoneyCommand = new RelayCommand(param =>
            {
                MoneyView moneyView = new MoneyView();
                moneyView.ShowDialog();
            });

            StartGameTestingCommand = new RelayCommand(param => { StartGameTesting((string)param); });


            BuyItemCommand = new RelayCommand(param =>
            {
                if (int.Parse(param.ToString()) > Money)
                {
                    MessageBox.Show("You do not have enough to buy this game.\n Consider adding money to your balance.",
                                    "Message", MessageBoxButton.OK);
                }
                else
                {
                    _playerManager.AddMoney(LoginViewModel.Player.Id, -int.Parse(param.ToString()));
                    Money = Money;
                }
            });
        }
コード例 #12
0
 public MovementManager(SnakeViewModel snakeVM, FoodViewModel foodVM)
 {
     Locator      = new LocatorViewModel();
     this.snakeVM = snakeVM;
     this.foodVM  = foodVM;
 }
コード例 #13
0
 public SnakeView()
 {
     InitializeComponent();
     snakeViewModel = new SnakeViewModel(this);
 }