All pastes #194141 Raw Edit

Vic

public text v1 · immutable
·published 2006-10-07 16:12 UTC
rendered paste body
    public class GameData
    {

        // declare variables of class scope here

        Sprite playerBall;
        Joystick joystick;

        Sprite rightWall;
        Sprite leftWall;
        Sprite topWall;
        Sprite bottomWall;

        Sprite obstacle1;

        SpriteArray staticCollidables;
        SpriteArray movableCollidables;


        public void Initialize(GameForm form)
        {
            playerBall = sprMan.AddSprite("redball.bmp");

            NPC = sprMan.AddSprite("redball.bmp");
            NPC.x = -3;

            joystick = inpMan.joystickArray[0];


            float wallScl = 2;

            rightWall = sprMan.AddUntexturedSprite();
            rightWall.colorOperation = Microsoft.DirectX.Direct3D.TextureOperation.SelectArg2;
            rightWall.tintBlue = 255;
            rightWall.sclX = wallScl;
            rightWall.sclY = 20;
            rightWall.x = camera.XEdgeAt(0) - wallScl;

            topWall = sprMan.AddUntexturedSprite();
            topWall.colorOperation = Microsoft.DirectX.Direct3D.TextureOperation.SelectArg2;
            topWall.tintBlue = 255;
            topWall.sclX = 30;
            topWall.sclY = wallScl;
            topWall.y = camera.YEdgeAt(0) - wallScl;

            leftWall = rightWall.Clone();
            sprMan.AddSprite(leftWall);
            leftWall.x = -camera.XEdgeAt(0) + wallScl;

            bottomWall = topWall.Clone();
            sprMan.AddSprite(bottomWall);
            bottomWall.y = -camera.YEdgeAt(0) + wallScl;

            obstacle1 = sprMan.AddUntexturedSprite();
            obstacle1.colorOperation = Microsoft.DirectX.Direct3D.TextureOperation.SelectArg2;
            obstacle1.tintBlue = 255;
            obstacle1.x = 5;
            obstacle1.sclX = obstacle1.sclY = 2;
            obstacle1.rotZ = 1;
            
            // add the objects to the static collidables:
            staticCollidables = new SpriteArray();
            staticCollidables.Add(topWall);
            staticCollidables.Add(bottomWall);
            staticCollidables.Add(leftWall);
            staticCollidables.Add(rightWall);
            staticCollidables.Add(obstacle1);

            movableCollidables = new SpriteArray();
            movableCollidables.Add(playerBall);
            movableCollidables.Add(NPC);


            // uncomment this line and pass the qualified string name of the first
            // Screen class that the game should show upon execution.
            //screenManager.Start("NameSpace.Screens.ScreenClassName");
        }


        public void Activity()
        {
            // this can be left uncommented - won't do anything if there are no active Screens
            screenManager.Activity();
            playerBall.xAcceleration = joystick.x / 100;
            playerBall.yAcceleration = joystick.y / 100;

            // cap the velocity:
            playerBall.xVelocity = Math.Min(10, playerBall.xVelocity);
            playerBall.xVelocity = Math.Max(-10, playerBall.xVelocity);

            playerBall.yVelocity = Math.Min(10, playerBall.yVelocity);
            playerBall.yVelocity = Math.Max(-10, playerBall.yVelocity);

            // perform Collisions here:

            // assumes all movables are circles, all statics are rectangles
            foreach (Sprite movable in movableCollidables)
            {
                foreach (Sprite staticSprite in staticCollidables)
                    Collisions.circleBounceRect(movable, staticSprite);

                foreach (Sprite otherMovable in movableCollidables)
                    if (otherMovable != movable)
                        Collisions.circleBounceBothCircle(movable, otherMovable);
            }
        
        }


        public void AfterFrameActivity()
        {
            // usually, the only code that goes here is text printing with the TextManager

            // if drawing text, uncomment the following line:
            // textMan.BeginDrawing();

        }

    }