示例#1
0
文件: MainMenu.cs 项目: jkapi/Kakoi
 public override void Initialize()
 {
     MovingBackground.Init(Content);
     KakoiLogo        = Content.Load <Texture2D>("roomselect/menukakoilogo");
     StrangerCadeLogo = Content.Load <Texture2D>("strangercade");
     MenuSolo         = Content.Load <Texture2D>("roomselect/menusolo");
     MenuSettings     = Content.Load <Texture2D>("roomselect/menusettings");
     MenuQuit         = Content.Load <Texture2D>("roomselect/menuquit");
     OpenSans         = Content.Load <SpriteFont>("opensans13");
     multiEnabled     = SocketHandler.Connected;
     if (multiEnabled)
     {
         MenuMulti = Content.Load <Texture2D>("roomselect/menuonline");
     }
     else
     {
         MenuMulti = Content.Load <Texture2D>("roomselect/menuonlinedisabled");
     }
     offsetMenuSettings = new Vector2(-settingsMenuWidth, 0);
     roomList           = new RoomList();
     gameList           = new GameList(new Vector2(1900, 0), 6, false);
     Objects.Add(roomList);
     Objects.Add(gameList);
     View.Scale = new Vector2(roomSize.Width / 1920f, roomSize.Height / 1080f);
 }
示例#2
0
 private void InitSprites()
 {
     _background = new MovingBackground
     {
         Direction = Math.PI / 4,
         Speed     = 30,
         Texture   = TextureManager.Textures("MovingBackground1"),
         Size      = Core.Metrics["ScreenBackground.Size", 0],
         Position  = Core.Metrics["ScreenBackground", 0],
     };
     _instructionPages = new Sprite3D[TOTAL_PAGES];
     for (int x = 0; x < TOTAL_PAGES; x++)
     {
         _instructionPages[x] = new Sprite3D {
             Texture = TextureManager.Textures("InstructionPage" + (x + 1)), Size = new Vector2(GameCore.INTERNAL_WIDTH, GameCore.INTERNAL_HEIGHT)
         };
     }
     _baseSprite = new Sprite3D
     {
         Texture  = TextureManager.Textures("LoadingMessageBase"),
         Position = (Core.Metrics["LoadMessageBase", 0]),
         Size     = Core.Metrics["LoadMessageBase.Size", 0]
     };
     _beatline = new Beatline
     {
         Bpm      = BEATLINE_BPM,
         Id       = 0,
         Position = Core.Metrics["InstructionBeatline", 0],
         Size     = Core.Metrics["InstructionBeatline.Size", 0],
         Speed    = 1.0,
     };
 }
示例#3
0
    public void Run()
    {
        const int      NUM_ENEMIES = 4;
        ConsoleKeyInfo userkey;

        Spaceship        ship = new Spaceship();
        MovingBackground back = new MovingBackground();
        Scoreboard       sb   = new Scoreboard();

        Enemy[] enemies = new Enemy[NUM_ENEMIES];
        enemies[0] = new EnemyLevel1();
        enemies[1] = new EnemyLevel2();
        enemies[2] = new EnemyLevel3();
        enemies[3] = new EnemyLevel4();
        Mothership ms    = new Mothership();
        PlayerShot shot1 = new PlayerShot(20, 10);
        EnemyShot  shot2 = new EnemyShot(15, 1);

        while (true)
        {
            // Update elements position and appearance
            back.Update();
            ms.Update();
            ship.Update();
            foreach (Enemy e in enemies)
            {
                e.Update();
            }
            shot1.Update();
            shot2.Update();

            // Screen update
            Console.Clear();
            back.Draw();
            sb.Draw();
            ms.Draw();
            ship.Draw();
            foreach (Enemy e in enemies)
            {
                e.Draw();
            }
            shot1.Draw();
            shot2.Draw();

            // Get user input
            userkey = Console.ReadKey(true);
            switch (userkey.Key)
            {
            case ConsoleKey.A: ship.MoveLeft(); break;

            case ConsoleKey.D: ship.MoveRight(); break;

            case ConsoleKey.Escape: return;
            }
        }
    }
