0

I'M reading the book "Beginning C# Game Programming by Ron Penton". The book is instucting me to create a small framework for a game, the problem is, the book was written for VS 2002 and I'M using VCs 2008 express. I'M instructed to add references to the project, two of which I can't find. Microsoft.DirectX & Microsoft.DirectX.3D.

Here's the code and the errors I'M getting

Error 1 The type or namespace name 'DirectX' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) C:\Users\Owner\Documents\Visual Studio 2008\Projects\02-VCSFrame1\02-VCSFrame1\MainClass.cs 12 17 02-VCSFrame1

Error 2 The type or namespace name 'DirectX' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) C:\Users\Owner\Documents\Visual Studio 2008\Projects\02-VCSFrame1\02-VCSFrame1\MainClass.cs 13 17 02-VCSFrame1

Error 3 The type or namespace name 'Device' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Owner\Documents\Visual Studio 2008\Projects\02-VCSFrame1\02-VCSFrame1\MainClass.cs 25 3 02-VCSFrame1

// Beginning C# Game Programming
// (C)2004 Ron Penton
// Chapter 6
// Demo 2 - Visual C# Framework

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace MyDirect3DProject
{
	/// <summary>
	/// This is the main class of my Direct3D application
	/// </summary>
	public class MainClass : Form
	{
		/// <summary>
		/// The rendering device
		/// </summary>
		Device device = null;
		
		public MainClass()
		{
			this.ClientSize = new System.Drawing.Size(640, 480);
			this.Text = "Direct3D Project";
		}
		
		public bool InitializeGraphics()
		{
			try {
				// Now let's setup the Direct3D stuff
				PresentParameters presentParams = new PresentParameters();
				presentParams.Windowed   = true;
				presentParams.SwapEffect = SwapEffect.Discard;
				
				// Create the device
				device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
				
				// Setup the event handlers for the device
				device.DeviceLost     += new EventHandler(this.InvalidateDeviceObjects);
				device.DeviceReset    += new EventHandler(this.RestoreDeviceObjects);
				device.Disposing      += new EventHandler(this.DeleteDeviceObjects);
				device.DeviceResizing += new CancelEventHandler(this.EnvironmentResizing);
				
				return true;
			} catch (DirectXException) {
				return false;
			}
		}
		
		protected virtual void InvalidateDeviceObjects(object sender, EventArgs e)
		{
		}
		
		protected virtual void RestoreDeviceObjects(object sender, EventArgs e)
		{
		}
		
		protected virtual void DeleteDeviceObjects(object sender, EventArgs e)
		{
		}
		
		protected virtual void EnvironmentResizing(object sender, CancelEventArgs e)
		{
		}
		
		/// <summary>
		/// This method moves the scene
		/// </summary>
		protected virtual void FrameMove()
		{
			// TODO : Frame movement
		}
		
		/// <summary>
		/// This method renders the scene
		/// </summary>
		protected virtual void Render()
		{
			if (device != null) {
				device.Clear(ClearFlags.Target, Color.Blue, 1.0f, 0);
				device.BeginScene();
				
				// TODO : Scene rendering
				
				device.EndScene();
				device.Present();
			}
		}
		
		/// <summary>
		/// Our mainloop
		/// </summary>
		public void Run()
		{
			// While the form is still valid, render and process messages
			while (Created) {
				FrameMove();	
				Render();
				Application.DoEvents();
			}
		}
		
		protected override void OnPaint(PaintEventArgs e)
		{
			this.Render();
		}
		
		protected override void OnKeyPress(KeyPressEventArgs e)
		{
			base.OnKeyPress(e);
			if ((int)e.KeyChar == (int)System.Windows.Forms.Keys.Escape) {
				this.Close(); 
			}
		}
		
		/// <summary>
		/// The main entry point for the application
		/// </summary>
		static void Main()
		{
			using (MainClass mainClass = new MainClass()) {
				if (!mainClass.InitializeGraphics()) {
					MessageBox.Show("Error while initializing Direct3D");
					return;
				}
				mainClass.Show();
				mainClass.Run();
			}
		}
	}
}

Thanks for any and all replies.

2
Contributors
1
Reply
3
Views
6 Years
Discussion Span
Last Post by Gospp
0

I'M reading the book "Beginning C# Game Programming by Ron Penton". The book is instucting me to create a small framework for a game, the problem is, the book was written for VS 2002 and I'M using VCs 2008 express. I'M instructed to add references to the project, two of which I can't find. Microsoft.DirectX & Microsoft.DirectX.3D.

Thanks for any and all replies.

Hello

First thing you should check is if you have "Microsoft.DirectX" in Add reference(.Net tab).
If not you can download it from: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=2c7da5fb-ffbb-4af6-8c66-651cbd28ca15.
After installing it you should find the reference.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.