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();
}
}