Exemple #1
0
        protected override void DoDraw(Graphics2D destRenderer)
        {
            int playerSequenceIndex      = GetPlayerIndex();
            GameImageSequence playerShip = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "Player" + (playerSequenceIndex + 1).ToString() + "Ship");

            destRenderer.Render(playerShip.GetImageByRatio(m_Rotation / (2 * Math.PI)), m_Position.X, m_Position.Y);
        }
        public HowManyPlayersMenu(RectangleDouble bounds)
        {
            BoundsRelativeToParent = bounds;
            GameImageSequence onePlayerButtonSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "OnePlayerButton");
            Button            onePlayerGameButton     = new Button(270, 310, new ButtonViewThreeImage(onePlayerButtonSequence.GetImageByIndex(0), onePlayerButtonSequence.GetImageByIndex(1), onePlayerButtonSequence.GetImageByIndex(2)));

            AddChild(onePlayerGameButton);
            onePlayerGameButton.Click += new EventHandler(OnStartOnePlayerGameButton);

            GameImageSequence twoPlayerButtonSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "TwoPlayerButton");
            Button            twoPlayerGameButton     = new Button(400, 310, new ButtonViewThreeImage(twoPlayerButtonSequence.GetImageByIndex(0), twoPlayerButtonSequence.GetImageByIndex(1), twoPlayerButtonSequence.GetImageByIndex(2)));

            AddChild(twoPlayerGameButton);
            twoPlayerGameButton.Click += new EventHandler(OnStartTwoPlayerGameButton);

            GameImageSequence fourPlayerButtonSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "FourPlayerButton");
            Button            fourPlayerGameButton     = new Button(530, 310, new ButtonViewThreeImage(fourPlayerButtonSequence.GetImageByIndex(0), fourPlayerButtonSequence.GetImageByIndex(1), fourPlayerButtonSequence.GetImageByIndex(2)));

            AddChild(fourPlayerGameButton);
            fourPlayerGameButton.Click += new EventHandler(OnStartFourPlayerGameButton);

            GameImageSequence cancelButtonSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "NumPlayersCancelButton");
            Button            cancelGameButton     = new Button(400, 210, new ButtonViewThreeImage(cancelButtonSequence.GetImageByIndex(0), cancelButtonSequence.GetImageByIndex(1), cancelButtonSequence.GetImageByIndex(2)));

            AddChild(cancelGameButton);
            cancelGameButton.Click += new EventHandler(OnCancelMenuButton);
        }
        public override void OnDraw(Graphics2D graphics2D)
        {
            GameImageSequence menuBackground = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "NumPlayersSelectBackground");

            graphics2D.Render(menuBackground.GetImageByIndex(0), 0, 0);

            base.OnDraw(graphics2D);
        }
        public override void OnDraw(Graphics2D graphics2D)
        {
            GameImageSequence background = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "GameBackground");

            graphics2D.Render(background.GetImageByIndex(0), 0, 0);

            m_Playfield.Draw(graphics2D);

            base.OnDraw(graphics2D);
        }
        public PlayfieldView(RectangleDouble bounds)
        {
            BoundsRelativeToParent = bounds;

            GameImageSequence menuButtonSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "MenuButtonFromGame");
            Button            menuButton         = new Button(400, 12, new ButtonViewThreeImage(menuButtonSequence.GetImageByIndex(0), menuButtonSequence.GetImageByIndex(1), menuButtonSequence.GetImageByIndex(2)));

            AddChild(menuButton);
            menuButton.Click += EscapeMenu;
        }
Exemple #6
0
        internal void DrawBullets(Graphics2D destRenderer)
        {
            int playerSequenceIndex       = GetPlayerIndex();
            GameImageSequence bulletImage = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "Player" + (playerSequenceIndex + 1).ToString() + "Bullet");

            foreach (Bullet aBullet in m_BulletList)
            {
                destRenderer.Render(bulletImage.GetImageByIndex(0), aBullet.Position.X, aBullet.Position.Y, aBullet.Velocity.GetAngle0To2PI(), 1, 1);
            }
        }
