前言

作为一个游戏程序员,D语言对我是很有吸引力的!我相信有不少的人和我有同感。我热爱编程,但是我不能说我热爱C++。坦白的讲,如果是我一个人独立编程,我很乐意使用C++,它的好处就不必多说了,但是在一个稍微大一点的团队中,我一直希望找到一种 “更高级”的语言。这些年一直被C++折磨着,即便团队中有一个新人,有少许几行代码,就足够让整个团队调试一整天。最近的一次,有位兄弟写了如下代码:

在一个类中有这个成员变量:DWORD m_array[10];

for(int i=0; i<sizeof(m_array); i++)

m_array[i] = 0;

错误是明显的,但是它并不会立即造成非法操作,它只是破坏了其它成员变量的内容。。。要知道,在一个20万行的程序中找到这个错误并不是那么容易啊。

C#很不错,而且MS推它的力度很大,现在又有XNA,浮点运算效率一直被大家质疑,不知道现在改进了多少?还有一个不爽的事就是――需要带个百十来M的runtime lib。

D语言的发展很值得关注,在TIOBE的调查(http://www.tiobe.com/?tiobe_index )中已经排到14位,而且上升速度紧跟Ruby之后,十分抢眼。对于游戏程序员,尤其适合。:)当然,D还在发展中,但是它值得关注。  D语言在经历了一百七十多个版本,五年的开发之后,终于推出了1.0版!现在是时候实践一下了。:)

为什么D语言如此令人激动,请看这篇文章:
英文原文:http://www.digitalmars.com/d/overview.html
中文翻译:http://blog.csdn.net/uframer/archive/2005/02/03/279661.aspx
我在这里就不赘述了。

准备工作环境

最基本的compiler和linker可以从Digital Mars官方网站下载:http://www.digitalmars.com/d/dcompiler.html。注意,要下载两个包dmd.zip是compiler,dmc.zip是linker。压缩包中还带了MS Windbg程序可以用来调试。为了方便调用,后需要把“dmd/bin/”添加到系统的PATH环境变量中。

在“dmd/samples/d”有几个例子,可以先看看,对D有一个初步的印象。“dmd/html/d”有一些文档,应该好好看看。:)

编辑工具现在后很多,简单起见,我现在使用Ultra Edit,关于如何配置UE,请参考:http://www.prowiki.org/wiki4d/wiki.cgi?EditorSupport/UltraEdit。

实战Hello World!

1、  创建一个新的文本文件,输入以下代码:
void main()
{
printf("Hello D!");
}

2、  键入命令行:dmd hello.d –g,此命令会生成hello.exe,其中-g参数是为了生成调试用的符号表;

3、  键入命令行:windbg hello.exe,可以启动windbg调试窗口,在windbg的Command窗口中键入“g _Dmain”,即可开始调试;

这几行代码是不是和C语言一下啊?!这是因为D和C在二进制上是兼容的,而且D引入了C Runtime lib,所以可以调用CRT的printf。下面这几行是调用D的标准库(Phobos)的代码:

import std.stdio;

void main()
{
    writefln("Hello D!");
}

OK,基本的编辑、连接、调试就是这样了!下次将尝试创建一个Win32窗口,并初始化会OpenGL。

