コード例 #1
0
        public void AddEnemy(Vector2 p, int type)
        {
            GameSprite enemy = new GameSprite();

            Texture enemytexture;

            switch (type)
            {
            case 2:
                enemy.AddVertex(new Vector2(-0.2f, 0.09f));
                enemy.AddVertex(new Vector2(-0.065f, 0.15f));
                enemy.AddVertex(new Vector2(0.065f, 0.15f));
                enemy.AddVertex(new Vector2(0.2f, 0.09f));
                enemy.AddVertex(new Vector2(0.2f, -0.15f));
                enemy.AddVertex(new Vector2(-0.2f, -0.15f));
                enemytexture = TextureLoader.FromFile(device, "../../enemy2.bmp");
                enemy.Tex    = enemytexture;
                enemy.AddTex(new Vector2(0, 0.2f));
                enemy.AddTex(new Vector2(0.32f, 0.1f));
                enemy.AddTex(new Vector2(0.64f, 0.1f));
                enemy.AddTex(new Vector2(1, 0.2f));
                enemy.AddTex(new Vector2(1, 1));
                enemy.AddTex(new Vector2(0, 1));
                break;

            case 3:
                enemy.AddVertex(new Vector2(-0.2f, 0.07f));
                enemy.AddVertex(new Vector2(-0.07f, 0.2f));
                enemy.AddVertex(new Vector2(0.07f, 0.2f));
                enemy.AddVertex(new Vector2(0.2f, 0.07f));
                enemy.AddVertex(new Vector2(0.2f, -0.2f));
                enemy.AddVertex(new Vector2(-0.2f, -0.2f));
                enemytexture = TextureLoader.FromFile(device, "../../enemy3.bmp");
                enemy.Tex    = enemytexture;
                enemy.AddTex(new Vector2(0, 0.36f));
                enemy.AddTex(new Vector2(0.36f, 0.06f));
                enemy.AddTex(new Vector2(0.64f, 0.06f));
                enemy.AddTex(new Vector2(1, 0.36f));
                enemy.AddTex(new Vector2(1, 1));
                enemy.AddTex(new Vector2(0, 1));
                break;

            case 4:
                enemy.AddVertex(new Vector2(-0.2f, 0));
                enemy.AddVertex(new Vector2(-0.05f, 0.15f));
                enemy.AddVertex(new Vector2(0.05f, 0.15f));
                enemy.AddVertex(new Vector2(0.2f, 0));
                enemy.AddVertex(new Vector2(0.15f, -0.05f));
                enemy.AddVertex(new Vector2(-0.15f, -0.05f));
                enemytexture = TextureLoader.FromFile(device, "../../enemy4.bmp");
                enemy.Tex    = enemytexture;
                enemy.AddTex(new Vector2(0, 0.55f));
                enemy.AddTex(new Vector2(0.32f, 0.14f));
                enemy.AddTex(new Vector2(0.68f, 0.14f));
                enemy.AddTex(new Vector2(1, 0.55f));
                enemy.AddTex(new Vector2(1, 0.8f));
                enemy.AddTex(new Vector2(0, 0.8f));
                break;

            default:
                enemy.AddVertex(new Vector2(-0.2f, 0.15f));
                enemy.AddVertex(new Vector2(0.2f, 0.15f));
                enemy.AddVertex(new Vector2(0.2f, 0));
                enemy.AddVertex(new Vector2(0.15f, -0.15f));
                enemy.AddVertex(new Vector2(-0.15f, -0.15f));
                enemy.AddVertex(new Vector2(-0.2f, 0));
                enemytexture = TextureLoader.FromFile(device, "../../enemy1.bmp");
                enemy.Tex    = enemytexture;
                enemy.AddTex(new Vector2(0, 0));
                enemy.AddTex(new Vector2(1, 0));
                enemy.AddTex(new Vector2(1, 0.5f));
                enemy.AddTex(new Vector2(0.86f, 0.93f));
                enemy.AddTex(new Vector2(0.14f, 0.93f));
                enemy.AddTex(new Vector2(0, 0.5f));
                break;
            }

            enemy.Color       = Color.Transparent;
            enemy.Transparent = true;
            enemy.P           = p;
            //This sets the original velocity.
            //TODO: Figure out how to change Y velocity depending on enemy
            enemy.V = new Vector2(-1.5f, 0);
            enemies.Add(enemy);
        }