基于C#的DirectX开发(基础篇)一

开发环境:Visual Studio 2008 / DirectX9 sdk

1. vs2008下选择创建windows下的一个空项目。

2. 为项目添加引用,引入Microsoft.DirectxMicrosoft.Directx.Directx3DMicrosoft.Directx.Directx3DX

3. 为项目添加一个windows窗口BasicForm,具体代码如下:

 public partial class BasicForm : Form

    {

        Device device = null;

        public BasicForm()

        {

            //InitializeComponent();

            this.ClientSize = new Size(800, 600); //绘制窗口大小

            this.Text = "第一个DirectX程序"//标题

        }

        /// <summary>

        /// 初始化绘图类Device

        /// </summary>

        /// <returns>是否成功</returns>

        public Boolean InitializeDirect3D()

        {

            try

            {

                PresentParameters presentParams = new PresentParameters();

                presentParams.Windowed = true//以窗体形式打开

                presentParams.SwapEffect = SwapEffect.Discard; //当屏幕会之后,自动从内存中删除

                device = new Device(0, DeviceType.Hardware, thisCreateFlags.SoftwareVertexProcessing, presentParams);

                return true;

            }

            catch (DirectXException e)

            {

                MessageBox.Show(e.ToString(), "Error");

                return false;

            }

        }

 

        public void Render()

        {

            if (device == null)

            {

                return;

            }

            device.Clear(ClearFlags.Target, System.Drawing.Color.WhiteSmoke, 1.0f, 0); //清除窗体,并将其绘制成白色

            device.BeginScene();

            //添加渲染代码

            triangle();

            device.EndScene();

            device.Present();

        }

 

        static void Main()

        { 

            BasicForm basicForm=new BasicForm();

            if (basicForm.InitializeDirect3D() == false)

            {

                MessageBox.Show("无法启动DirectX3D","错误!");

                return;

            }

            basicForm.Show();

            while(basicForm.Created)

            {

                basicForm.Render();

                Application.DoEvents();

            }

        }

        /// <summary>

        /// 绘制一个三角形

        /// </summary>

        public void triangle()

        {

            CustomVertex.TransformedColored[] verts = new CustomVertex.TransformedColored[3];

            verts[0].Position = new Vector4(150f,400f,0f,1f);

            verts[0].Color = Color.Red.ToArgb();

            verts[1].Position = new Vector4(this.Width/2, 100f, 0f, 1f);

            verts[1].Color = Color.Purple.ToArgb();

            verts[2].Position = new Vector4(this.Width-150f, 400f, 0f, 1f);

            verts[2].Color = Color.Blue.ToArgb();

            device.VertexFormat = CustomVertex.TransformedColored.Format;

            device.DrawUserPrimitives(PrimitiveType.TriangleList,1,verts);

        }

}

4. 将项目属性的输出类型 改为windows应用程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值