コード例 #1
0
ファイル: Enemy.cs プロジェクト: 2Light/Insomnia
 public Enemy(Objectmanager objectmanager, ContentManager contentManager, Mathe mathe, Enemydatabase enemydatabase, Enemytype typ, Vector2 position, Richtung blickrichtung, float skalierung)
 {
     Gravitation = 0.40f;
     MaxSpeed = new Vector2(6, 15);
     this.Objectmanager = objectmanager;
     this.Mathe = mathe;
     this.State = Enemystate.Idle;
     this.Blickrichtung = blickrichtung;
     this.Skalierung = skalierung;
     this.PositionCurrent = position;
     this.Typ = typ;
     Enemy Tempenemy = enemydatabase.Read(typ);
     Texturmaße = new Vector2(Tempenemy.Texturmaße.X, Tempenemy.Texturmaße.Y);
     AniGeschwindigkeit = Tempenemy.AniGeschwindigkeit;
     Spalten = Tempenemy.Spalten;
     Texturname = Tempenemy.Texturname;
     Wiederholen = Tempenemy.Wiederholen;
     Textur = Tempenemy.Textur;
     Kollision = new Rectangle((int)(Texturmaße.X / 2) - 5, (int)Texturmaße.Y - 20, 10, 10);
     for (int i = 0; i < Textur.Count(); i++)
     {
         if (Texturname[i] == "Idle")
         {
             Animation = new Animation(Textur[i], true, Spalten[i], new Rectangle(0, 0, (int)Texturmaße.X, (int)Texturmaße.Y), skalierung, AniGeschwindigkeit[i]); break;
         }
     }
 }
コード例 #2
0
    // Use this for initialization
    void Start()
    {
        player = GameObject.Find("Player");

        timeridle      = _timeridle;
        timerwalking   = _timerwalking;
        timerTrowing   = _timerTrowing;
        timerjumping   = _timerjumping;
        timerAttacking = _timerAttacking;
        timerhurting   = _timerhurting;
        timerlanded    = _timerlanded;

        _EnemyCurrentState = Enemystate.Idle;
    }
コード例 #3
0
    // Start is called before the first frame update
    void Start()
    {
        state       = Enemystate.idle;
        myRigidBody = GetComponent <Rigidbody2D>();
        Anim        = GetComponent <Animator>();

        facingRight = false;

        currentHealth = maxHealth;

        myCollider = GetComponent <CapsuleCollider2D>();

        player      = GameObject.Find("Character").GetComponent <PlayerController>();
        blood_small = GameObject.Find("Quick Blood Splatter(hurt)").GetComponent <ParticleSystem>();
        blood_large = GameObject.Find("Quick Blood Splatter(death)").GetComponent <ParticleSystem>();
    }
コード例 #4
0
    void Update()
    {
        if (movement.x < 0)
        {
            animator.SetBool("isMovingLeft", true);
        }
        else if (movement.x > 0)
        {
            animator.SetBool("isMovingRight", true);
        }

        if (movement.y < 0)
        {
            animator.SetBool("isMovingUpDown", true);
        }
        else if (movement.y > 0)
        {
            animator.SetBool("isMovingUpDown", true);
        }

        if (movement.x == 0)
        {
            animator.SetBool("isMovingLeft", false);
            animator.SetBool("isMovingRight", false);
        }

        if (movement.y == 0)
        {
            animator.SetBool("isMovingUpDown", false);
            animator.SetBool("isMovingUpDown", false);
        }


        if (currState != Enemystate.Die)
        {
            currState = Enemystate.Wander;
        }

        if (currState == Enemystate.Wander)
        {
            Wander();
        }
    }
コード例 #5
0
ファイル: Enemy.cs プロジェクト: Rygaido/FinalN-Hax
        public virtual void CollideWithPlayer()
        {
            if (current != Enemystate.dead) {
                //if player hits enemy on top
                if (player.Previous.Bottom < Location.Center.Y) {
                    player.ySpeed = -15;//bounces player
                    current = Enemystate.dead; //kill enemy
                }
                else if (player.State == Player.Playerstate.defending) {
                    current = Enemystate.dead;
                    //player.State = Player.Playerstate.shieldBreaking;

                    player.TakeHit();
                }
                else {
                    player.TakeHit();
                }
            }
        }
コード例 #6
0
    void EnemyLogic()
    {
        distance = Vector2.Distance(transform.position, target.position);
        if (player.dead == false)
        {
            if (distance > attackDistance)
            {
                state = Enemystate.tracking;
                StopAttack();
            }
            else if (attackDistance >= distance && cooling == false)
            {
                state = Enemystate.attack;
                Attack();
            }

            if (cooling)
            {
                Cooldown();
                state = Enemystate.idle;
                Anim.ResetTrigger("Attack");
            }
        }
    }
