• 大小: 5.69MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-26
  • 语言: C#
  • 标签: C#  DirectX  三维动画  

资源简介

C#利用DirectX技术玩转.x文件,能够进行各种运动操作!bin文件夹中附DirectX的dll文件

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace 测试directX动画
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

        #region  定义
        Mesh mesh = null;
        bool pause = false;
        private Device device = null;
        Material meshmaterials;
        Texture[] meshtexture;
        private Microsoft.DirectX.Direct3D.Font fonts = null;
        Microsoft.DirectX.Direct3D.Material[] meshmaterials1;
        float angle = 0 viewz = -100.0f;

        int position_x position_y;
        float pitch yaw roll = 0;
        float carema_x carema_y;
        #endregion

        public bool InitializeGraphics()
        {
            try
            {
                PresentParameters presentparams = new PresentParameters();
                presentparams.Windowed = true;//这个是在form1
                presentparams.DeviceWindow = panel1;//这个是把图画弄到pannal里面
                presentparams.SwapEffect = SwapEffect.Discard;
                presentparams.EnableAutoDepthStencil = true;
                presentparams.AutoDepthStencilFormat = DepthFormat.D16;
                device = new Device(0 DeviceType.Hardware this CreateFlags.SoftwareVertexProcessing presentparams);
               // fonts = new Microsoft.DirectX.Direct3D.Font(device new System.Drawing.Font
               //(“Arial“ 14.0f Fontstyle.Bold | Fontstyle.Italic));
                device.DeviceReset += new System.EventHandler(this.onresetDevice);
                this.OnCreateDevice(device null);
                this.onresetDevice(device null);
            }
            catch (DirectXException) { return false; }
            return true;
        }
        public void OnCreateDevice(object sender EventArgs e)
        {
            meshmaterials = new Material();
            //meshmaterials.Ambient = System.Drawing.Color.White;
            //meshmaterials.Diffuse = System.Drawing.Color.White;
            //ColorValue cv=new ColorValue(25511);
            //meshmaterials.AmbientColor = cv;
            //meshmaterials.DiffuseColor = cv;
            ExtendedMaterial[] Materials = null;
            mesh = Mesh.FromFile(@“..\..\car.x“ MeshFlags.RtPatches device out Materials);//要载入的.x文件
            
            if (meshtexture == null)//没有网格纹理的话,载入??
            {
                meshtexture = new Texture[Materials.Length];
                meshmaterials1 = new Microsoft.DirectX.Direct3D.Material[Materials.Length];
                for (int i  = 0; i < Materials.Length; i++)
                {
                   meshmaterials1[i] = Materials[i].Material3D;
                    meshmaterials1[i].Ambient = meshmaterials1[i].Diffuse;
             

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-07-16 12:17  测试directX动画(Example)\
     文件         165  2013-05-07 19:30  测试directX动画(Example)\app.config
     目录           0  2015-07-16 12:17  测试directX动画(Example)\测试directX动画\
     文件      524416  2015-07-07 19:54  测试directX动画(Example)\测试directX动画\BatNormalMap.dds
     文件       11207  2015-07-16 12:12  测试directX动画(Example)\测试directX动画\Form1.Designer.cs
     文件        8311  2015-07-16 12:12  测试directX动画(Example)\测试directX动画\Form1.cs
     文件        5817  2015-07-16 12:12  测试directX动画(Example)\测试directX动画\Form1.resx
     文件     1307803  2015-07-04 21:51  测试directX动画(Example)\测试directX动画\Pen.x
     文件      299627  2013-05-09 10:16  测试directX动画(Example)\测试directX动画\Pen1.x
     文件         504  2013-05-07 19:20  测试directX动画(Example)\测试directX动画\Program.cs
     目录           0  2015-07-16 12:17  测试directX动画(Example)\测试directX动画\Properties\
     文件        1388  2013-05-07 19:02  测试directX动画(Example)\测试directX动画\Properties\AssemblyInfo.cs
     文件        2888  2013-05-07 19:02  测试directX动画(Example)\测试directX动画\Properties\Resources.Designer.cs
     文件        5612  2013-05-07 19:02  测试directX动画(Example)\测试directX动画\Properties\Resources.resx
     文件        1104  2013-05-07 19:02  测试directX动画(Example)\测试directX动画\Properties\Settings.Designer.cs
     文件         249  2013-05-07 19:02  测试directX动画(Example)\测试directX动画\Properties\Settings.settings
     文件         165  2013-05-07 19:30  测试directX动画(Example)\测试directX动画\app.config
     文件       23227  2013-05-07 16:33  测试directX动画(Example)\测试directX动画\arrow.x
     文件     1460557  2013-05-07 16:33  测试directX动画(Example)\测试directX动画\bat.x
     文件     1048704  2015-07-07 19:54  测试directX动画(Example)\测试directX动画\batalbedo.dds
     文件      480915  2013-05-07 16:33  测试directX动画(Example)\测试directX动画\bigship1.x
     目录           0  2015-07-16 12:17  测试directX动画(Example)\测试directX动画\bin\
     目录           0  2015-07-16 12:17  测试directX动画(Example)\测试directX动画\bin\Debug\
     文件      473600  2005-03-18 16:23  测试directX动画(Example)\测试directX动画\bin\Debug\Microsoft.DirectX.Direct3D.dll
     文件     2676224  2004-09-29 12:38  测试directX动画(Example)\测试directX动画\bin\Debug\Microsoft.DirectX.Direct3DX.dll
     文件      223232  2005-03-18 16:23  测试directX动画(Example)\测试directX动画\bin\Debug\Microsoft.DirectX.dll
     文件       15360  2015-07-16 12:12  测试directX动画(Example)\测试directX动画\bin\Debug\测试directX动画.exe
     文件         165  2013-05-07 19:30  测试directX动画(Example)\测试directX动画\bin\Debug\测试directX动画.exe.config
     文件       32256  2015-07-16 12:12  测试directX动画(Example)\测试directX动画\bin\Debug\测试directX动画.pdb
     文件       11600  2015-07-16 12:16  测试directX动画(Example)\测试directX动画\bin\Debug\测试directX动画.vshost.exe
     文件         165  2013-05-07 19:30  测试directX动画(Example)\测试directX动画\bin\Debug\测试directX动画.vshost.exe.config
............此处省略31个文件信息

评论

共有 条评论