public static void EventController(Canvas canvas) { if (eventCount != StageEvent.listEvent.Count) { if (!eventWaiting && !screenFadeStart) { switch (StageEvent.listEvent[eventCount].eventType) { case EventCommandEnum.Wait: eventWaiting = true; EventWaiting(StageEvent.listEvent[eventCount].eventValue); Console.WriteLine("wait"); break; case EventCommandEnum.Balloon: Vector blpos = StageEvent.listEvent[eventCount].balloonPos; string blstring = StageEvent.listEvent[eventCount].balloonMsg; if (StageEvent.listEvent[eventCount].targetImgType == TargetType.Player) { eventTargetImage = ImageData.imgPlayer; } if (StageEvent.listEvent[eventCount].targetImgType == TargetType.Object) { eventTargetImage = ObjectChecker.lstObject[StageEvent.listEvent[eventCount].targetId].imgObject; } BalloonMessage.OpenBalloon(eventCount, canvas, blpos, eventTargetImage, blstring, false); eventBalloonIsOpen = true; break; case EventCommandEnum.UiVisibility: if (!StageEvent.listEvent[eventCount].uiVisible) { MainWindow.stpPlayerStatus.Visibility = Visibility.Hidden; } else { MainWindow.stpPlayerStatus.Visibility = Visibility.Visible; } break; case EventCommandEnum.KeyLock: KeyController.keyControlLocking = StageEvent.listEvent[eventCount].flagKeyLock; Console.WriteLine("keylock"); break; case EventCommandEnum.Move: lstEventTask.Add(new EventCommandTask { name = EventCommandEnum.Move }); if (StageEvent.listEvent[eventCount].targetImgType == TargetType.Player) { lstEventTask[lstEventTask.Count - 1].targetType = TargetType.Player; lstEventTask[lstEventTask.Count - 1].targetImage = ImageData.imgPlayer; lstEventTask[lstEventTask.Count - 1].moveDistance = StageEvent.listEvent[eventCount].moveDistance; } else if (StageEvent.listEvent[eventCount].targetImgType == TargetType.Object) { lstEventTask[lstEventTask.Count - 1].targetType = TargetType.Object; lstEventTask[lstEventTask.Count - 1].targetImage = ObjectChecker.lstObject[StageEvent.listEvent[eventCount].targetId].imgObject; lstEventTask[lstEventTask.Count - 1].targetID = StageEvent.listEvent[eventCount].targetId; lstEventTask[lstEventTask.Count - 1].moveDistance = StageEvent.listEvent[eventCount].moveDistance; } lstEventTask[lstEventTask.Count - 1].direction = StageEvent.listEvent[eventCount].direction; charaMoveStart = true; break; case EventCommandEnum.BgmPlay: Sound.SoundBgmSelector(StageEvent.listEvent[eventCount].bgmName); Sound.bgm.Play(); Console.WriteLine("bgm"); break; case EventCommandEnum.SePlay: Sound.SoundEffectSelector(StageEvent.listEvent[eventCount].seName); Sound.SoundEffectPlayer(StageEvent.listEvent[eventCount].seName); Console.WriteLine("se"); break; case EventCommandEnum.CharaFadeIn: ImageData.imgPlayer.Opacity = 0; ImageData.imgPlayer.Width = 32; ImageData.imgPlayer.Height = 64; renderRateTotal = 0; charaRenderIndex = eventCount; charaRenderStart = true; break; case EventCommandEnum.CharaImageChange: switch (StageEvent.listEvent[eventCount].targetImgType) { case TargetType.Player: ImageData.imgPlayer.Source = ImageData.ImageSourceSelector(StageEvent.listEvent[eventCount].categoryName, StageEvent.listEvent[eventCount].patternName); break; case TargetType.Enemy: // SpawnEnemy.lstEnemyData[0].imgEnemy.Source = ImageData.ImageSourceSelector(StageEvent.listEvent[eventCount].categoryName, StageEvent.listEvent[eventCount].patternName); break; case TargetType.Object: ObjectChecker.lstObject[StageEvent.listEvent[eventCount].targetId].imgObject.Source = ImageData.ImageSourceSelector(StageEvent.listEvent[eventCount].categoryName, StageEvent.listEvent[eventCount].patternName); break; case TargetType.Item: break; } break; case EventCommandEnum.ScreenFadeIn: switch (StageEvent.listEvent[eventCount].color) { case ColorEnum.White: MainWindow.canScreenFade.Background = new SolidColorBrush(Colors.White); break; case ColorEnum.Black: MainWindow.canScreenFade.Background = new SolidColorBrush(Colors.Black); break; } MainWindow.canScreenFade.Opacity = 0; MainWindow.canScreenFade.Visibility = Visibility.Visible; screenFadeTotal = 0; screenFadeIndex = eventCount; screenFadeStart = true; break; case EventCommandEnum.ScreenFadeOut: screenFadeTotal = 1; screenFadeIndex = eventCount; screenFadeStart = true; break; case EventCommandEnum.GenerateEnemy: SpawnEnemy.GenerateEnemy(canvas, 0, StageEvent.listEvent[eventCount].setPosition); break; case EventCommandEnum.EventEnd: duringTransition = false; eventStart = false; if (gameTransition == GameTransitionType.StageStart) { if (!StageEvent.listEvent[eventCount].eventOnly) { MainWindow.lblMode.Content = "ゲームモード:ステージプレイ"; gameTransition = GameTransitionType.StageDuring; } else { MainWindow.lblMode.Content = "ゲームモード:ステージ初期化"; gameTransition = GameTransitionType.StageNext; } } else if (gameTransition == GameTransitionType.StageEnd) { MainWindow.lblMode.Content = "ゲームモード:ステージ初期化"; gameTransition = GameTransitionType.StageNext; } Console.WriteLine("end"); break; } eventCount++; } } }
//inits private void InitGame() { this.GetNowTime(); lastTime = nowTime; ImageData.SpriteReading(); //cropped image data StageManager.stageNum = 0; StageOrder.OrderListInit(); //stage order StageDataSetting.DataBaseReading(); //database ImageData.SystemImagesReading(); Sound.SoundEffectLoad(Canvas); SplashLogoOpen(); //controlls maked mainCanvas = this.FindName("Canvas") as Canvas; lblMode = FindName("lblGameMode") as Label; ctlDatabaseButton = btnViewDatabaseWindow; ctlMaterialButton = btnViewMaterialBrowser; ctlImageButton = btnViewImageManager; CollisionCheck.ColliderCheckMaskGenerater(Canvas); MainWeapon.InitMainWeapon(Canvas); BalloonMessage.GenerateBalloon(Canvas); stpPlayerStatus = Canvas.FindName("spPlayerStatus") as StackPanel; stpPlayerStatus.Visibility = Visibility.Hidden; Canvas.SetZIndex(spPlayerStatus, ImageZindex.status); var _popcantalk = new Image { Source = ImageData.cbSystem, Width = 64, Height = 32, Visibility = Visibility.Hidden, }; ImageData.imgPopCanTalk = _popcantalk; Canvas.Children.Add(ImageData.imgPopCanTalk); Canvas.SetZIndex(ImageData.imgPopCanTalk, ImageZindex.status); ImageData.imgHandCursor = new Image { Source = ImageData.cbHandCursor, Width = 32, Height = 32, Visibility = Visibility.Hidden, }; Canvas.Children.Add(ImageData.imgHandCursor); Canvas.SetZIndex(ImageData.imgHandCursor, ImageZindex.handCursor); canScreenFade.Width = 1024; canScreenFade.Height = 768; canScreenFade.Visibility = Visibility.Hidden; Canvas.Children.Add(canScreenFade); Canvas.SetLeft(canScreenFade, 0); Canvas.SetTop(canScreenFade, 0); Canvas.SetZIndex(canScreenFade, ImageZindex.fade); StageInit.InitPlayer(Canvas); StageInit.InitPlayerStatus(CaLife, CaMana); }
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; } }