Inheritance: MonoBehaviour
Ejemplo n.º 1
0
        public void Test6()
        {
            string inputString =
                @"......#.#.
#..#.#....
..#######.
.#.#.###..
.#..#.....
..#....#.#
#..#....#.
.##.#..###
##...#..#.
.#....####";

            List <string> inputStrings = inputString.Split('\n').ToList();

            AsteroidBelt ab = new AsteroidBelt(inputStrings);

            Assert.AreEqual(33, ab.GetVisibleAsteroidsFromPoint(new Point(5, 8)).Count);
        }
Ejemplo n.º 2
0
    public AsteroidBeltUI(Zone zone,
                          AsteroidBelt belt,
                          MeshFilter meshFilter,
                          MeshCollider collider,
                          int spritesheetWidth,
                          int spritesheetHeight,
                          float scale)
    {
        _belt     = belt;
        _zone     = zone;
        Filter    = meshFilter;
        _collider = collider;
        var orbit = zone.Orbits[belt.Data.Orbit];

        _orbitParent = orbit.Data.Parent;
        _vertices    = new Vector3[_belt.Data.Asteroids.Length * 4];
        _normals     = new Vector3[_belt.Data.Asteroids.Length * 4];
        _uvs         = new Vector2[_belt.Data.Asteroids.Length * 4];
        _indices     = new int[_belt.Data.Asteroids.Length * 6];
        _scale       = scale;

        var maxDist    = 0f;
        var spriteSize = float2(1f / spritesheetWidth, 1f / spritesheetHeight);

        // vertex order: bottom left, top left, top right, bottom right
        for (var i = 0; i < belt.Data.Asteroids.Length; i++)
        {
            if (belt.Data.Asteroids[i].Distance > maxDist)
            {
                maxDist = belt.Data.Asteroids[i].Distance;
            }
            var spriteX = Random.Range(0, spritesheetWidth);
            var spriteY = Random.Range(0, spritesheetHeight);

            _uvs[i * 4]     = new Vector2(spriteX * spriteSize.x, spriteY * spriteSize.y);
            _uvs[i * 4 + 1] = new Vector2(spriteX * spriteSize.x, spriteY * spriteSize.y + spriteSize.y);
            _uvs[i * 4 + 2] = new Vector2(spriteX * spriteSize.x + spriteSize.x, spriteY * spriteSize.y + spriteSize.y);
            _uvs[i * 4 + 3] = new Vector2(spriteX * spriteSize.x + spriteSize.x, spriteY * spriteSize.y);

            _indices[i * 6]     = i * 4;
            _indices[i * 6 + 1] = i * 4 + 1;
            _indices[i * 6 + 2] = i * 4 + 3;
            _indices[i * 6 + 3] = i * 4 + 3;
            _indices[i * 6 + 4] = i * 4 + 1;
            _indices[i * 6 + 5] = i * 4 + 2;
        }

        for (var i = 0; i < _normals.Length; i++)
        {
            _normals[i] = -Vector3.forward;
        }

        _mesh           = new Mesh();
        _mesh.vertices  = _vertices;
        _mesh.uv        = _uvs;
        _mesh.triangles = _indices;
        _mesh.normals   = _normals;
        _mesh.bounds    = new Bounds(Vector3.zero, Vector3.one * maxDist);
        _size           = maxDist;

        Filter.mesh = _mesh;
        //_collider.sharedMesh = _mesh;
    }
Ejemplo n.º 3
0
 /// <summary>
 /// Start is called on the frame when a script is enabled just before
 /// any of the Update methods is called the first time.
 /// </summary>
 void Start()
 {
     ab = GameObject.FindObjectOfType <AsteroidBelt>().GetComponent <AsteroidBelt>();
     spawn();
 }
Ejemplo n.º 4
0
 public TitleScreen()
 {
     Reset();
     _asteroids = new AsteroidBelt(15, AsteroidSize.Small);
 }