DirectXWindows VistaWindows 7Visual Studio 2008Visual Studio 2005Windows XPC# 2.0C# 3.0C# 4.0中级Visual StudioWindowsC#
游戏引擎






3.78/5 (6投票s)
游戏引擎的第一个原型。
引言
该引擎代号为 wg3dfx,运行于 DirectX API 环境中,这意味着它适用于所有版本的 Windows(从 2000 版本到 Windows 7)。引擎使用 Truevision SDK 6.5,为了确保 Truevision 的正常运行,您需要下载 SDK 6.5 并将 MTV3D65.dll 设置为引用。对于音频支持,wg3dfx 使用了 irrKlang,您需要下载并安装它。您可以在 woodgamesfx 找到更多信息。
我将这段代码集合称为游戏引擎,因为它几乎包含了游戏引擎的所有元素。您可以按原样使用它,也可以改进代码的某些部分。
背景
以下是一些截图
Using the Code
该项目分为三个代码部分:单元、场景和游戏引擎部分。
例如,这是主游戏引擎循环
public void GameLoop()
{
while (bLoop)
{
fTime = TV.AccurateTimeElapsed();
if (SimuLatePhysics)
{
Fizika.PhysX.Simulate(TV.TimeElapsed() * 0.0025f);
}
if (Teren.Land == null)
{
Kamera2.Update(TV.TimeElapsed());
}
else
{
Kamera2.UpdateTerrainCamera(ref TV, Teren.Land );
}
GetMouseLandPosition = Teren.GetTerreinPosition(ref Scene,
Kamera2.tmpMouseX1 ,Kamera2.tmpMouseY1 );
UpdateScene();
TV.Clear(false);
Teren.DrawTerrain();
if (SkyBoxs.Atmos != null)
{
SkyBoxs.DrawSkyBox();
}
Svijetlo.RenderLight();
XActor.CrtajJedinice("Sve",ref Text2D,ref Globals );
XModel.CrtajJedinice("Sve");
Scene.FinalizeShadows();
Partikali.DrawParticles("All");
if (PodlogaTest != null)
{
PodlogaTest.DrawFlor();
}
if (Oblaci.Atmos != null )
{
Oblaci.DrawClouds();
}
if (Magla.Enabled)
{
Magla.DrawFog();
}
if (Voda != null)
{
Voda.DrawWatter();
}
if (bDrawCoordinateSystem)
{
DrawCoordinateSystem();
}
VMannager.DrawVehicale();
VMannager.CheckInputs(Kamera2._inputs, ref Fizika.PhysX);
Dekoli.RemoveDecals(TV);
Dekoli.DrawDecals();
Scene.RenderAllMeshes(true);
Scene.RenderAllActors(true);
if (Kamera2.tmpMouseB1)
{
XActor.DeselectUnits();
}
if (Kamera2.tmpMouseB1)
{
Screen.Action_Begin2D();
Screen.Draw_Box(XActor.Mouse1Coor.x,
XActor.Mouse1Coor.y, XActor.Mouse2Coor.x,
XActor.Mouse2Coor.y, Globals.RGBA(0, 1, 0, 1));
Screen.Action_End2D();
}
XActor.UpdateActors(Kamera2.tmpMouseX1, Kamera2.tmpMouseY1,
Kamera2.tmpMouseB1, Scene, Kamera2._inputs);
TV.RenderToScreen();
Application.DoEvents();
}
}
总共有大约 12,000 行代码,分布在所有三个部分中。
关注点
我很快就会发布开源引擎的第一个版本。引擎目前处于开发阶段,代码的某些部分尚未完全记录。我禁止将代码片段、分发库和可执行文件用于侮辱宗教、种族、民族和性别,或者对其他代码造成损害,或使用随 WoodGamesFX 附带的文件。只要符合上述条件,软件代码和支持文件可用于教育、商业和非商业目的。对于上述条件下的代码使用,我将不承担任何责任。
我希望这些信息和内容能对对创建计算机游戏、模拟或其他形式感兴趣的个人或团体有所帮助。我们建议您将这些信息用于娱乐和学习。
历史
我开发这段代码已经几个月了。如果您对如何使用代码有任何疑问,请通过 info@woodgamesfx.com 发送电子邮件给我。