using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Samples.DirectX.UtilityToolkit;

namespace BattleFighters2006

{
public partial class GameEngine : Form
{
protected override void OnPaint(PaintEventArgs e)
{
deltaTime = FrameworkTimer.GetElapsedTime();
this.Invalidate();
FrameworkTimer.Start();
}
public GameEngine()
{
InitializeComponent();
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.Opaque, true);
// Get the ordinal for the default adapter
int adapterOrdinal = Manager.Adapters.Default.Adapter;
// Get our device capabilities so we can check them to set up the
// CreateFlags
Caps caps = Manager.GetDeviceCaps(adapterOrdinal, DeviceType.Hardware);
CreateFlags createFlags;
// Check the capabilities of the graphcis card is capable of
// performing the vertex-processing operations
// The HardwareVertexProcessing choice is the best
if (caps.DeviceCaps.SupportsHardwareTransformAndLight)
{
createFlags = CreateFlags.HardwareVertexProcessing;
}
else
{
createFlags = CreateFlags.SoftwareVertexProcessing;
}
// If the graphics card supports vertex processing check if the device
// can do rasterization, matrix transformations, and lighting and
//shading operations
// This combination provides the fastest game experience
if (caps.DeviceCaps.SupportsPureDevice && createFlags ==
CreateFlags.HardwareVertexProcessing)
{
createFlags |= CreateFlags.PureDevice;
}

// Set up the PresentParameters which determine how the device behaves
PresentParameters presentParams = new PresentParameters();
presentParams.SwapEffect = SwapEffect.Discard;

// Make sure we are in windowed mode when we are debugging
#if DEBUG
presentParams.Windowed = true;
#endif
// Now create the device
device = new Device(adapterOrdinal, DeviceType.Hardware, this,
createFlags, presentParams);
}
private double deltaTime;
}
}

Stupiti? Allibiti? Incuranti?

Già, anche io mi troverei leggermente a disagio davanti ad un testo in Sanscrito, ma questo in realtà è un semplice codice in C# [correzione bye Paolo, NdZ3RØ], un linguaggio di programmazione piuttosto noto, che ho deciso di rispolverare e di riutilizzare per un fine altamente personale : programmare un motore grafico funzionante per un FPS, ovvero un First Person Shooter (ok, Sparatutto in Prima Persona, tipo DooM ^^)

Il progetto non sarà assolutamente in cima alla mia lista, ma lo coltiverò assiduamente spendendoci il tempo che potrò, e chi lo sa, magari fra un annetto avrò qualcosa di pronto da far provare a tutti voi.

Ok, aggiornamento serale effettuato.

Annunci