Пример #1
0
        static void Main(string[] args)
        {
            fk_Material.InitDefault();
            var window = new fk_AppWindow();

            window.CameraPos   = new fk_Vector(0.0, 10.0, 50.0);
            window.CameraFocus = new fk_Vector(0.0, 0.0, 0.0);
            window.Size        = new fk_Dimension(800, 600);
            window.BGColor     = new fk_Color(0.6, 0.7, 0.8);



            var floor      = new fk_Model();
            var floorshape = new fk_Block(130.0, 2.0, 10.0);

            floor.Shape    = floorshape;
            floor.Material = fk_Material.Brown;
            window.Entry(floor);

            var player = new fk_Model();

            player.SmoothMode = true;
            player.BMode      = fk_BoundaryMode.OBB;
            player.OBB        = new fk_Vector(0.6, 2.6, 0.5);
            player.BDraw      = true;
            window.Entry(player);

            var body      = new fk_Model();
            var bodyShape = new fk_Prism(20, 0.5, 0.5, 2.0);

            body.Shape    = bodyShape;
            body.Parent   = player;
            body.Material = fk_Material.Gray2;
            window.Entry(body);

            var head      = new fk_Model();
            var headShape = new fk_Sphere(10, 0.5);

            head.Shape    = headShape;
            head.Material = fk_Material.White;
            head.GlMoveTo(0.0, 0.0, -2.5);
            head.Parent = body;
            window.Entry(head);


            var tube      = new fk_Model[6];
            var tubeShape = new fk_Prism(20, 1.0, 1.0, 4.5);

            for (int a = 0; a < 4; a++)
            {
                tube[a]          = new fk_Model();
                tube[a].Shape    = tubeShape;
                tube[a].Material = fk_Material.Green;
                tube[a].GlVec(0.0, 1.0, 0.0);

                window.Entry(tube[a]);
            }

            var needle      = new fk_Model[6];
            var needleShape = new fk_Cone(30, 0.5, 3.0);

            for (int b = 0; b < 6; b++)
            {
                needle[b]          = new fk_Model();
                needle[b].Shape    = needleShape;
                needle[b].Material = fk_Material.Red;
                needle[b].GlVec(0.0, 1.0, 0.0);
                needle[b].SmoothMode = true;
                needle[b].BMode      = fk_BoundaryMode.OBB;
                needle[b].AdjustOBB();
                needle[b].BDraw = false;

                window.Entry(needle[b]);
            }

            var enemy      = new fk_Model[9];
            var enemyShape = new fk_Sphere(10, 1.0);

            for (int i = 0; i < 9; i++)
            {
                enemy[i]            = new fk_Model();
                enemy[i].Shape      = enemyShape;
                enemy[i].Material   = fk_Material.Pink;
                enemy[i].SmoothMode = true;
                enemy[i].BMode      = fk_BoundaryMode.OBB;
                enemy[i].AdjustOBB();
                enemy[i].BDraw = false;

                window.Entry(enemy[i]);
            }

            var enemy0 = new fk_Model[3];

            for (int x = 0; x < 3; x++)
            {
                enemy0[x]            = new fk_Model();
                enemy0[x].Shape      = enemyShape;
                enemy0[x].Material   = fk_Material.Purple;
                enemy0[x].SmoothMode = true;
                enemy0[x].BMode      = fk_BoundaryMode.OBB;
                enemy0[x].AdjustOBB();
                enemy0[x].BDraw = false;

                window.Entry(enemy0[x]);
            }

            var enemy1 = new fk_Model[3];

            for (int y = 0; y < 3; y++)
            {
                enemy1[y]            = new fk_Model();
                enemy1[y].Shape      = enemyShape;
                enemy1[y].Material   = fk_Material.Yellow;
                enemy1[y].SmoothMode = true;
                enemy1[y].BMode      = fk_BoundaryMode.OBB;
                enemy1[y].AdjustOBB();
                enemy1[y].BDraw = false;

                window.Entry(enemy1[y]);
            }

            var velocity0  = new fk_Vector(-0.15, 0.2, 0.0);
            var velocity1  = new fk_Vector(-0.1, 0.3, 0.0);
            var velocity2  = new fk_Vector(-0.15, 0.2, 0.0);
            var velocity3  = new fk_Vector(-0.1, 0.3, 0.0);
            var velocity4  = new fk_Vector(-0.5, 0.2, 0.0);
            var velocity5  = new fk_Vector(-0.15, 0.3, 0.0);
            var velocity6  = new fk_Vector(-0.15, 0.3, 0.0);
            var velocity7  = new fk_Vector(-0.5, 0.3, 0.0);
            var velocity8  = new fk_Vector(-0.5, 0.3, 0.0);
            var velocity00 = new fk_Vector(0.25, 0.0, 0.0);
            var velocity10 = new fk_Vector(0.0, -0.3, 0.0);

            var camera = new fk_Model();

            window.CameraModel = camera;
            camera.GlMoveTo(-10.0, 6.0, 50.0);

            var sprite = new fk_SpriteModel();

            if (sprite.InitFont("rm1b.ttf") == false)
            {
                Console.WriteLine("Font Init Error");
            }
            window.Entry(sprite);

            var gate      = new fk_Model();
            var gateshape = new fk_Block(1.5, 3.0, 0.0);

            gate.Shape    = gateshape;
            gate.Material = fk_Material.Cream;
            window.Entry(gate);

            var goal = new fk_Model();

            goal.Shape    = gateshape;
            goal.Material = fk_Material.Blue;
            window.Entry(goal);

            floor.GlMoveTo(25.0, -1.0, 0.0);
            goal.GlMoveTo(86.0, 1.5, 0.0);
            player.GlMoveTo(-20.0, 0.0, 0.0);
            body.GlVec(0.0, 1.0, 0.0);
            gate.GlMoveTo(-20.0, 1.5, 0.0);

            enemy[0].GlMoveTo(30, 0.5, 0.0);
            enemy[1].GlMoveTo(80, 0.5, 0.0);
            enemy[2].GlMoveTo(130, 0.5, 0.0);
            enemy[3].GlMoveTo(140, 0.5, 0.0);
            enemy[4].GlMoveTo(160, 0.5, 0.0);
            enemy[5].GlMoveTo(190, 0.5, 0.0);
            enemy[6].GlMoveTo(200, 0.5, 0.0);
            enemy[7].GlMoveTo(280, 0.5, 0.0);
            enemy[8].GlMoveTo(340, 0.5, 0.0);

            tube[0].GlMoveTo(20.0, 0.0, -2.0);
            tube[1].GlMoveTo(40.0, 0.0, -2.0);
            tube[2].GlMoveTo(60.0, 0.0, -2.0);
            tube[3].GlMoveTo(80.0, 0.0, -2.0);

            enemy0[0].GlMoveTo(-50, 0.5, 0.0);
            enemy0[1].GlMoveTo(-100, 0.5, 0.0);
            enemy0[2].GlMoveTo(-150, 0.5, 0.0);

            enemy1[0].GlMoveTo(45, 26.0, 0.0);
            enemy1[1].GlMoveTo(60, 26.0, 0.0);
            enemy1[2].GlMoveTo(70, 26.0, 0.0);

            needle[0].GlMoveTo(-10, 0.0, 0.0);
            needle[1].GlMoveTo(5, 0.0, 0.0);
            needle[2].GlMoveTo(25, 0.0, 0.0);
            needle[3].GlMoveTo(50, 0.0, 0.0);
            needle[4].GlMoveTo(70, 0.0, 0.0);
            needle[5].GlMoveTo(73, 0.0, 0.0);



            var velocity = new fk_Vector(0.0, 0.2, 0.0);

            var bgm = new GP_BGM("Shissou.ogg");

            bgm.Gain = 0.5;
            var se = new GP_SE(1);

            se.LoadData(0, "MIDTOM2.wav");

            window.Open();
            bgm.Start();
            se.Start();

            int life = 3;

            bool oldCrash0 = false;
            bool nowCrash0 = false;
            bool oldCrash1 = false;
            bool nowCrash1 = false;
            bool oldCrash2 = false;
            bool nowCrash2 = false;
            bool oldCrash3 = false;
            bool nowCrash3 = false;
            bool oldCrash4 = false;
            bool nowCrash4 = false;
            bool oldCrash5 = false;
            bool nowCrash5 = false;
            bool oldCrash6 = false;
            bool nowCrash6 = false;
            bool oldCrash7 = false;
            bool nowCrash7 = false;
            bool oldCrash8 = false;
            bool nowCrash8 = false;

            bool oldCrash00 = false;
            bool nowCrash00 = false;
            bool oldCrash01 = false;
            bool nowCrash01 = false;
            bool oldCrash02 = false;
            bool nowCrash02 = false;

            bool oldCrashN0 = false;
            bool nowCrashN0 = false;
            bool oldCrashN1 = false;
            bool nowCrashN1 = false;
            bool oldCrashN2 = false;
            bool nowCrashN2 = false;
            bool oldCrashN3 = false;
            bool nowCrashN3 = false;
            bool oldCrashN4 = false;
            bool nowCrashN4 = false;
            bool oldCrashN5 = false;
            bool nowCrashN5 = false;

            bool oldCrash11 = false;
            bool nowCrash11 = false;
            bool oldCrash12 = false;
            bool nowCrash12 = false;
            bool oldCrash10 = false;
            bool nowCrash10 = false;

            while (window.Update() == true)
            {
                string str = "残りライフ       " + life.ToString();
                sprite.DrawText(str, true);
                sprite.SetPositionLT(-400.0, 300.0);

                if (life == 0)
                {
                    player.GlMoveTo(-20.0, 0.0, 0.0);
                    camera.GlMoveTo(-10.0, 6.0, 50.0);
                    enemy[0].GlMoveTo(30, 0.5, 0.0);
                    enemy[1].GlMoveTo(80, 0.5, 0.0);
                    enemy[2].GlMoveTo(130, 0.5, 0.0);
                    enemy[3].GlMoveTo(140, 0.5, 0.0);
                    enemy[4].GlMoveTo(160, 0.5, 0.0);
                    enemy[5].GlMoveTo(190, 0.5, 0.0);
                    enemy[6].GlMoveTo(200, 0.5, 0.0);
                    enemy[7].GlMoveTo(280, 0.5, 0.0);
                    enemy[8].GlMoveTo(340, 0.5, 0.0);
                    enemy0[0].GlMoveTo(-50, 0.5, 0.0);
                    enemy0[1].GlMoveTo(-100, 0.5, 0.0);
                    enemy0[2].GlMoveTo(-150, 0.5, 0.0);
                    enemy1[0].GlMoveTo(45, 26.0, 0.0);
                    enemy1[1].GlMoveTo(60, 26.0, 0.0);
                    enemy1[2].GlMoveTo(70, 26.0, 0.0);
                    life += 2;
                }

                var pos = player.Position;
                if (pos.x < 86.0)
                {
                    if (-20.0 < pos.x)
                    {
                        if (pos.y > 0.0)
                        {
                            velocity.y -= 0.003;
                        }
                        else
                        {
                            velocity.y = 0.0;
                            if (window.GetKeyStatus(' ', fk_SwitchStatus.PRESS) == true)
                            {
                                velocity.y = 0.2;
                            }
                        }
                        if (window.GetSpecialKeyStatus(fk_SpecialKey.LEFT, fk_SwitchStatus.PRESS) == true)
                        {
                            player.LoTranslate(-0.07, 0.0, 0.0);
                            camera.LoTranslate(-0.07, 0.0, 0.0);
                        }
                        if (window.GetSpecialKeyStatus(fk_SpecialKey.RIGHT, fk_SwitchStatus.PRESS) == true)
                        {
                            player.LoTranslate(0.07, 0.0, 0.0);
                            camera.LoTranslate(0.07, 0.0, 0.0);
                        }
                    }
                    else if (-20.0 >= pos.x)
                    {
                        if (pos.y > 0.0)
                        {
                            velocity.y -= 0.003;
                        }
                        else
                        {
                            velocity.y = 0.0;
                            if (window.GetKeyStatus(' ', fk_SwitchStatus.PRESS) == true)
                            {
                                velocity.y = 0.2;
                            }
                            if (window.GetSpecialKeyStatus(fk_SpecialKey.RIGHT, fk_SwitchStatus.PRESS) == true)
                            {
                                player.LoTranslate(0.1, 0.0, 0.0);
                                camera.LoTranslate(0.1, 0.0, 0.0);
                            }
                        }
                    }
                    player.GlTranslate(velocity);
                }
                else
                {
                    player.GlMoveTo(86.0, 0.0, 0.0);
                }

                if (pos.x >= 40.0)
                {
                    enemy1[0].GlTranslate(velocity10);
                }

                nowCrash10 = player.IsInter(enemy1[0]);
                if (nowCrash10 == true && oldCrash10 == false)
                {
                    life -= 1;
                }
                oldCrash10 = nowCrash10;

                if (pos.x >= 55.0)
                {
                    enemy1[1].GlTranslate(velocity10);
                }
                nowCrash11 = player.IsInter(enemy1[1]);
                if (nowCrash11 == true && oldCrash11 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash11 = nowCrash11;

                if (pos.x >= 65.0)
                {
                    enemy1[2].GlTranslate(velocity10);
                }
                nowCrash12 = player.IsInter(enemy1[2]);
                if (nowCrash12 == true && oldCrash12 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash12 = nowCrash12;



                var pos0 = enemy[0].Position;

                if (pos0.y > 0.0)
                {
                    velocity0.y -= 0.003;
                }
                else
                {
                    velocity0.y = 0.3;
                }


                enemy[0].GlTranslate(velocity0);


                nowCrash0 = player.IsInter(enemy[0]);
                if (nowCrash0 == true && oldCrash0 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash0 = nowCrash0;

                var pos1 = enemy[1].Position;
                if (pos1.y > 0.0)
                {
                    velocity1.y -= 0.003;
                }
                else
                {
                    velocity1.y = 0.3;
                }
                enemy[1].GlTranslate(velocity1);

                nowCrash1 = player.IsInter(enemy[1]);
                if (nowCrash1 == true && oldCrash1 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash1 = nowCrash1;

                var pos2 = enemy[2].Position;
                if (pos2.y > 0.0)
                {
                    velocity2.y -= 0.003;
                }
                else
                {
                    velocity2.y = 0.3;
                }
                enemy[2].GlTranslate(velocity2);

                nowCrash2 = player.IsInter(enemy[2]);
                if (nowCrash2 == true && oldCrash2 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash2 = nowCrash2;

                var pos3 = enemy[3].Position;
                if (pos3.y > 0.0)
                {
                    velocity3.y -= 0.003;
                }
                else
                {
                    velocity3.y = 0.3;
                }
                enemy[3].GlTranslate(velocity3);

                nowCrash3 = player.IsInter(enemy[3]);
                if (nowCrash3 == true && oldCrash3 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash3 = nowCrash3;

                var pos4 = enemy[4].Position;
                if (pos4.y > 0.0)
                {
                    velocity4.y -= 0.003;
                }
                else
                {
                    velocity4.y = 0.3;
                }
                enemy[4].GlTranslate(velocity4);

                nowCrash4 = player.IsInter(enemy[4]);
                if (nowCrash4 == true && oldCrash4 == false)
                {
                    life -= 1;
                }
                oldCrash4 = nowCrash4;

                var pos5 = enemy[5].Position;
                if (pos5.y > 0.0)
                {
                    velocity5.y -= 0.003;
                }
                else
                {
                    velocity5.y = 0.3;
                }
                enemy[5].GlTranslate(velocity5);

                nowCrash5 = player.IsInter(enemy[5]);
                if (nowCrash5 == true && oldCrash5 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash5 = nowCrash5;

                var pos6 = enemy[6].Position;
                if (pos6.y > 0.0)
                {
                    velocity6.y -= 0.003;
                }
                else
                {
                    velocity6.y = 0.3;
                }
                enemy[6].GlTranslate(velocity6);

                nowCrash6 = player.IsInter(enemy[6]);
                if (nowCrash6 == true && oldCrash6 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash6 = nowCrash6;

                var pos7 = enemy[7].Position;
                if (pos7.y > 0.0)
                {
                    velocity7.y -= 0.003;
                }
                else
                {
                    velocity7.y = 0.3;
                }
                enemy[7].GlTranslate(velocity7);

                nowCrash7 = player.IsInter(enemy[7]);
                if (nowCrash7 == true && oldCrash7 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash7 = nowCrash7;

                var pos8 = enemy[8].Position;
                if (pos8.y > 0.0)
                {
                    velocity8.y -= 0.003;
                }
                else
                {
                    velocity8.y = 0.3;
                }
                enemy[8].GlTranslate(velocity8);

                nowCrash8 = player.IsInter(enemy[8]);
                if (nowCrash8 == true && oldCrash8 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash8 = nowCrash8;

                var pos00 = enemy0[0].Position;
                enemy0[0].GlTranslate(velocity00);

                nowCrash00 = player.IsInter(enemy0[0]);
                if (nowCrash00 == true && oldCrash00 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash00 = nowCrash00;

                var pos01 = enemy0[1].Position;
                enemy0[1].GlTranslate(velocity00);

                nowCrash01 = player.IsInter(enemy0[1]);
                if (nowCrash01 == true && oldCrash01 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash01 = nowCrash01;

                var pos02 = enemy0[2].Position;
                enemy0[2].GlTranslate(velocity00);

                nowCrash02 = player.IsInter(enemy0[2]);
                if (nowCrash02 == true && oldCrash02 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrash02 = nowCrash02;

                nowCrashN0 = player.IsInter(needle[0]);
                if (nowCrashN0 == true && oldCrashN0 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrashN0 = nowCrashN0;

                nowCrashN1 = player.IsInter(needle[1]);
                if (nowCrashN1 == true && oldCrashN1 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrashN1 = nowCrashN1;

                nowCrashN2 = player.IsInter(needle[2]);
                if (nowCrashN2 == true && oldCrashN2 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrashN2 = nowCrashN2;

                nowCrashN3 = player.IsInter(needle[3]);
                if (nowCrashN3 == true && oldCrashN3 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrashN3 = nowCrashN3;

                nowCrashN4 = player.IsInter(needle[4]);
                if (nowCrashN4 == true && oldCrashN4 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrashN4 = nowCrashN4;

                nowCrashN5 = player.IsInter(needle[5]);
                if (nowCrashN5 == true && oldCrashN5 == false)
                {
                    se.StartSE(0);
                    life -= 1;
                }
                oldCrashN5 = nowCrashN5;
            }


            bgm.StopStatus = true;
            se.StopStatus  = true;
        }
Пример #2
0
 public Enemy()
 {
     emodel = new fk_Model();
     cone   = new fk_Cone(4, 1.5, 3.5);
     rand   = new Random();
 }
Пример #3
0
 public Player()
 {
     pmodel = new fk_Model();
     cone   = new fk_Cone(4, 1.5, 3.5);
     Speed  = 0.2;
 }