public override void Update(IManageInput inputService, GameTime gameTime) { //Hvis spilleren er helt til høyre av skjermen if(_player1.FootBox.Right >= spriteService.GameWindowSize.X) { //Hvis spilleren er i øvre tredjedel av skjermen skal man endre InGameLevelState til "FightingLevel" if (_player1.FootBox.Bottom < 315 && _player1.FootBox.Bottom > 190) { ClearLevel(); _inGameService.ChangeInGameState("FightingLevel", _player1.FootBox.Width +2, _player1.FootBox.Y); } //Hvis spilleren er i midtre tredjedel av skjermen skal man endre InGameLevelState til "MiningLevel" else if (_player1.FootBox.Bottom < 490 && _player1.FootBox.Bottom > 380) { ClearLevel(); _inGameService.ChangeInGameState("MiningLevel", _player1.FootBox.Width + 2, _player1.FootBox.Y); } //Hvis spilleren er i nedre tredjedel av skjermen skal man endre InGameLevelState til "TownLevel" else if (_player1.FootBox.Bottom < 690 && _player1.FootBox.Bottom > 570) { ClearLevel(); _inGameService.ChangeInGameState("TownLevel", _player1.FootBox.Width + 2, _player1.FootBox.Y); } } base.Update(inputService, gameTime); }
/// <summary> /// Allows the game component to perform any initialization it needs to before starting /// to run. This is where it can query for any required services and load content. /// </summary> public override void Initialize() { player = (Midi.Player)Game.Services.GetService(typeof(Midi.Player)); inputManager = (IManageInput)Game.Services.GetService(typeof(IManageInput)); splasher = (Graphics.SplashText)Game.Services.GetService(typeof(Graphics.SplashText)); Enabled = false; ((BandMaster)Game).ModeChanged += delegate (Object o, EventArgs a) { if (((BandMaster)Game).Mode == this) Helpers.Wait(2.0, ((BandMaster)Game).StartTheDance); if (applause != null) { applause.Volume = 1f; } }; ((BandMaster)Game).SongChanged += onSongChanged; ((BandMaster)Game).SongLoaded += onSongLoaded; player.Completed += onSongDone; ((BandMaster)Game).Updated += delegate() { if (applause != null) applause.Volume = applauseVolume.Value; }; base.Initialize(); }
public override void Update(IManageInput inputService) { //Hvis spilleren trykket på venstreknappen denne framen if (hovered && inputService.MouseWasPressedThisFrame("left")) { buttonPressed(); } base.Update(inputService); }
public override void Update(IManageInput inputService) { //dersom knappen trykkes starter spillet if (hovered && inputService.CurrMouse.LeftButton == ButtonState.Pressed) { hovered = false; _menuController.stateService.ChangeState("InGame"); } base.Update(inputService); }
/// <summary> /// Sjekker om musen er over boksen eller ikke /// </summary> public virtual void Update(IManageInput inputService) { //om knappen hovres eller ikke if (hovered == false && _clickableBox.Contains(inputService.CurrMouse.X, inputService.CurrMouse.Y)) { hovered = true; _sourceRectangle.X = _destinationRectangle.Width; } else if (hovered == true && !_clickableBox.Contains(inputService.CurrMouse.X, inputService.CurrMouse.Y)) { hovered = false; _sourceRectangle.X = 0; } }
public void Update(IManageInput inputService) { //Sjekker om spilleren prøver å snakke med NPCen if(_player1.FootBox.Intersects(_talkingRangeBox) && _player1.FacesTowards(this._talkingRangeBox.Center.X) && inputService.KeyWasPressedThisFrame(Keys.F)) { ChangeConversationState(); } if (inConversation) { if (!_player1.FootBox.Intersects(_talkingRangeBox)) { ChangeConversationState(); } } dialogController.Update(inputService); }
/// <summary> /// Allows the game component to perform any initialization it needs to before starting /// to run. This is where it can query for any required services and load content. /// </summary> public override void Initialize() { //initialiserer komponenter _stateService = (IManageStates)Game.Services.GetService(typeof(IManageStates)); _inputService = (IManageInput)Game.Services.GetService(typeof(IManageInput)); //oppretter hovedmenyen _mainMenu = new MainMenu((IManageSprites)Game.Services.GetService(typeof(IManageSprites)), _stateService); _mainMenu.MainState(); ToDrawMainMenu = _mainMenu.toDrawMenuClass; //oppretter pausemenyen _pauseMenu = new PauseMenu((IManageSprites)Game.Services.GetService(typeof(IManageSprites)), _stateService); _pauseMenu.MainState(); ToDrawPauseMenu = _pauseMenu.toDrawMenuClass; base.Initialize(); }
public override void Update(IManageInput inputService, GameTime gameTime) { //oppdaterer det som er i tegnelisten foreach (Sprite toUpdate in toDrawMenuClass) { if (toUpdate is IUseInput) { IUseInput needsInput = (IUseInput)toUpdate; needsInput.Update(inputService); } else { toUpdate.Update(); } if (toUpdate is AnimatedSprite) { AnimatedSprite updatableAnimation = (AnimatedSprite)toUpdate; updatableAnimation.animationPlayer.Update(gameTime); } } }
public abstract void Update(IManageInput inputService, GameTime gameTime);
public virtual void Update(IManageInput inputService, GameTime gameTime) { //Går du helt til venstre på skjermen (uten å være i ChooseDirectionLevel) blir du tatt til ChooseDirectionLevel if (_player1.FootBox.Left <= 0 && _inGameService.InGameState != "ChooseDirectionLevel") { ClearLevel(); _inGameService.ChangeInGameState("ChooseDirectionLevel", (int)spriteService.GameWindowSize.X - _player1.FootBox.Width - 2, returnPositionY); } //fjern det som skal fjernes fra tegnelisten if (_toRemoveInGameLevel != null) { foreach (Sprite toRemove in _toRemoveInGameLevel) { _toDrawInGameLevel.Remove(toRemove); } _toRemoveInGameLevel.Clear(); } //legg til det som skal legges til i tegnelisten if (_toDrawQueue != null) { foreach (Sprite toDraw in _toDrawQueue) { _toDrawInGameLevel.Add(toDraw); } _toDrawQueue.Clear(); } //oppdater det som ligger i tegnelisten foreach (Sprite toUpdate in _toDrawInGameLevel.ToList()) { if (toUpdate is IUseInput) { IUseInput needsInput = (IUseInput)toUpdate; needsInput.Update(inputService); } else if (toUpdate is AnimatedStaticSprite) { AnimatedStaticSprite needsGameTime = (AnimatedStaticSprite)toUpdate; if(needsGameTime.IsPlaying) needsGameTime.Update(gameTime); } else { toUpdate.Update(); if (toUpdate is Stone) { Stone stoneToUpdate = (Stone)toUpdate; if (stoneToUpdate.stoneHitArt.IsPlaying) stoneToUpdate.stoneHitArt.Update(gameTime); } } if (toUpdate is AnimatedSprite) { AnimatedSprite updatableAnimation = (AnimatedSprite)toUpdate; if (updatableAnimation.animationPlayer.Update(gameTime) == true) { updatableAnimation.idle(); } } } }
public override void Update(IManageInput inputService, GameTime gameTime) { //Sjekker om den aktive fienden er død, hvis den er det, fjern den, bytt til ny active enemy if (activeEnemy.CurrHp <= 0) { levelEnemies.Remove(activeEnemy); RemoveInGameLevelDrawable(activeEnemy); if (levelEnemies.Count > 0) { activeEnemy = levelEnemies[0]; foreach (AnimatedCharacter enemy in levelEnemies) { enemy.activeEnemy = activeEnemy; } _player1.activeEnemy = activeEnemy; } else { _player1.activeEnemy = null; } } base.Update(inputService, gameTime); }
public override void Update(IManageInput inputService, GameTime gameTime) { base.Update(inputService, gameTime); }
/// <summary> /// Holder oversikt over hvilke knapper som er trykket, og hvorvidt spilleren er blokkert /// </summary> /// <param name="inputService">Inputservice som holder oversikt over input</param> public void walk(IManageInput inputService) { /* Hvis "walking" animasjonen ikke er aktiv, og AnimationState ikke er "walking" * aktiveres "walking" animasjonen, og bytter AnimationState til "walking" */ if (animationPlayer.CurrentAnimation != "walking" && AnimationState != "walking") { animationPlayer.TransitionToAnimation("battleBlockWalk", 0.2f); AnimationState = "walking"; } /* Hvis AnimationState er "walking" * (Man kan ikke bruke currentanimation, fordi han skal bevege seg mens han er i overgang mellom to animasjoner)*/ if (AnimationState == "walking") { //Start gålyden _audioManager.PlayLoop("walk"); //Hvis man både holder nede venstre og høyre, stå stille if (inputService.KeyIsDown(Keys.Right) && inputService.KeyIsDown(Keys.Left)) { idle(); } //Hvis man holder nede høyreknappen, og man ikke er blokkert fra høyre else if (inputService.KeyIsDown(Keys.Right) && !BlockedRight) { //Ikke snu karakteren, beveg han mot høyre _destinationRectangle.X += _xSpeed; Flipped = false; } //Hvis man holder nede venstreknappen, og man ikke er blokkert fra venstre else if (inputService.KeyIsDown(Keys.Left) && !BlockedLeft) { //Snu karakteren og beveg han mot venstre _destinationRectangle.X -= _xSpeed; Flipped = true; } //Hvis man både holder nede opp og ned, stå stille if (inputService.KeyIsDown(Keys.Up) && inputService.KeyIsDown(Keys.Down)) { idle(); } //Hvis man holder nede opp, og man ikke er blokkert fra venstre else if (inputService.KeyIsDown(Keys.Up) && !BlockedTop) { _destinationRectangle.Y -= _xSpeed; } //Hvis man holder nede ned, og man ikke er blokkert fra venstre else if (inputService.KeyIsDown(Keys.Down) && !BlockedBottom) { _destinationRectangle.Y += _xSpeed; } //Flytter hitboxen til samme sted som spilleren _footBox.Y = ((int)(_destinationRectangle.Y + footBoxYOffset)); _footBox.X = (int)(_destinationRectangle.X - footBoxXOffset); TargetBox.X = (int)(_footBox.X - targetBoxXDif / 2); TargetBox.Y = (int)_footBox.Y - targetBoxYDif / 2; healthbar.setPosition(_footBox); } }
public void Update(IManageInput inputService) { if(inputService.KeyWasPressedThisFrame(Keys.P)) levelUp(); //setter layerdepth til bunnen av spilleren setLayerDepth(_footBox.Bottom); //Øker hastigheten til walk-animasjonen if (animationPlayer.CurrentAnimation == "battleBlockWalk") animationPlayer.PlaySpeedMultiplier = 1.4f; else animationPlayer.PlaySpeedMultiplier = 1f; //Hvis spilleren ikke går, stopp gålyden if (AnimationState != "walking") _audioManager.StopLoop("walk"); //Hvis spilleren ikke angriper if (AnimationState != "slashing") { //SJekk hvilke knapper som blir trykket og aktiver funksjonene if (inputService.KeyIsDown(Keys.Space)) { attackSlash(); } else if (inputService.KeyIsDown(Keys.LeftShift)) { block(); } //Hvis én av piltastene er nede, aktiver walk else if (inputService.KeyIsDown(Keys.Left) || inputService.KeyIsDown(Keys.Down) || inputService.KeyIsDown(Keys.Up) || inputService.KeyIsDown(Keys.Right)) { walk(inputService); } //Hvis ingenting blir trykket, stå stille else { idle(); } } //Hvis spilleren angriper og er på slutten av animasjonen else if (animationPlayer.Transitioning == false && animationPlayer.CurrentKeyframeIndex > 0 && animationPlayer.CurrentKeyframeIndex == (animationPlayer.currentPlayingAnimation.Keyframes.Count() - 1)) { //Hvis det finnes en aktiv fiende if (activeEnemy != null) { //Hvis targetboksen er innenfor fiendens footbox, og spilleren ser mot fienden if (TargetBox.Intersects(activeEnemy.FootBox) && FacesTowards((float)activeEnemy.FootBox.Center.X)) { //Aktiver tilfeldig angrepslyd og gjør skade på fienden _audioManager.AddSound(Directory + "/attack" + rInt(1, 3)); activeEnemy.takeDamage(_damage); } } //Hvis det finnes steiner som kan treffes else if (StonesToMine != null) { //Sjekker om spillerens targetbox er innenfor en av steinene i listen, og om han står mot dem foreach (Stone stone in StonesToMine) { if (TargetBox.Intersects(stone.FootBox) && stone.endurance > 0 && FacesTowards(stone.FootBox.Center.X)) { //Aktiver tilfeldig "slå på stein"-lyd og gjør skade på steinen _audioManager.AddSound(Directory + "/clang" + rInt(1, 4)); stone.IsHit(); } } } idle(); } }
public void Update(IManageInput inputService) { foreach (PlayerTextAnswer answer in playerAnswers) { //sjekker om et svaralternativ er hovret eller ikke if (!answer.hovered && answer.answerBox.Contains(inputService.CurrMouse.X, inputService.CurrMouse.Y)) { answer.hovered = true; answer.textColor = _hoveredAnswerColor; } else if(answer.hovered && !answer.answerBox.Contains(inputService.CurrMouse.X, inputService.CurrMouse.Y)) { answer.hovered = false; answer.textColor = _defaultAnswerColor; } //hvis svaralternativet klikkes if(answer.hovered && inputService.MouseWasPressedThisFrame("left")) { _npc.AnswerClicked(answer); break; } } }
/// <summary> /// Allows the game component to perform any initialization it needs to before starting /// to run. This is where it can query for any required services and load content. /// </summary> public override void Initialize() { //laster inn komponenter _spriteService = (IManageSprites)Game.Services.GetService(typeof(IManageSprites)); _stateService = (IManageStates)Game.Services.GetService(typeof(IManageStates)); _collisionService = (IManageCollision)Game.Services.GetService(typeof(IManageCollision)); _inputService = (IManageInput)Game.Services.GetService(typeof(IManageInput)); _audioService = (IManageAudio)Game.Services.GetService(typeof(IManageAudio)); //oppretter musikkkontrollerne _spriteService.LoadDrawable(new StaticSprite("musicOptions")); _spriteService.LoadDrawable(new StaticSprite("soundOptions")); musicToggle = new musicToggleButton("musicOptions", new Rectangle((int)_spriteService.GameWindowSize.X - 40, 0, 40, 40), new Rectangle(0, 0, 40, 40), Game); soundToggle = new SoundToggleButton("soundOptions", new Rectangle((int)_spriteService.GameWindowSize.X - 80, 0, 40, 40), new Rectangle(0, 0, 40, 40), Game); _persistentInGameUI.Add(musicToggle); _persistentInGameUI.Add(soundToggle); //oppretter Random rand = new Random(); //oppretter spilleren _player1 = new Player(new Rectangle(100, 100, 150, 330), 0.5f, Game); _spriteService.LoadDrawable(_player1); //oppretter spillbanene _chooseDirectionlevel = new ChooseDirectionLevel(_player1, Game); _fightingLevel = new FightingLevel(_player1, Game); _miningLevel = new MiningLevel(_player1, Game); _townLevel = new TownLevel(_player1, Game); //Selve spillet starter på denne banen ChangeInGameState("ChooseDirectionLevel", 100, 450); base.Initialize(); }