Exemple #1
0
    void Start()
    {
        player_rigidbody   = this.GetComponent <Rigidbody2D> ();
        player_animator    = this.GetComponent <Animator> ();
        player_boxcollider = this.GetComponent <CapsuleCollider2D>();
        player_Scale       = transform.localScale;
        velocity           = player_rigidbody.velocity;
        player_rigidbody.freezeRotation = true;
        counter_close_range_attack      = 0;
        counter_far_distance_attack     = 0;
        hammer_transform = transform.Find("Hammer_for_attack");
        hammer           = GameObject.Find("Hammer_for_attack");
        hammer_rigidbody = hammer.GetComponent <Rigidbody2D> ();
        start_time       = Time.time;
        timer_for_skill  = Time.time;
        timer_for_triple = false;
        skill_counter    = 0;
        player_health    = 100.0f;
        shield           = false;
        in_shield        = false;

        target_boss           = GameObject.Find("bottle");
        target_boss_transform = target_boss.transform;
        stage             = true;
        AI_Location_hor   = location_hor.left;
        AI_Location_ver   = location_ver.up;
        area_attack       = 2.2f;
        player_speed      = 6.0f;
        AI_attack         = true;
        init_close_attack = false;
        AI_count          = 0;
        isAttack          = false;
        move = true;
    }
