Exemplo n.º 1
0
    private void FixedUpdate()  //ゲームが始まったら
    {
        //this.Reel1.transform.Translate(0, speed1, 0); //リールをy方向(下)に動かす
        //this.Reel2.transform.Translate(0, speed2, 0);
        //this.Reel3.transform.Translate(0, speed3, 0);

        m_delMove1 = Time.deltaTime * m_speed1;
        m_delMove2 = Time.deltaTime * m_speed2;
        m_delMove3 = Time.deltaTime * m_speed3;

        m_reelYPos1 += m_delMove1;
        m_reelYPos2 += m_delMove2;
        m_reelYPos3 += m_delMove3;
        //this.Reel1.transform.Translate(0, m_reelYPos1, 0); //リールをy方向(下)に動かす
        //this.Reel2.transform.Translate(0, m_reelYPos2, 0);
        //this.Reel3.transform.Translate(0, m_reelYPos3, 0);

        if (m_reelYPos1 < -CO.REEL_WIDTH * m_reelGenerator1.GetReelElmNum())
        {
                                                                   //リールが一番下に来たら
            {
                this.m_Reel1.transform.position = m_initialpos1;   //初期位置に戻す
                    m_reelYPos1 = m_initialpos1.y;
                m_reelGenerator1.DestroyReel();
                m_reelGenerator1.GenerateReel();
            }
        }
        if (m_reelYPos2 < -CO.REEL_WIDTH * m_reelGenerator2.GetReelElmNum())
        {
            this.m_Reel2.transform.position = m_initialpos2;
            m_reelYPos2 = m_initialpos2.y;
            m_reelGenerator2.DestroyReel();
            m_reelGenerator2.GenerateReel();
        }
        if (m_reelYPos3 < -CO.REEL_WIDTH * m_reelGenerator3.GetReelElmNum())
        {
            this.m_Reel3.transform.position = m_initialpos3;
            m_reelYPos3 = m_initialpos3.y;
            m_reelGenerator3.DestroyReel();
            m_reelGenerator3.GenerateReel();
        }

        //ボタンが押されていて、かつ、リールを図柄感覚で割った余りが規定値以内であったら
        if (m_speed1 < 0.0f && m_stopflag1 && Mathf.Abs(m_reelYPos1) % CO.REEL_WIDTH <= (CO.REEL_WIDTH * 0.5f))
        {
            //図柄チェックを行って、止めていい役なら
            int slideNum = GetSlideFrameNum(CO.REEL_TYPE.REEL_TYPE_LEFT);
            if (slideNum == 0)
            {
                m_reelYPos1 = -(int)(Mathf.Abs(m_reelYPos1) / CO.REEL_WIDTH) * CO.REEL_WIDTH;
                m_speed1    = 0.0f;//リールの回転スピードを0にする
            }
        }
        if (m_speed2 < 0.0f && m_stopflag2 && Mathf.Abs(m_reelYPos2) % CO.REEL_WIDTH <= (CO.REEL_WIDTH * 0.5f))
        {
            //図柄チェックを行って、止めていい役なら
            int slideNum = GetSlideFrameNum(CO.REEL_TYPE.REEL_TYPE_CENTER);
            if (slideNum == 0)
            {
                m_reelYPos2 = -(int)(Mathf.Abs(m_reelYPos2) / CO.REEL_WIDTH) * CO.REEL_WIDTH;
                m_speed2    = 0.0f;//リールの回転スピードを0にする
            }
        }
        if (m_speed3 < 0.0f && m_stopflag3 && Mathf.Abs(m_reelYPos3) % CO.REEL_WIDTH <= (CO.REEL_WIDTH * 0.5f))
        {
            //図柄チェックを行って、止めていい役なら
            int slideNum = GetSlideFrameNum(CO.REEL_TYPE.REEL_TYPE_RIGHT);
            if (slideNum == 0)
            {
                m_reelYPos3 = -(int)(Mathf.Abs(m_reelYPos3) / CO.REEL_WIDTH) * CO.REEL_WIDTH;
                m_speed3    = 0.0f;//リールの回転スピードを0にする
            }
        }

        this.m_Reel1.transform.position = new Vector3(this.m_Reel1.transform.position.x, m_reelYPos1, this.m_Reel1.transform.position.z);
        this.m_Reel2.transform.position = new Vector3(this.m_Reel2.transform.position.x, m_reelYPos2, this.m_Reel2.transform.position.z);
        this.m_Reel3.transform.position = new Vector3(this.m_Reel3.transform.position.x, m_reelYPos3, this.m_Reel3.transform.position.z);

        //すべてのリールが停止していてallflagがfalseの場合
        if (m_speed1 == 0.0f && m_speed2 == 0.0f && m_speed3 == 0.0f && !m_allflag)
        {
            m_allflag = true;               //小役チェックが一度しか行われないようにtrueにしておく
            m_gameController.CheckMiddle(); //子役チェックプログラムの呼び出し
        }
    }