Exemple #7
0
        public CreditsMenu(RectangleDouble bounds)
        {
            BoundsRelativeToParent = bounds;

            GameImageSequence cancelButtonSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "NumPlayersCancelButton");
            Button            cancelGameButton     = new Button(400, 200, new ButtonViewThreeImage(cancelButtonSequence.GetImageByIndex(0), cancelButtonSequence.GetImageByIndex(1), cancelButtonSequence.GetImageByIndex(2)));

            AddChild(cancelGameButton);
            cancelGameButton.Click += new EventHandler(OnCancelMenuButton);
        }
        public override void Update(double numSecondsPassed)
        {
            GameImageSequence rockShip = GetImageSequence();

            playRatio += (numSecondsPassed * rockShip.FramePerSecond) / rockShip.NumFrames;
            if (playRatio > 1)
            {
                playRatio = 0;
            }
            base.Update(numSecondsPassed);
        }
Exemple #9
0
        public Player(int in_playerIndex, int joyStickIndex, Keys in_leftKey, Keys in_rightKey,
                      Keys in_thrustKey, Keys in_fireKey)
            : base(26)
        {
            playerIndex = in_playerIndex;
            leftKey     = in_leftKey;
            rightKey    = in_rightKey;
            thrustKey   = in_thrustKey;
            fireKey     = in_fireKey;

            int playerSequenceIndex      = GetPlayerIndex();
            GameImageSequence playerShip = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "Player" + (playerSequenceIndex + 1).ToString() + "Ship");

            m_Radius        = playerShip.GetImageByIndex(0).Width / 2;
            m_JoyStickIndex = joyStickIndex;
            Position        = new Vector2(GameWidth / 2, GameHeight / 2);
            m_Velocity      = Vector2.Zero;
        }
Exemple #10
0
        public void DrawScore(Graphics2D destRenderer)
        {
            int playerSequenceIndex         = GetPlayerIndex();
            GameImageSequence scoreSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "ScoreNumbers");
            string            score         = m_Score.ToString();
            int x = 43;
            int y = 577;

            switch (playerSequenceIndex)
            {
            case 0:
                break;

            case 1:
                x = 700;
                break;

            case 2:
                x = 45;
                y = 5;
                break;

            case 3:
                x = 700;
                y = 5;
                break;

            default:
                break;
            }

            for (int i = 0; i < score.Length; i++)
            {
                int         digit       = (int)(score[i] - '0');
                ImageBuffer numberImage = scoreSequence.GetImageByIndex(digit);
                destRenderer.Render(numberImage, x, y);
                x += numberImage.Width;
            }
        }
Exemple #11
0
        public MainMenu(RectangleDouble bounds)
        {
            BoundsRelativeToParent = bounds;

            GameImageSequence startButtonSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "MainMenuStartButton");
            Button            StartGameButton     = new Button(400, 310, new ButtonViewThreeImage(startButtonSequence.GetImageByIndex(0), startButtonSequence.GetImageByIndex(1), startButtonSequence.GetImageByIndex(2)));

            AddChild(StartGameButton);
            StartGameButton.Click += OnStartGameButton;

            GameImageSequence creditsButtonSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "MainMenuCreditsButton");
            Button            creditsGameButton     = new Button(400, 230, new ButtonViewThreeImage(creditsButtonSequence.GetImageByIndex(0), creditsButtonSequence.GetImageByIndex(1), creditsButtonSequence.GetImageByIndex(2)));

            AddChild(creditsGameButton);
            creditsGameButton.Click += OnShowCreditsButton;

            GameImageSequence exitButtonSequence = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "MainMenuExitButton");
            Button            exitGameButton     = new Button(400, 170, new ButtonViewThreeImage(exitButtonSequence.GetImageByIndex(0), exitButtonSequence.GetImageByIndex(1), exitButtonSequence.GetImageByIndex(2)));

            AddChild(exitGameButton);
            exitGameButton.Click += OnExitGameButton;
        }
