// Use this for initialization protected override void StartActor() { b_PhysicsBehavior = new PhysicsBehavior(gameObject, GetComponent <Rigidbody2D>()); mTargetTrasform = PlayerReference.instance.player.transform; mBehaviorsList.Add(b_PhysicsBehavior); }
//Constructorul bun public GenericEnemyBehavior(GameObject _gameObject) { mGameObject = _gameObject; mTransform = mGameObject.transform; mSamuraiTransform = PlayerReference.instance.mSamuraiGameObject.transform; mArcherTransform = PlayerReference.instance.mArcherGameObject.transform; mTargetTransform = PlayerReference.instance.player.transform; mActor = mGameObject.GetComponent <GenericActor>(); mAnimator = mActor.GetAnimator(); if (mActor == null) { Debug.LogWarning("Referinta catre Actor din GenericEnemyBehavior este null!!!"); } if (mAnimator == null) { Debug.LogWarning("Referinta catre Animator din GenericEnemyBehavior este null!"); } b_PhysicsBehavior = new PhysicsBehavior(mGameObject, mGameObject.GetComponent <Rigidbody2D>()); b_AnimatorBehavior = new AnimatorBehavior(mGameObject, mActor); mBehaviorsList.Add(b_PhysicsBehavior); mBehaviorsList.Add(b_AnimatorBehavior); }
public override void Update(GameTime gameTime) { PhysicsBehavior physics = GetBehavior <PhysicsBehavior>(); if (physics != null) { _particles.Position = this.Position; _particles.Direction = new Vector2(0, -1).RotateRadians(physics.Momentum.GetAngle()); _particles.Update(gameTime); if (_explosion != null) { _explosion.Update(gameTime); } } base.Update(gameTime); }
//Constructorul bun public PlayerBehavior(GameObject _gameObject, Transform _basicAttackPrefab) { mGameObject = _gameObject; mTransform = mGameObject.transform; mBasicAttackPrefab = _basicAttackPrefab; mTargetingTransform = mTransform.GetChild(1); mAnimator = mTransform.GetChild(0); mActor = mGameObject.GetComponent <GenericActor>(); if (mActor == null) { Debug.LogWarning("Referinta catre Actor din PlayerBehavior este null!!!"); } if (mAnimator == null) { Debug.LogWarning("Referinta catre Animator din PlayerBehavior este null!"); } //mMaxSpeed = PlayerReference.instance.playerMaxSpeed; mNormalSpeed = GlobalValues.instance.playerNormalSpeed; mAirSpeed = GlobalValues.instance.playerAirSpeed; //mJumpTakeOffSpeed = PlayerReference.instance.playerMaxJump; mJumpTakeOffSpeed = GlobalValues.instance.jumpForce; b_PhysicsBehavior = new PhysicsBehavior(mGameObject, mGameObject.GetComponent <Rigidbody2D>()); b_BasicAttackBehavior = new BasicAttackBehavior(mBasicAttackPrefab); b_AnimatorBehavior = new AnimatorBehavior(mGameObject, mActor); b_BasicAttackBehavior.AddHitableTag("enemy"); mBehaviorsList.Add(b_PhysicsBehavior); mBehaviorsList.Add(b_BasicAttackBehavior); mBehaviorsList.Add(b_AnimatorBehavior); mFacingDirection = DIRECTION.RIGHT; mTargetingVector = Vector2.right; mNormalSprite = mGameObject.GetComponent <SpriteRenderer>().sprite; mIsHitSprite = GlobalSpriteReference.instance.EnemyHit; }
private void Start() { children = gameObject.GetComponentsInChildren <Transform>(); if (gameObject.GetComponent <Collider>() == true) { colliderItems.Add(gameObject); } foreach (Transform obj in children) { if (obj.gameObject.GetComponent <Collider>() == true) { colliderItems.Add(obj.gameObject); } } player = GameObject.Find("Player"); player.GetComponent <PlayerController>().RegisterObserver(this); PhysicsBehavior phys = null; switch (itemDensity) { case ItemDensity.HARD: phys = new HardItem(); break; case ItemDensity.HEAVY: phys = new HeavyItem(); break; case ItemDensity.SOFT: phys = new SoftItem(); break; case ItemDensity.RUBBERY: phys = new RubberyItem(); break; } phys.UpdatePhysicMaterial(gameObject); }
public override void Update(GameTime gameTime) { PhysicsBehavior physics = GetBehavior <PhysicsBehavior>(); if (physics != null) { _particles.Position = this.Position + (Vector2.UnitX * (Mirrored ? Sprite.Origin.X : -Sprite.Origin.X)); _particles.Direction = new Vector2(0, -1).RotateRadians(physics.Momentum.GetAngle()); _particles.Update(gameTime); } if (IsFlying) { Fuel--; _particles.Enabled = true; } else { _particles.Enabled = false; } base.Update(gameTime); }
public void SolveTask() => PhysicsBehavior.SolvingPhysics();