D语言游戏编程(1):工作环境相关推荐

  1. c语言双缓冲怎么用,C语言游戏编程:GDI怎么实现双缓冲绘图去掉闪烁

    在上篇文章中将我要用 C语言重新写一个俄罗斯方块 ,使用的是GDI的绘图模式(目前正在移植到DX上去,想添加一些更好友好的动画).数据与动画分离,动画的帧率保持在30左右.但是绘图的时候画面出现了强烈 ...

  2. c语言游戏编程网盘下载,C语言游戏编程 计算器(5分下载)

    C语言游戏编程 #include /*DOS接口函数*/ #include /*数学函数的定义*/ #include /*屏幕操作函数*/ #include /*I/O函数*/ #include /* ...

  3. c语言黑白棋程序设计报告,C语言游戏编程 黑白棋游戏

    C语言游戏编程 /*3.3.4 源程序*/ #include "graphics.h" /*图形系统头文件*/ #define LEFT 0x4b00 /*光标左键值*/ #def ...

  4. go语言游戏编程初识--`Ebiten`

    Ebiten ebiten是一个简单的使用纯go实现的游戏,使用这个库即可以实现go语言代码的学习,又可以实现对游戏编程的了解. Hello world 让我们以一个Hello world!开始ebi ...

  5. go语言游戏编程-Ebiten使用矩阵实现对图的缩放和移动

    如何使用矩阵绘图 这个程序几乎和渲染一个图片一模一样,唯一一点不同的是,增加了option参数,并依靠参数,实现了对图像的放大和移动 package mainimport ("github. ...

  6. go语言游戏编程-Ebiten渲染一张图片

    渲染一个图片 完整实现代码: package mainimport ("fmt""github.com/hajimehoshi/ebiten""git ...

  7. go语言游戏编程-Ebiten实现画面的填充

    Draw 完整代码如下: package mainimport ("github.com/hajimehoshi/ebiten""image/color"&qu ...

  8. c语言编程贪吃蛇游戏 下载,C语言游戏编程 贪吃蛇游戏

    #include dos.h DOS接口函数 #include math.h 数学函数的定义 #include conio.h 屏幕操作函数 #include stdio.h IO函数 #includ ...

  9. 三国杀c语言游戏编程代码,三国杀游戏 - 源码下载|源代码 - 源码中国

    压缩包 : 三国杀.rar 列表 [原创]一步一步用C#编写三国杀(二):牌堆的设计 - 忘却之都 - 博客园.files\1787546.jpg [原创]一步一步用C#编写三国杀(二):牌堆的设计 ...

最新文章

  1. MySQL 5.1 分区技术初探(一)
  2. 睡前刷8分钟手机,身体兴奋1小时
  3. 鸿蒙系统平板界面,鸿蒙OS平板UI界面曝光:双Dock栏设计+超级终端互联功能
  4. 《Adobe Flash CS6中文版经典教程》——导读
  5. ffmpeg + x264 编码H264(x86+arm)
  6. PerlRegex堆栈溢出的问题
  7. The method getContextPath() is undefined for the type ServletContext
  8. java sha加密算法_Java加密 消息摘要算法SHA实现详解
  9. 【课程设计-毕业设计】机械设计课程设计选题-含设计说明书
  10. android u盘怎么打开文件夹图标不显示不出来了,U盘图标显示不正常怎么办,U盘图标怎么显示出来...
  11. uniapp图片添加水印
  12. 解决类似 The word is not correctly spelled等pom文件拼写错误问题
  13. 奈奎斯特定理和香农定理
  14. 电子电气架构——Vector ODX诊断数据库解决方案和操作指南
  15. Visual Studio中C++部分的官方文档链接【微软(Microsoft)所有产品的官方文档链接】
  16. AFM成像表面形貌和表面粗糙度
  17. 阿里云服务器以及CDN支持IPV6的方法
  18. android流程点击开机键熄屏,一种基于android系统的灭屏状态下指纹解锁加速亮屏方法与流程...
  19. 上海为什么更需要“自贸区”?
  20. 投票扣积分php系统,关于投票系统刷票形式原理(突破ip限制刷票PHP版)

热门文章

  1. 面向对象之多态以及进阶
  2. android 程序运行,Android如何保持程序一直运行
  3. Vanilla JS——最轻快的JavaScript框架
  4. 基于OneDNS实现上网安全防护和监控
  5. mx播放器有没有投屏功能_这个播放器真是太强大了!
  6. J - Janitor Troubles 三分 海伦公式
  7. 《Android项目实战-博学谷》应用图标欢迎界面
  8. 【java毕业设计源码】基于SSM的疫情社区物资配送系统
  9. 比较无线局域网和无线广域网的特征
  10. 机器学习系列之交叉验证、网格搜索