Exemple #12
0
        public override void OnDraw(Graphics2D graphics2D)
        {
            GameImageSequence menuBackground = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "MainMenuBackground");

            graphics2D.Render(menuBackground.GetImageByIndex(0), 0, 0);

            GameImageSequence planetOnMenu = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "PlanetOnMenu");

            graphics2D.Render(planetOnMenu.GetImageByRatio(planetRatio.Read()), 620, 360);

            GameImageSequence shipOnMenu = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), "Player1Ship");

            int    numFrames          = shipOnMenu.NumFrames;
            double animationRatio0to1 = shipRatio.Read();
            double curFrameDouble     = (numFrames - 1) * animationRatio0to1;
            int    curFrameInt        = shipOnMenu.GetFrameIndexByRatio(animationRatio0to1);
            double curFrameRemainder  = curFrameDouble - curFrameInt;
            double anglePerFrame      = MathHelper.Tau / numFrames;
            double angleForThisFrame  = curFrameRemainder * anglePerFrame;

            graphics2D.Render(shipOnMenu.GetImageByIndex(curFrameInt), 177, 156, angleForThisFrame, 1, 1);

            base.OnDraw(graphics2D);
        }
Exemple #13
0
        public void Draw(Graphics2D currentRenderer)
        {
            foreach (Rock aRock in m_RockList)
            {
                aRock.Draw(currentRenderer);
            }

            foreach (Player aPlayer in m_PlayerList)
            {
                aPlayer.DrawBullets(currentRenderer);
            }

            foreach (SequenceEntity aSequenceEntity in m_SequenceEntityList)
            {
                aSequenceEntity.Draw(currentRenderer);
            }

            foreach (Player aPlayer in m_PlayerList)
            {
                aPlayer.Draw(currentRenderer);
            }

            GameImageSequence hud = (GameImageSequence)DataAssetCache.Instance.GetAsset(typeof(GameImageSequence), (m_PlayerList.Count).ToString() + "PlayerHUD");

            currentRenderer.Render(hud.GetImageByIndex(0), 400, 300);

            foreach (Player aPlayer in m_PlayerList)
            {
                aPlayer.DrawScore(currentRenderer);
            }
#if false
            Gl.glMatrixMode(Gl.GL_PROJECTION);                                              // Select The Projection Matrix
            Gl.glLoadIdentity();                                                            // Reset The Projection Matrix
            Glu.gluPerspective(45, Entity.GameWidth / (double)Entity.GameHeight, 0.1, 100); // Calculate The Aspect Ratio Of The Window
            Gl.glMatrixMode(Gl.GL_MODELVIEW);                                               // Select The Modelview Matrix

            float scale = .08f;
            Gl.glLoadIdentity();                                                // Reset The Current Modelview Matrix

            Gl.glLightf(Gl.GL_LIGHT0, Gl.GL_CONSTANT_ATTENUATION, 0.0f);
            Gl.glLightf(Gl.GL_LIGHT0, Gl.GL_LINEAR_ATTENUATION, 0.0f);
            Gl.glLightf(Gl.GL_LIGHT0, Gl.GL_QUADRATIC_ATTENUATION, 0.0002f);
            float[] position = new float[] { -10.5f, 10.0f, 20.0f, 1.0f };

            Gl.glScalef(scale, scale, scale);
            Gl.glTranslatef(0, 0, -160);                                      // Move Left 1.5 Units And Into The Screen 6.0
            Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, position);
            Gl.glTranslatef((float)m_Player.Position.x - 200, (float)m_Player.Position.y - 200, 0);
            Gl.glRotatef((float)((m_Player.m_Rotation - Math.PI / 2) / Math.PI * 180), 0, 0, 1);                                        // Rotate The Triangle On The Y axis ( NEW )
            Gl.glShadeModel(Gl.GL_FLAT);

            Gl.glClearDepth(1);                                                 // Depth Buffer Setup
            Gl.glEnable(Gl.GL_DEPTH_TEST);                                      // Enables Depth Testing
            Gl.glDepthFunc(Gl.GL_LEQUAL);                                       // The Type Of Depth Testing To Do

            Gl.glDisable(Gl.GL_CULL_FACE);