示例#4
0
文件: MainMenu.cs 项目: jkapi/Kakoi
 public override void Draw()
 {
     View.Scale = new Vector2(Graphics.PreferredBackBufferHeight / 1080f);
     MovingBackground.Draw(this);
     View.DrawTexture(MenuMulti, new Vector2(mainmenubuttonpos.X + offsetMulti, mainmenubuttonpos.Y) + offsetMain);
     View.DrawTexture(MenuSolo, new Vector2(mainmenubuttonpos.X + offsetSolo, mainmenubuttonpos.Y + mainmenubuttonspacing) + offsetMain);
     View.DrawTexture(MenuSettings, new Vector2(mainmenubuttonpos.X + offsetSettings, mainmenubuttonpos.Y + 2 * mainmenubuttonspacing) + offsetMain);
     View.DrawTexture(MenuQuit, new Vector2(mainmenubuttonpos.X + offsetQuit, mainmenubuttonpos.Y + 3 * mainmenubuttonspacing) + offsetMain);
     //View.DrawTexture(StrangerCadeLogo, new Vector2(1920 - StrangerCadeLogo.Width, 1080 - StrangerCadeLogo.Height) + offsetMain);
     View.DrawTexture(KakoiLogo, new Vector2(800, 540) + offsetMain, null, 0, KakoiLogo.Bounds.Center.ToVector2());
     View.DrawRectangle(offsetMenuSettings, new Vector2(440, 1080), false, new Color(Color.Black, 0.3f));
     View.DrawText(OpenSans, "There are no settings yet.", new Vector2(220 - OpenSans.MeasureString("There are no settings yet.").X / 2, 20) + offsetMenuSettings, Color.White);
 }
示例#5
0
文件: Room1.cs 项目: jkapi/Kakoi
        public override void Draw()
        {
            var players = SocketHandler.GetPlayers();

            MovingBackground.Draw(this);
            View.DrawRectangle(new Rectangle(600, 32, 640, 640), false, new Color(240, 240, 240));

            View.DrawSprite(Chips, 0, new Vector2(32, 32) + _vector64, null, Rotations[0], _vector64);
            View.DrawSprite(Chips, 1, new Vector2(32, 192) + _vector64, null, Rotations[1], _vector64);
            View.DrawSprite(Chips, 2, new Vector2(32, 352) + _vector64, null, Rotations[2], _vector64);
            View.DrawSprite(Chips, 3, new Vector2(32, 512) + _vector64, null, Rotations[3], _vector64);

            View.DrawSpriteStretched(Heads, 3, new Vector2(76, 76), new Vector2(40));
            View.DrawSpriteStretched(Heads, 0, new Vector2(76, 76 + 160), new Vector2(40));
            View.DrawSpriteStretched(Heads, 1, new Vector2(76, 76 + 320), new Vector2(40));
            View.DrawSpriteStretched(Heads, 2, new Vector2(76, 76 + 480), new Vector2(40));

            try
            {
                DrawTextOutlined(Arial24, players[0].Name, new Vector2(180, 96), Color.White, Color.Black);
                if (players.Count > 1)
                {
                    DrawTextOutlined(Arial24, players[1].Name, new Vector2(180, 256), Color.White, Color.Black);
                }
                if (players.Count > 2)
                {
                    DrawTextOutlined(Arial24, players[2].Name, new Vector2(180, 416), Color.White, Color.Black);
                }
                if (players.Count > 3)
                {
                    DrawTextOutlined(Arial24, players[3].Name, new Vector2(180, 576), Color.White, Color.Black);
                }
            }
            catch
            {
                // This isn't really something to worry about, can be caused because of a breakpoint in the tick function of the server
            }
            Vector2 MouseMovement = Mouse.AverageMovement();

            if (Math.Abs(Mouse.LastMovement.X + Mouse.LastMovement.Y) > 0.1)
            {
                if (Math.Abs(MouseMovement.X + MouseMovement.Y) > 0)
                {
                    MouseAngle = (float)Math.Atan2(MouseMovement.Y, MouseMovement.X);
                }
            }
            View.RotationMode = View.RotationType.Radians;
            View.DrawRectangle(Mouse.Position, new Vector2(20), rotation: MouseAngle + (float)Math.PI);
            View.RotationMode = View.RotationType.Degrees;
        }
示例#6
0
    public void SetLevel(int level)
    {
        currentLevel = level;
        for (int i = 0; i < levelSpawners.Length; ++i)
        {
            levelSpawners[i].SetActive(i == level);
        }
        for (int i = 0; i < levelBackgrounds.Length; ++i)
        {
            levelBackgrounds[i].target = (i == level)?1:0;
            if (i == level)
            {
                levelBackgrounds[i].gameObject.SetActive(true);
            }
        }

        currentMovingBackground = levelBackgrounds[level].GetComponent <MovingBackground>();
    }