Exemple #2
0
    void FixedUpdate()
    {
        AI_Location_hor = AI_location_horcheck();
        AI_Location_ver = AI_location_vercheck();
        if (stage)
        {
            if (move && !isAttack && AI_Location_hor == location_hor.left)
            {
                if (!isPush)
                {
                    player_positon            = transform.position;
                    player_positon.x         += player_speed * Time.deltaTime;
                    transform.position        = player_positon;
                    player_velocity           = player_rigidbody.velocity;
                    player_velocity.x         = 6.0f;
                    player_rigidbody.velocity = player_velocity;
                }
                else
                {
                    player_positon            = transform.position;
                    player_positon.x         += Time.deltaTime * push_v;
                    transform.position        = player_positon;
                    player_velocity           = player_rigidbody.velocity;
                    player_velocity.x         = push_v;
                    player_rigidbody.velocity = player_velocity;
                }
                player_Scale.x       = Mathf.Abs(player_Scale.x);
                transform.localScale = player_Scale;
            }
            else if (move && !isAttack && AI_Location_hor == location_hor.right)
            {
                if (!isPush)
                {
                    player_positon            = transform.position;
                    player_positon.x         -= player_speed * Time.deltaTime;
                    transform.position        = player_positon;
                    player_velocity           = player_rigidbody.velocity;
                    player_velocity.x         = -6.0f;
                    player_rigidbody.velocity = player_velocity;
                }
                else
                {
                    player_positon            = transform.position;
                    player_positon.x         -= Time.deltaTime * push_v;
                    transform.position        = player_positon;
                    player_velocity           = player_rigidbody.velocity;
                    player_velocity.x         = push_v;
                    player_rigidbody.velocity = player_velocity;
                }
                player_Scale.x       = -Mathf.Abs(player_Scale.x);
                transform.localScale = player_Scale;
            }
            else if (!isAttack && AI_Location_hor == location_hor.near)
            {
                if (AI_Location_ver == location_ver.up)
                {
                    Debug.Log("here attack?");
                }
                else
                {
                    if (!AI_attack && !init_close_attack)
                    {
                        close_attack_timer = Time.time;
                        init_close_attack  = true;
                        player_animator.SetBool("close_attack", AI_attack);
                    }
                    if (init_close_attack)
                    {
                        //////////////////////////////
                        if (Time.time - close_attack_timer >= 0.2f)
                        {
                            AI_attack         = true;
                            init_close_attack = false;
                        }
                    }
                    if (AI_attack)
                    {
                        BroadcastMessage("SetCloseAttack", true);
                        player_velocity           = player_rigidbody.velocity;
                        player_velocity.x         = 0.0f;
                        player_rigidbody.velocity = player_velocity;
                        move = false;
                        player_animator.Play("close_attack");
                        if (AI_count >= 1)
                        {
                            isAttack   = true;
                            AI_attack  = false;
                            AI_count   = 0;
                            Away_timer = Time.time;
                        }
                    }
                }
            }
            else if (isAttack && Time.time - Away_timer <= 1.5f)
            {
                if (transform.position.x < target_boss_transform.position.x)
                {
                    player_positon            = transform.position;
                    player_positon.x         -= player_speed * Time.deltaTime;
                    transform.position        = player_positon;
                    player_velocity           = player_rigidbody.velocity;
                    player_velocity.x         = -6.0f;
                    player_rigidbody.velocity = player_velocity;
                    player_Scale.x            = -Mathf.Abs(player_Scale.x);
                    transform.localScale      = player_Scale;
                }
                else if (transform.position.x > target_boss_transform.position.x)
                {
                    player_positon            = transform.position;
                    player_positon.x         += player_speed * Time.deltaTime;
                    transform.position        = player_positon;
                    player_velocity           = player_rigidbody.velocity;
                    player_velocity.x         = 6.0f;
                    player_rigidbody.velocity = player_velocity;
                    player_Scale.x            = Mathf.Abs(player_Scale.x);
                    transform.localScale      = player_Scale;
                }
            }

            if (isAttack && (Time.time - Away_timer) * 6.0f >= 7.5f && Time.time - Away_timer <= 4.0f)
            {
                player_positon            = transform.position;
                player_positon.x         += 0.0f;
                transform.position        = player_positon;
                player_velocity           = player_rigidbody.velocity;
                player_velocity.x         = 0.0f;
                player_rigidbody.velocity = player_velocity;
            }
            else if (isAttack && Time.time - Away_timer > 4.0f)
            {
                isAttack = false;
                move     = true;
            }
        }

        Debug.Log(isAttack);

        player_animator.SetFloat("vel_x", Mathf.Abs(player_rigidbody.velocity.x));
        player_animator.SetBool("close_attack", AI_attack);
        player_animator.SetBool("isGround", isGround);
        player_animator.SetBool("five_minutes", five_minutes);
        player_animator.SetBool("isPush", isPush);



        /*
         * timer = true;
         * speed_up = (isGround == true ? false : true);
         * if (alive) {
         *      if (Input.GetKey(KeyCode.D)) {
         *              if (!isLadder && !isGround && speed_up) {
         *                      Vector3 pos = transform.position;
         *                      pos.x += Time.deltaTime * vel_x_in_air;
         *                      transform.position = pos;
         *                      Vector2 vel = player_rigidbody.velocity;
         *                      vel.x = vel_x_in_air;
         *                      player_rigidbody.velocity = vel;
         *              } else if ( isLadder && !isGround) {
         *                      Vector3 pos = transform.position;
         *                      pos.x += Time.deltaTime * ladder_v;
         *                      transform.position = pos;
         *                      Vector2 vel = player_rigidbody.velocity;
         *                      vel.x = ladder_v;
         *                      player_rigidbody.velocity = vel;
         *              } else if(isGround && isPush){
         *                      Vector3 pos = transform.position;
         *                      pos.x += Time.deltaTime * push_v;
         *                      transform.position = pos;
         *                      Vector2 vel = player_rigidbody.velocity;
         *                      vel.x = push_v;
         *                      player_rigidbody.velocity = vel;
         *              } else if(!isLadder){
         *                      player_rigidbody.AddForce (10*Vector2.right * pushmove);
         *                      float vx = player_rigidbody.velocity.x;
         *                      Vector2 vel = player_rigidbody.velocity;
         *                      vel.x = (vx >= vel_x ? vel_x : vx);
         *                      player_rigidbody.velocity = vel;
         *              }
         *              player_Scale.x = Mathf.Abs (player_Scale.x);
         *              transform.localScale = player_Scale;
         *              timer = false;
         *      } else if (Input.GetKey(KeyCode.A)) {
         *              if (!isLadder && !isGround && speed_up) {
         *                      Vector3 pos = transform.position;
         *                      pos.x -= Time.deltaTime * vel_x_in_air;
         *                      transform.position = pos;
         *                      Vector2 vel = player_rigidbody.velocity;
         *                      vel.x = -vel_x_in_air;
         *                      player_rigidbody.velocity = vel;
         *              } else if (isLadder && !isGround) {
         *                      Vector3 pos = transform.position;
         *                      pos.x -= Time.deltaTime * ladder_v;
         *                      transform.position = pos;
         *                      Vector2 vel = player_rigidbody.velocity;
         *                      vel.x = -ladder_v;
         *                      player_rigidbody.velocity = vel;
         *              } else if(isGround && isPush){
         *                      Vector3 pos = transform.position;
         *                      pos.x -= Time.deltaTime * push_v;
         *                      transform.position = pos;
         *                      Vector2 vel = player_rigidbody.velocity;
         *                      vel.x = -push_v;
         *                      player_rigidbody.velocity = vel;
         *              } else if(!isLadder){
         *                      player_rigidbody.AddForce (10*Vector2.left * pushmove);
         *                      float vx = Mathf.Abs(player_rigidbody.velocity.x);
         *                      Vector2 vel = player_rigidbody.velocity;
         *                      vel.x = -(vx >= vel_x ? vel_x : vx);
         *                      player_rigidbody.velocity = vel;
         *              }
         *              player_Scale.x = -Mathf.Abs (player_Scale.x);
         *              transform.localScale = player_Scale;
         *              timer = false;
         *      }
         *
         *      if (isLadder && isGround) {
         *              isLadder = false;
         *      }
         *
         *      if (isLadder) {
         *              if (Input.GetKey (KeyCode.W) || Input.GetKey (KeyCode.S))
         *                      player_animator.speed = 1.0f;
         *              else
         *                      player_animator.speed = 0.0f;
         *      } else {
         *              player_animator.speed = 1.0f;
         *      }
         *
         *      if (isGround && Input.GetKeyDown (KeyCode.Space)) {
         *              player_rigidbody.AddForce (Vector2.up*100*jumpVelocity);
         *              speed_up = true;
         *              timer = false;
         *      }
         *
         *      Physics2D.IgnoreCollision (GameObject.FindGameObjectWithTag ("hammer_in_attack").GetComponent<Collider2D> (), player_boxcollider);
         *      if (isGround && Input.GetKey(KeyCode.J)) {
         *              close_range_attack = true;
         *              far_distance_attack = false;
         *              counter_close_range_attack=1;
         *              if (counter_far_distance_attack > 0) {
         *                      attack_transform = true;
         *                      counter_far_distance_attack = 0;
         *              }
         *              timer = false;
         *              BroadcastMessage ("SetCloseAttack", true);
         *              BroadcastMessage ("SetFurtherAttack", false);
         *      }
         *      if (isGround && Input.GetKeyDown(KeyCode.K)) {
         *              far_distance_attack = true;
         *              close_range_attack = false;
         *              counter_far_distance_attack=1;
         *              if (counter_close_range_attack > 0) {
         *                      attack_transform = true;
         *                      counter_close_range_attack = 0;
         *              }
         *              timer = false;
         *              BroadcastMessage ("SetCloseAttack", false);
         *              BroadcastMessage ("SetFurtherAttack", true);
         *              if(player_Scale.x>0.0f)
         *                      BroadcastMessage ("SetPlayerDir", true);
         *              else
         *                      BroadcastMessage ("SetPlayerDir", false);
         *      }
         *      close_range_attack=(counter_close_range_attack>0.0f?true:false);
         *      far_distance_attack=(counter_far_distance_attack>0.0f?true:false);
         *      if (close_range_attack)
         *              counter_close_range_attack--;
         *      if (far_distance_attack)
         *              counter_far_distance_attack--;
         *
         *      if (Input.GetKey (KeyCode.Q)) {
         *              alive = false;
         *              player_boxcollider.isTrigger = true;
         *              player_rigidbody.gravityScale = -10;
         *              Destroy (gameObject, 2);
         *              timer = false;
         *      }
         *
         *      if (Input.GetKeyDown (KeyCode.L)&&skill_counter==0) {
         *              timer_for_triple=true;
         *              timer_for_skill = Time.time;
         *      }
         *
         *      if(timer_for_triple){
         *              if (skill_counter < 3) {
         *                      float now_timer = Time.time;
         *                      if (now_timer - timer_for_skill >= skill_time) {
         *                              GameObject skill_hammer = Instantiate (Resources.Load ("prefabs/skill_L_3")) as GameObject;
         *                              Physics2D.IgnoreCollision (player_boxcollider, skill_hammer.GetComponent<Collider2D> ());
         *                              foreach (Collider2D col in GetComponentsInChildren<Collider2D>())
         *                                      Physics2D.IgnoreCollision (col, skill_hammer.GetComponent<Collider2D> ());
         *                              skill_counter++;
         *                              timer_for_skill = now_timer;
         *                      }
         *              } else {
         *                      timer_for_triple = false;
         *                      skill_counter = 0;
         *              }
         *      }
         *
         *      if (Input.GetKeyDown (KeyCode.U)&&shield) {
         *              if(!ProtectLayer)
         *                      ProtectLayer = Instantiate (Resources.Load ("prefabs/Protect")) as GameObject;
         *              BroadcastMessage ("SetProtectLayer",true);
         *              shield = false;
         *              shield_timer = Time.time;
         *              in_shield = true;
         *      }
         *
         *      if (in_shield) {
         *              shield_now_timer= Time.time;
         *              if (shield_now_timer-shield_timer>=shield_functimer) {
         *                      if (ProtectLayer)
         *                              Destroy (ProtectLayer);
         *                      BroadcastMessage ("SetProtectLayer", false);
         *                      in_shield = false;
         *                      GameObject.FindWithTag ("MainCamera").SendMessage ("SetShieldFlag2",true);
         *              }
         *      }
         *
         *      if (Input.GetKeyDown (KeyCode.C)) {
         *              GameObject win_the_game = Instantiate (Resources.Load ("prefabs/Win")) as GameObject;
         *      }
         *
         *      if (timer && isGround) {
         *              float delttime = Time.time - start_time;
         *              if (delttime > 5.0f) {
         *                      five_minutes = true;
         *                      player_animator.SetBool ("five_minutes", five_minutes);
         *              } else {
         *                      five_minutes = false;
         *                      player_animator.SetBool ("five_minutes", five_minutes);
         *              }
         *      } else {
         *              start_time = Time.time;
         *              five_minutes = false;
         *              player_animator.SetBool ("five_minutes", five_minutes);
         *      }
         * } else {
         *      if (Input.GetKeyDown (KeyCode.R)) {
         *              gameexit = true;
         *      }
         * }
         * player_animator.SetFloat ("velocity_x",Mathf.Abs(player_rigidbody.velocity.x));
         * player_animator.SetFloat ("velocity_y",player_rigidbody.velocity.y);
         * player_animator.SetBool ("close_attack",close_range_attack);
         * player_animator.SetBool ("far_attack",far_distance_attack);
         * player_animator.SetBool ("isGround",isGround);
         * player_animator.SetBool ("five_minutes",five_minutes);
         * player_animator.SetBool ("isPush",isPush);*/
    }