コード例 #7
0
    // Update is called once per frame
    void Update()
    {
        x = gameObject.transform.position.x;
        y = gameObject.transform.position.y;

        targetx = player.transform.position.x;
        targety = player.transform.position.y;

        switch (_EnemyCurrentState)
        {
        case Enemystate.Idle:
            if (_timeridle < 0)
            {
                //idle
                _EnemyAnimation.PlayIdle();
                _timeridle = timeridle;
            }
            else
            {
                _timeridle -= Time.deltaTime;
            }
            break;

        case Enemystate.Walking:
            if (_timerwalking < 0)
            {
                //walking
                _EnemyAnimation.PlayWalking();
                _timerwalking = timerwalking;
            }
            else
            {
                _timerwalking -= Time.deltaTime;
            }
            break;

        case Enemystate.Atacking:

            break;

        case Enemystate.Hit:

            break;

        case Enemystate.Jumping:
            if (_timerjumping < 0)
            {
                _EnemyAnimation.PlayJump();
                _timerjumping = timerjumping;
            }
            else
            {
                _timerjumping -= Time.deltaTime;
            }
            break;
        }



        if (flip)
        {
            gameObject.transform.rotation = Quaternion.Euler(0, 180, 0);
        }
        else if (!flip)
        {
            gameObject.transform.rotation = Quaternion.Euler(0, 0, 0);
        }

        if (x >= targetx + 0.5f && targetx >= x + lookingfield * -1)        //link
        {
            _EnemyCurrentState = Enemystate.Walking;
            flip = false;
            //print("hallo");
        }
        else if (x <= targetx - 0.5f && targetx <= x + lookingfield)        //rechts
        {
            //print("hallo 2");
            _EnemyCurrentState = Enemystate.Walking;
            flip = true;
        }
        else
        {
            _EnemyCurrentState = Enemystate.Idle;
        }

        if (y < targetx)
        {
            //_EnemyCurrentState = Enemystate.Jumping;
        }



        //print(flip);
    }
コード例 #8
0
ファイル: EnemyMove.cs プロジェクト: denyuki/tutorial2
    // Update is called once per frame
    void Update()
    {
        distance = Vector3.Distance(transform.position, player.transform.position);

        if (Mathf.Abs(player.transform.position.x - transform.position.x) < attackDistance)
        {
            a = 0;
        }
        else if (player.transform.position.x < transform.position.x)
        {
            a = -1;
            transform.localScale = new Vector3(0.2f * a, 0.2f, 1);
        }
        else
        {
            a = 1;
            transform.localScale = new Vector3(0.2f * a, 0.2f, 1);
        }



        switch (this.enemystate)
        {
        case Enemystate.Follow:
        {
            if (EnemyStatus.damegeCheck)
            {
                this.enemystate = Enemystate.Stop;
                pos             = transform.position;
            }
            else if (distance > 10f || distance < attackDistance)
            {
                this.enemystate = Enemystate.wait;
                pos             = transform.position;
            }
            else
            {
                animator.SetBool("Move", true);
            }
            transform.Translate(speed * a, 0, 0);
        }
        break;

        case Enemystate.wait:
        {
            rigidbody2D.velocity = Vector3.zero;
            if (distance < 9.8f && distance > attackDistance + 0.2f)
            {
                this.enemystate = Enemystate.Follow;
            }
            else
            {
                animator.SetBool("Move", false);
            }
        }
        break;

        case Enemystate.Stop:
        {
            delta += Time.deltaTime;
            transform.position = pos;
            if (delta > span)
            {
                delta = 0;
                EnemyStatus.damegeCheck = false;
                this.enemystate         = Enemystate.wait;
                animator.SetBool("Move", false);
            }
        }
        break;
        }
    }
コード例 #9
0
ファイル: Enemy.cs プロジェクト: 2Light/Insomnia
 public void ChangeStatus(Enemystate state)
 {
     if (state != State)
     {
         State = state;
         for (int i = 0; i < Textur.Count(); i++)
         {
             if (Texturname[i] == state.ToString())
             {
                 Animation.Texture = Textur[i]; Animation.Spalte = Spalten[i]; Animation.Geschwindigkeit = ((float)1 / AniGeschwindigkeit[i]); Animation.Wiederholen = Wiederholen[i]; break;
             }
         }
         Animation.Abgeschlossen = false;
         Animation.AktuelleSpalte = 0;
     }
 }
コード例 #10
0
ファイル: Enemy.cs プロジェクト: 2Light/Insomnia
 private void Physik()
 {
     Geschwindigkeit.Y += Gravitation;   //Graviation erhöht Fallgeschwindigkeit
     if (Geschwindigkeit.Y > MaxSpeed.Y) Geschwindigkeit.Y = MaxSpeed.Y; //Maximale Fallgeschwindigkeit
     if (PositionCurrent.Y > 1024) State = Enemystate.Dead; //Sturz in Abgrund -> Tod
 }
コード例 #11
0
ファイル: Enemy.cs プロジェクト: Rygaido/FinalN-Hax
        public override void Reset()
        {
            //overide reset, enemies respawn and set to standing
            base.Reset();

            active = true;
            health = 1;
            Location = new Rectangle(spawnX, spawnY, Location.Width, Location.Height);

            current = Enemystate.standing;
        }
コード例 #12
0
ファイル: Enemy.cs プロジェクト: Rygaido/FinalN-Hax
        public override void Update()
        {
            //apply the gravity
               base.Update();
               ySpeed += Movable.gravity;

               if (health <= 0) {
               current = Enemystate.dead;
               }
        }