예제 #1
0
//frameupdate
        protected void FrameUpdateTimer_Update(object sender, ElapsedEventArgs e)
        {
            try
            {
                this.Dispatcher.Invoke(() =>
                {
                    //TimeManagement
                    this.GetNowTime();
                    elapsedTime = nowTime - lastTime;

                    //debug
                    lblDebugA.Content = PlayerStatus.playerPos.X + "," + PlayerStatus.playerPos.Y;
                    lblDebugB.Content = SystemOperator.PixelPerSecond(PlayerStatus.weight);

                    if (elapsedTime < 0)
                    {
                        elapsedTime += 59999;
                    }


                    KeyController.KeyInterval();

                    //GameTransition
                    if (!GameTransition.duringTransition)
                    {
                        GameTransition.GameTransitionController(Canvas, CaLife, CaMana);
                    }

                    //EventAction



                    if (GameTransition.eventStart)
                    {
                        if (GameTransition.lstEventTask.Count > 0)
                        {
                            GameTransition.EventTaskCommander();
                        }


                        if (GameTransition.charaRenderStart)
                        {
                            GameTransition.CharaRender();
                        }

                        if (GameTransition.screenFadeStart)
                        {
                            GameTransition.ScreenFade(Canvas);
                        }

                        if (!GameTransition.eventBalloonIsOpen)
                        {
                            if (GameTransition.eventCount < StageEvent.listEvent.Count)
                            {
                                GameTransition.EventController(Canvas);
                            }
                        }
                        else
                        {
                            if (KeyController.keyReturn)
                            {
                                EnterKeyAction(Canvas);
                            }
                        }
                    }

                    if (KeyController.keyReturn)
                    {
                        EnterKeyAction(Canvas);
                    }

                    //got to Edit Mode
                    if (GameTransition.gameTransition == GameTransitionType.Title)
                    {
                        if (KeyController.keyE)
                        {
                            mainCanvas.Children.Remove(ImageData.imgTitle[0]); mainCanvas.Children.Remove(ImageData.imgTitle[1]);
                            countTime = 0;
                            GameTransition.gameTransition = GameTransitionType.EditMode;
                            timerFrameUpdate.Stop();
                            btnViewStageEditorWindow.IsEnabled = true;
                            btnViewMaterialBrowser.IsEnabled   = true;
                            btnViewImageManager.IsEnabled      = true;
                            btnViewDatabaseWindow.IsEnabled    = true;

                            lblMode.Content = "ゲームモード:エディット";
                        }
                    }

                    //StageDuring game play
                    if (GameTransition.gameTransition == GameTransitionType.StageDuring &&
                        !isDeactivated)
                    {
                        Animator.AnimationItem();
                        Animator.AnimationObject();

                        if (ObjectChecker.isTrigger && !TalkCommander.isTalk)
                        {
                            ObjectBehavior.OnTriggerTouchEvent();
                        }

                        if (TalkCommander.isTalk && !TalkCommander.isTalkOpenBalloon)
                        {
                            TalkCommander.TalkWithNpc(Canvas);
                        }

                        if (TalkCommander.isTalkSelecting)
                        {
                            TalkCommander.TalkSelecting(Canvas);
                        }

                        //first action,last Processing including deletion of list
                        SystemOperator.moveCommonAmountX = 0;
                        SystemOperator.moveCommonAmountY = 0;

                        ObjectChecker.CollisionPtoActionCollider();
                        PlayerBehavior.CollisionPtoE();

                        PlayerBehavior.MovePlayer(Canvas);
                        PlayerBehavior.FallingPlayer();

                        Item.FallingItems();

                        EnemyBehavior.EnemyAction();
                        Animator.AnimationEnemy();

                        SubWeapon.SubWeaponPosUpdate(Canvas);

                        if (PlayerStatus.isMainAttack)
                        {
                            MainWeapon.MainWeaponAttack(Canvas);
                            MainWeapon.MainWeaponCollision(Canvas);
                        }


                        SubWeapon.CollisionSubWeapon(Canvas);

                        PlayerStatus.PlayerStatusUpdate();
                        PlayerBehavior.DamageInvinsibleTimer();

                        SpawnEnemy.RemoveEnemy(Canvas);
                        SpawnEnemy.ReSpawnEnemy(Canvas);
                    }

                    if (Sound.seStop)
                    {
                        if (Sound.sePlayTime < 60)
                        {
                            Sound.sePlayTime++;
                        }
                        else
                        {
                            Sound.sePlayTime = 0;
                            Sound.seStop     = false;
                        }
                    }

                    lastTime = nowTime;
                });
            }
            catch (TaskCanceledException)
            {
            }
        }
예제 #2
0
        public static void TalkWithNpc(Canvas canvas)
        {
            if (talkNumCount < lstTalkMessage.Count)
            {
                Vector pos    = new Vector(0, 0);
                Image  target = new Image();

                if (lstTalkMessage[talkNumCount].branchID == selectBranch)
                {
                    if (!lstTalkMessage[talkNumCount].speaker)
                    {
                        pos = new Vector(Canvas.GetLeft(ImageData.imgPlayer), Canvas.GetTop(ImageData.imgPlayer));
                    }
                    else
                    {
                        ObjectChecker.GetTriggerTargetPosition(ObjectChecker.activeObject);
                        pos = ObjectChecker.triggerTargetPosition;
                    }


                    switch (lstTalkMessage[talkNumCount].type)
                    {
                    case TalkType.Normal:

                        BalloonMessage.OpenBalloon(0, canvas, pos, target, lstTalkMessage[talkNumCount].message, true);
                        isTalkSelecting = false;
                        ImageData.imgHandCursor.Visibility = Visibility.Hidden;
                        isTalkOpenBalloon = true;
                        break;

                    case TalkType.Selection:

                        BalloonMessage.OpenBalloon(0, canvas, pos, target, lstTalkMessage[talkNumCount].message, true);
                        isTalkSelecting = true;
                        ImageData.imgHandCursor.Visibility = Visibility.Visible;
                        Canvas.SetLeft(ImageData.imgHandCursor, Canvas.GetLeft(BalloonMessage.spnBalloon) - 20);
                        Canvas.SetTop(ImageData.imgHandCursor, Canvas.GetTop(BalloonMessage.spnBalloon));
                        isTalkOpenBalloon = true;
                        break;

                    case TalkType.SetFlag:

                        ImageData.imgHandCursor.Visibility = Visibility.Hidden;
                        memoryTalkFlagID = lstTalkMessage[talkNumCount].talkFlagID;

                        talkNumCount++;

                        break;
                    }
                }
                else
                {
                    talkNumCount++;
                }
            }
            else
            {
                talkNumCount = 0;
                selectBranch = 0;
                lstTalkMessage.Clear();

                ObjectChecker.oldActiveObject = ObjectChecker.activeObject;
                isTalk = false;
                KeyController.keyControlLocking = false;
            }
        }