public void DoUpdateCollide() { hwmBox2D collideAABB = hwmBox2D.BuildAABB(m_Head.GetPosition(), new Vector2(m_Head.Radius, m_Head.Radius)); hwmSphere2D headSphere = new hwmSphere2D(m_Head.GetPosition(), m_Properties.HeadColliderRadius); if ((slConstants.DAMAGETYPE_WALL & m_EnableDamageType) != 0 && !slWorld.GetInstance().GetMap().GetMapBox().IsInsideOrOn(m_Head.AABB)) { m_AliveState = AliveState.DeadHitWall; return; } hwmQuadtree <QuadtreeElement> .AABBEnumerator enumerator = new hwmQuadtree <QuadtreeElement> .AABBEnumerator(m_Head.OwnerQuadtree.GetRootNode() , collideAABB); while (enumerator.MoveNext()) { hwmQuadtree <QuadtreeElement> .Node iterNode = enumerator.Current; hwmBetterList <QuadtreeElement> elements = iterNode.GetElements(); for (int iElement = elements.Count - 1; iElement >= 0; iElement--) { QuadtreeElement iterElement = elements[iElement]; if ((slConstants.DAMAGETYPE_SNAKE & m_EnableDamageType) != 0 && iterElement.Owner != m_Guid && iterElement.NodeType != slConstants.NodeType.Predict && (iterElement.GetPosition() - m_Head.GetPosition()).sqrMagnitude <= ((m_Head.Radius + iterElement.Radius) * (m_Head.Radius + iterElement.Radius))) { m_AliveState = AliveState.DeadHitSnake; } } } }
public void Update() { wDown = false; if (resetOnce < 6) { controllerMappings[Keys.R].Execute(); resetOnce++; } if (keysEnabled && !myGame.level.scoreSystem.displayMenu) { KeyboardState NewState = Keyboard.GetState(); Keys[] pressedKeys = Keyboard.GetState().GetPressedKeys(); if (myGame.level.mainCharacter.state is AliveState) { AliveState f = myGame.level.mainCharacter.state as AliveState; f.beam = false; myGame.level.mainCharacter.state = f; } foreach (Keys key in pressedKeys) { if (key.Equals(Keys.Q) || (key.Equals(Keys.R) && !myGame.level.scoreSystem.displayCollectibles && !myGame.level.scoreSystem.displayCredits && !myGame.level.scoreSystem.displayMenu)) { controllerMappings[key].Execute(); } if (controllerMappings.ContainsKey(key) && myGame.level.mainCharacter.canMove) { if (key.Equals(Keys.Space)) { wDown = true; } if (key.Equals(Keys.N)) { if (NewState.IsKeyDown(Keys.N) && OldState.IsKeyUp(Keys.N)) { controllerMappings[key].Execute(); } } else if (key.Equals(Keys.Space)) { if (NewState.IsKeyDown(Keys.Space) && OldState.IsKeyUp(Keys.Space)) { controllerMappings[key].Execute(); } } else { controllerMappings[key].Execute(); } } } OldState = NewState; MainCharJumpCommand c = controllerMappings[Keys.Space] as MainCharJumpCommand; controllerMappings[Keys.Space] = c; } }
public Entity(TextureManager textureManager, SpriteBatch spriteBatch) { _textureManager = textureManager; _spriteBatch = spriteBatch; _currentAliveState = AliveState.ALIVE; _currentMovingState = MoveState.IDLE; _dimensions = new Vector2(32, 32); _position = new Vector2(0, 0); //_boundingBox = new BoundingBox() _isVisible = true; }
public void getAliveState(out AliveState? @return, out bool returnSpecified) { throw new NotImplementedException(); }
protected override void HandleInitialize(object additionalData) { InitializeAdditionalData initializeData = additionalData as InitializeAdditionalData; hwmDebug.Assert(initializeData.NodeCount >= slConstants.SNAKE_INITIALIZEZ_NODE_MINCOUNT, "initializeData.NodeCount >= slConstants.SNAKE_INITIALIZEZ_NODE_MINCOUNT"); m_AliveState = AliveState.Alive; m_SnakeName = initializeData.SnakeName; m_TweakableProperties = slWorld.GetInstance().GetSnakeSystem().GetTweakableProperties(initializeData.TweakableProperties); m_Properties = slWorld.GetInstance().GetSnakeSystem().GetProperties(m_SnakeName); m_Power = initializeData.NodeCount * m_TweakableProperties.NodeToPower; #region Head m_Head = slWorld.GetInstance().GetSnakeSystem().GetHeadPool(m_SnakeName).Pop(); m_Head.Active(this); m_Head.SetPositionAndRotation(initializeData.HeadPosition, initializeData.HeadRotation); #endregion #region Clothes m_Clothes = slWorld.GetInstance().GetSnakeSystem().GetClothesPool(m_SnakeName).Pop(); m_Clothes.Active(this); m_Clothes.SetPositionAndRotation(initializeData.HeadPosition + initializeData.HeadRotation * new Vector3(0, -slConstants.SNAKE_NODE_TO_NODE_DISTANCE, 0) , initializeData.HeadRotation); #endregion #region Body m_BodyPool = slWorld.GetInstance().GetSnakeSystem().GetBodyPool(m_SnakeName); m_Bodys = new hwmDeque <BodyNode>(16); Vector3 bodyToClothesOffset = initializeData.HeadRotation * new Vector3(0, -slConstants.SNAKE_NODE_TO_NODE_DISTANCE, 0); Vector3 bodyToBodyOffset = initializeData.HeadRotation * new Vector3(0, -slConstants.SNAKE_NODE_TO_NODE_DISTANCE, 0); for (int iNode = 3; iNode <= initializeData.NodeCount; iNode++) // MagicNumber: 1->Head 2->Clothes 3->FirstBody { BodyNode node = m_BodyPool.Pop(); node.Active(this); node.SetPositionAndRotation(m_Clothes.GetPosition() + bodyToClothesOffset + bodyToBodyOffset * (iNode - 3) , initializeData.HeadRotation); if (node.Sprite != null) { node.Sprite.sortingOrder = slConstants.SNAKE_SPRITERENDERER_MIN_ORDERINLAYER + initializeData.NodeCount - iNode; } m_Bodys.PushBack(node); } #endregion if (initializeData.IsBot) { m_Controller = gameObject.AddComponent <slAIController>(); m_Controller.Initialize(); } else { m_Controller = slWorld.GetInstance().GetPlayerController(); } m_Controller.SetControllerSnake(this); TargetMoveDirection = (initializeData.HeadRotation * Vector2.up).normalized; m_CurrentMoveDirection = TargetMoveDirection; m_SpeedState = SpeedState.Normal; m_EnableDamageType = int.MaxValue; m_CanEatFood = true; m_SkillEventArgs = new slSkill.EventArgs(); m_IsReaminsFoodContamination = false; }
public void SetAliveState(AliveState state) { _currentAliveState = state; _velocity = 0; }
public void getAliveState(out AliveState? @return, out bool returnSpecified) { @return = AliveState.ONLINE; returnSpecified = true; GetAliveState(); }