All pastes #362352 Raw Edit

Vic

public text v1 · immutable
·published 2007-02-18 19:50 UTC
rendered paste body
using System;
using FRB;
using FRB.Gui;
using FRB.Text;
using FRB.Particle;
using FRB.Collections;
using FRB.MSG;
using FRB.Audio;
using FRB.Shapes;
using Math2D;
using Microsoft.DirectX.DirectInput;

using Mesh = Microsoft.DirectX.Direct3D.Mesh;
namespace GameName
{
    public class GameData
    {
        #region reference to engine managers and data
        public GameForm form;
        public InputManager inpMan;
        public SpriteManager sprMan;
        public TextManager textMan;
        public GuiManager guiMan;
        public Camera camera;
        public Cursor cursor;
        public Random random;
        public ShapeManager shaMan;
        public GameName.Screens.ScreenManager screenManager;
        #endregion

        // declare variables of class scope here

        Microsoft.DirectX.Direct3D.Mesh mesh;

        public void Initialize(GameForm form)
        {
            #region initialize engine managers and data
            this.form = form;
            sprMan = GameForm.sprMan;
            inpMan = GameForm.inpMan;
            textMan = GameForm.textMan;
            guiMan = GameForm.guiMan;
            camera = GameForm.camera;
            cursor = GameForm.cursor;
            random = GameForm.random;
            shaMan = GameForm.shaMan;
            screenManager = GameForm.screenManager;
            #endregion

            // 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");

            mesh = Mesh.Sphere(sprMan.D3DDevice, 2, 16, 16);

        }


        public void Activity()
        {
            // this can be left uncommented - won't do anything if there are no active Screens
            screenManager.Activity();

        }


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

        public void Draw()
        {
            
            // easier to just reference device rather than 
            // sprMan.D3DDevice so create an alias
            Microsoft.DirectX.Direct3D.Device device = sprMan.D3DDevice;

            // set the view and projection.  This is a quick way to use the FRB camera
            device.Transform.View = camera.GetLookAtLHMatrix();
            device.Transform.Projection = camera.GetProjectionMatrix();

            // this value is used to set the light's position 
            // based on the mouse position
            float lightZ = -10; 

            // enable lighting
            device.RenderState.Lighting = true;

            // create a regular Point light.
            device.Lights[0].Enabled = true;
            device.Lights[0].Type = 
                Microsoft.DirectX.Direct3D.LightType.Point;
            device.Lights[0].Position = new Microsoft.DirectX.Vector3(
                cursor.XAt(lightZ), cursor.YAt(lightZ), lightZ);
            device.Lights[0].Diffuse = System.Drawing.Color.Gray;
            device.Lights[0].Attenuation0 = .2f;
            device.Lights[0].Range = 10000;

            device.Lights[0].Update();

            // create the material for the ball
            Microsoft.DirectX.Direct3D.Material material = 
                new Microsoft.DirectX.Direct3D.Material();
            material.Diffuse = System.Drawing.Color.Gray;

            // assign the material
            device.Material = material;

            // draw the mesh
            mesh.DrawSubset(0);
        }
    }
}