Esempio n. 1
0
    Quaternion getRotationByMapDir(MapDir dir)
    {
        Quaternion q = Quaternion.identity;

        switch (dir)
        {
        case MapDir.UP:
            break;

        case MapDir.DOWN:
            q = Quaternion.Euler(0, 180, 0);
            break;

        case MapDir.LEFT:
            q = Quaternion.Euler(0, 270, 0);
            break;

        case MapDir.RIGHT:
            q = Quaternion.Euler(0, 90, 0);
            break;

        default:
            break;
        }
        return(q);
    }
Esempio n. 2
0
 IEnumerator Fall(float mSpeed, MapDir dir)
 {
     Vector3 moveVector = new Vector3(DirTable[dir].x, DirTable[dir].y, 0);
     for (float timer = 0.0f; timer < 1 / mSpeed; timer += Time.deltaTime)
     {
         transform.position += moveVector * Time.deltaTime;
         yield return 0;
     }
 }
Esempio n. 3
0
    bool Moveship(MapDir dir)
    {
        if(drill.isDigging)
            return false;

        Vector3 mSpeed = Vector3.zero;
        //if (dir == MapDir.Up) //speed down
        //    mSpeed /= 2;

        //if (dir == MapDir.Down)
            //mSpeed *= 1.5f;

        Index ship = new Index(Mathf.RoundToInt(transform.position.x) + map.size / 2,
            Mathf.RoundToInt(transform.position.y));
        Index moveTo = ship + DirTable[dir];

        if (map.IsTileEmpty(ship + new Index(0, -1)) || map.IsTileLava(ship + new Index(0, -1)))
        {
            isFall = true;
        }
        else{
            isFall = false;
        }

        if (map.IsTileDust(moveTo))
        {
            if (drill.toolLeve < Tables.TerrainTable["Dust"].leve)
                return false;

            drill.Dig(moveTo, map);
            return true;
        }
        if (map.IsTileRock(moveTo))
        {
            if (drill.toolLeve < Tables.TerrainTable["Rock"].leve)
                return false;

            drill.Dig(moveTo, map);
        }

        return true;
    }
Esempio n. 4
0
    Quaternion getTurnRotationByMapDir(MapDir dir1, MapDir dir2)
    {
        Quaternion q = Quaternion.identity;

        if (dir1 == MapDir.UP && dir2 == MapDir.LEFT)
        {
        }
        else if (dir1 == MapDir.UP && dir2 == MapDir.RIGHT)
        {
            q = Quaternion.Euler(0, 90, 0);
        }
        else if (dir2 == MapDir.DOWN && dir1 == MapDir.LEFT)
        {
            q = Quaternion.Euler(0, 270, 0);
        }
        else if (dir1 == MapDir.DOWN && dir2 == MapDir.RIGHT)
        {
            q = Quaternion.Euler(0, 180, 0);
        }
        return(q);
    }