#endif

#if USE_GLSL
            String[] vertexSource = System.IO.File.ReadAllLines("..\\..\\GameData\\marble.vert");
            vertexSource = new string[] { "void main(void) { gl_Position = ftransform(); } " };
            vertexSource = new string[] { "varying vec3 normal, lightDir, eyeVec; void main() { normal = gl_NormalMatrix * gl_Normal; vec3 vVertex = vec3(gl_ModelViewMatrix * gl_Vertex); lightDir = vec3(gl_LightSource[0].position.xyz - vVertex); eyeVec = -vVertex; gl_Position = ftransform(); }" };

            int vertexShader = Gl.glCreateShader(Gl.GL_VERTEX_SHADER);
            Gl.glShaderSource(vertexShader, vertexSource.Length, vertexSource, null);
            Gl.glCompileShader(vertexShader);

            int goodCompile;
            Gl.glGetShaderiv(vertexShader, Gl.GL_COMPILE_STATUS, out goodCompile);

            String[] fragmentSource = System.IO.File.ReadAllLines("..\\..\\GameData\\marble.frag");
            fragmentSource = new string[] { "void main(void) { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); }" };
            fragmentSource = new string[] { "varying vec3 normal, lightDir, eyeVec; void main (void) { vec4 final_color = (gl_FrontLightModelProduct.sceneColor * gl_FrontMaterial.ambient) + (gl_LightSource[0].ambient * gl_FrontMaterial.ambient); vec3 N = normalize(normal); vec3 L = normalize(lightDir); float lambertTerm = dot(N,L); if(lambertTerm > 0.0) { final_color += gl_LightSource[0].diffuse * gl_FrontMaterial.diffuse * lambertTerm; vec3 E = normalize(eyeVec); vec3 R = reflect(-L, N); float specular = pow( max(dot(R, E), 0.0), gl_FrontMaterial.shininess ); final_color += gl_LightSource[0].specular * gl_FrontMaterial.specular * specular; } gl_FragColor = final_color; }" };

            int fragmentShader = Gl.glCreateShader(Gl.GL_FRAGMENT_SHADER);
            Gl.glShaderSource(fragmentShader, fragmentSource.Length, fragmentSource, null);
            Gl.glCompileShader(fragmentShader);

            Gl.glGetShaderiv(fragmentShader, Gl.GL_COMPILE_STATUS, out goodCompile);

            int shaderProgram;
            shaderProgram = Gl.glCreateProgram();
            Gl.glAttachShader(shaderProgram, fragmentShader);
            Gl.glAttachShader(shaderProgram, vertexShader);
            Gl.glLinkProgram(shaderProgram);
            Gl.glGetProgramiv(shaderProgram, Gl.GL_LINK_STATUS, out goodCompile);

            System.Text.StringBuilder infoLog = new System.Text.StringBuilder();
            int length;
            Gl.glGetShaderInfoLog(shaderProgram, 500, out length, infoLog);

            Gl.glUseProgram(shaderProgram);
#endif
            //m_Ship.Render();

#if USE_GLSL
            Gl.glUseProgram(0);
            Gl.glDetachShader(shaderProgram, fragmentShader);
            Gl.glDetachShader(shaderProgram, vertexShader);
            Gl.glDeleteShader(fragmentShader);
            Gl.glDeleteShader(vertexShader);
            Gl.glDeleteProgram(shaderProgram);
#endif
        }
Exemple #14
0
        protected override void DoDraw(Graphics2D destRenderer)
        {
            GameImageSequence rockShip = GetImageSequence();

            destRenderer.Render(rockShip.GetImageByRatio(playRatio), m_Position.x, m_Position.y, 0, scaleRatio, scaleRatio);
        }