Exemple #1
0
    // Update is called once per frame
    /*Se ejecutara en cada momento */
    void Update()
    {
        {/*Movimiento Y-axis */
         /*Forma 1 */
         //trans.position = new Vector3(trans.position.x, trans.position.y -1, trans.position.z);

            /*Forma 2 */

            /*
             * var newPos = trans.position;
             * newPos.y -= 1;
             * trans.position = newPos;
             */
        }

        {/*Movimiento Y-axis low*/
            accDeltaTime += Time.deltaTime;

            /*Movimiento Y-axis fast*/
            var actualMovementTick = tickDeltaTime;
            if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) /*Tecla shift */
            {
                {                                                                    //Move down fast
                    actualMovementTick = fasTickDeltaTime;                           /*Forma 1 */
                    //actualMovementTick = tickDeltaTime * speedFactor; /*Forma 2 */
                }
            }
            if (accDeltaTime > actualMovementTick)
            {
                { //Move down
                    var oldPost = trans.position;
                    var oldRot  = trans.rotation;
                    var newPost = trans.position;
                    newPost.y     -= 1;
                    trans.position = newPost;

                    var(isOutX, isOutY) = ApplyConstraints(oldPost, oldRot);

                    var done = isOutY;
                    if (done)
                    {
                        this.enabled = false;
                        Board.InstantiateTetrisBlock();
                    }
                }
                accDeltaTime = 0; /*Reseteo del acumulador para empezar otra vez */
            }
        }

        {                                            /*Movimiento X-axis */
            if (Input.GetKeyDown(KeyCode.LeftArrow)) /*Tecla izquierda */
            {
                {                                    //Move left
                    var oldPost = trans.position;
                    var newPost = trans.position;
                    newPost.x     -= 1;
                    trans.position = newPost;

                    /*No se salga de los bordes izquierdos*/
                    ApplyConstraints(oldPost, trans.rotation);
                }
            }

            if (Input.GetKeyDown(KeyCode.RightArrow)) /*Tecla derecha */
            {
                {                                     //Move rigth
                    var oldPost = trans.position;
                    var newPost = trans.position;
                    newPost.x     += 1;
                    trans.position = newPost;

                    /*No se salga de los bordes derechos*/
                    ApplyConstraints(oldPost, trans.rotation);
                }
            }
        }

        {                                          /*Rotacion */
            if (Input.GetKeyDown(KeyCode.UpArrow)) /*Tecla arriba */
            {
                {
                    var oldRot = trans.rotation;
                    trans.rotation *= Quaternion.Euler(0, 0, 90); /*Forma 1 (Quaternion representa un delta de rotacion)*/
                    //trans.Rotate(new Vector3(0, 0, 90), Space.Self); /*Forma 2 (Self = coord locales)*/
                    //trans.Rotate(Vector3.forward, 90); /*Forma 3 (fordward es el eje Z)*/
                    ApplyConstraints(trans.position, oldRot);
                }
            }
        }
    }