示例#7
0
文件: LoginMenu.cs 项目: jkapi/Kakoi
        public override void Draw()
        {
            MovingBackground.Draw(this);
            View.DrawTexture(Logo, new Vector2(960 - Logo.Width / 2, 75));

            if (registerpage)
            {
                View.DrawRectangle(new Rectangle(770, 570, 380, 220), false, new Color(255, 225, 177));
            }
            else
            {
                View.DrawRectangle(new Rectangle(770, 570, 380, 220), false, new Color(177, 245, 249));
            }

            View.DrawRectangle(new Rectangle(770, 570, 190, 60), false, new Color(177, 245, 249));
            View.DrawRectangle(new Rectangle(960, 570, 190, 60), false, new Color(255, 225, 177));
            View.DrawText(Arial24, "Login", new Vector2(860, 600), Color.Black, 0, Arial24.MeasureString("Login") / 2);
            View.DrawText(Arial24, "Register", new Vector2(1060, 600), Color.Black, 0, Arial24.MeasureString("Register") / 2);
            View.DrawTexture(StrangerCadeLogo, new Vector2(1900 - StrangerCadeLogo.Width, 1070 - StrangerCadeLogo.Height));
        }
示例#8
0
文件: RoomMenu.cs 项目: jkapi/Kakoi
        public override void Draw()
        {
            View.SwitchToRenderTarget(roomListRenderTarget, true, Color.Transparent);
            if (SocketHandler.Connected)
            {
                lock (ListLock)
                {
                    int i = 0;
                    foreach (Room room in Rooms)
                    {
                        string owner = room.Players.Count > 0 ? room.Players[0] : "Server";
                        DrawRoom(new Vector2(255, ListYOffset + 60 + i * 112), room.Name, room.Players.Count, owner, room.Locked, room.ID);
                        i++;
                    }
                }
            }
            else
            {
                View.DrawText(Arial24, "You are not connected to the server.", new Vector2(960 - Arial24.MeasureString("You are not connected to the server.").X / 2, 200), Color.LightGray);
            }
            View.SwitchToRenderTarget(r3d);
            MovingBackground.Draw(this);

            View.DrawRectangle(new Rectangle(0, 140, 1920, 1080), false, new Color(Color.Black, 0.1f));

            View.DrawTexture(Logo, new Vector2(20, 20), new Vector2(0.33f, 0.33f));

            DrawPlaceholderRadioBox(new Vector2(600, 90), "Show Friends");
            DrawPlaceholderRadioBox(new Vector2(800, 90), "Show Private");
            DrawPlaceholderRadioBox(new Vector2(1000, 90), "Show Full");
            View.DrawRenderTarget(roomListRenderTarget, new Vector2(0, 140));
            View.SwitchToRenderTarget(null);
            d3d.Begin();
            d3d.DrawTexture((Texture2D)r3d, Matrix.CreateFromYawPitchRoll(-0.4f, 0, 0));
            d3d.End();
        }
示例#9
0
 private void Awake()
 {
     Instance = this;
     currentMovingBackground = levelBackgrounds[0].GetComponent <MovingBackground>();
 }
示例#10
0
 void Start()
 {
     _MovingBackground = GameObject.FindObjectOfType <MovingBackground> ();
 }
        public override void LoadContent()
        {
            Content = new ContentManager(ScreenManager.Game.Services, "Content");

            SpriteBatch = ScreenManager.SpriteBatch;
            backgroundBatch = new SpriteBatch(ScreenManager.GraphicsDevice);

            bg = Content.Load<Texture2D>("Sprites/background");
            mg = new MovingBackground(Content.Load<Texture2D>("Sprites/middleground"), ScreenManager.GraphicsDevice.Viewport, speed/2);
            fg = new MovingBackground(Content.Load<Texture2D>("Sprites/foreground"), ScreenManager.GraphicsDevice.Viewport, speed);

            plane = new Plane(Content.Load<Texture2D>("Sprites/plane"), Content.Load<SoundEffect>("Sound/plane"));

            ringFront = Content.Load<Texture2D>("Sprites/ringFront");
            ringBack = Content.Load<Texture2D>("Sprites/ringBack");
            ringFrontCleared = Content.Load<Texture2D>("Sprites/ringFrontCleared");
            ringBackCleared = Content.Load<Texture2D>("Sprites/ringBackCleared");

            ringSound = Content.Load<SoundEffect>("Sound/ringDoDoDo");

            rings = new Rings(ringFront, ringBack, ringFrontCleared, ringBackCleared, numRings, speed, ScreenManager.GraphicsDevice.Viewport.Width, ScreenManager.GraphicsDevice.Viewport.Height, ringSound);

            gameFont = Content.Load<SpriteFont>("Font");

            float scoreLength = (gameFont.MeasureString("999/999")).X;
            scorePosition = new Vector2(this.ScreenManager.ScaleXPosition((this.ScreenManager.GraphicsDevice.PresentationParameters.BackBufferWidth / 2.0f) - (scoreLength / 2.0f)), this.ScreenManager.ScaleYPosition(20.0f));

            plane.playSound();
        }
示例#12
0
 public override void Draw()
 {
     MovingBackground.Draw(this);
 }
示例#13
0
 // Use this for initialization
 void Start()
 {
     instance = this;
 }