登录
首页 » VC++源码 » VC++ OpenGL粒子系统之火山喷发

VC++ OpenGL粒子系统之火山喷发

于 2023-02-15 发布 文件大小:3.51 MB
0 240
下载积分: 2 下载次数: 1

代码说明:

VC++ 带音效的OpenGL粒子系统之火山喷发,作者:蔡真真 张田田。选择运行参数后,在音效的配合下,很逼真的火山喷发效果展现在眼帘。程序中为每个动态元素都制作了操作类,比如键盘类和程序框架类 、粒子系统火山喷发类、字体类、载入位图类、粒子定义类、粒子系统喷发具体实例类,粒子系统火山喷发模式选择对话框类等,这些类的共同发力,实现了逼真的火山喷发效果,当然你的电脑中需要安装有OpenGL组件,在预览效果时,可选择窗口大小以及全屏、音效等。   在具体实例类中,完成了核心的火山叶喷发功能,比如计算帧速、输出文字信息、绘制地面、绘制天空、绘制背景、初始化粒子、更新粒子等操作。当然,粒子定义类也是一个很主要的操作类。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • vc++ 6.0 AddNew添加数据库记录实例
    VC++ 数据库基础编程例子,使用记录集对象的AddNew方法添加记录。   //连接数据库   OnInitADOConn();   //设置查询字符串   _bstr_t bstrSQL = "select * from employees order by 员工编号 desc";   //创建记录集指针对象实例   m_pRecordset.CreateInstance(__uuidof(Recordset));   //打开记录集   m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,    adLockOptimistic,adCmdText);   while(!m_pRecordset->adoEOF)   {    m_Grid.InsertItem(0,"");    m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("员工编号"));    m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("员工姓名"));    m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("所属部门"));    m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("基本工资"));    //将记录集指针移动到下一条记录    m_pRecordset->MoveNext();   }   //断开数据库连接   ExitConnect();
    2022-03-10 00:07:57下载
    积分:1
  • VC++ 6.0 定制分割条(分隔条)的样式及大小
    VC++ 6.0 定制分割条,也就是窗体的分隔条,将窗口分隔成若干个部分,用来显示不同的内容,该窗格视图为CStaticSplitWnd4View,该窗格大小不能通过拖动改变,不过我们可以通过菜单命令动态改变大小,窗格视图为CView2,该窗格大小不能通过拖动改变,窗格视图CView3和CView4都可以通过分隔条的拖动来改变视图大校   本示例中的分隔条经过了初级的美化,而且也向用户展示了,如何通过分割条来固定分栏窗格视图的大小,如何让分隔条不支持拖动等功能。
    2023-08-22 18:20:04下载
    积分:1
  • vc.NET MFC开发完成的晚会随机抽奖程序
    vc.NET MFC开发完成的晚会随机抽奖程序,这个程序作为抽签、抽奖程序都可以,程序中需要设置几个抽奖参数,然后运行抽奖程序即可。抽奖过程中,程序数字不停变化,形成了动态效果,停止程序后,会显示出抽出来的获奖名单。本抽奖程序可设置一次需要抽出几个幸运观众,最多可设置5名观从被抽出来。其它的参数主要是选择几名男观从和几保女观众的年龄段,在抽取之前你需要准备好这些待抽出的资料供程序读龋。
    2022-04-23 23:00:47下载
    积分:1
  • VC++ 创建一个非模态对话框
    VC++ 创建一个非模态对话框,比较一下模态对话框,与其有何异同。以下是创建对话框的代码:   void CNonModeDlgDlg::Finish()   {    m_pChoice = NULL;    GetDlgItem(IDOK)->EnableWindow();   }   void CNonModeDlgDlg::OnOK()   {    if ( m_pChoice == NULL )    {    m_pChoice = new CChoiceDlg(this);    if ( m_pChoice->Create() == TRUE )    {    GetDlgItem(IDOK)->EnableWindow(FALSE);    }    }    else    {    m_pChoice->SetActiveWindow();    }   }
    2022-02-10 13:08:52下载
    积分:1
  • VC 创建内存映像文件对象并使用
    VC++6.0 创建内存映像文件对象并使用,实现了写入内存映射文件和从内存映射文件中读取数据,比如将数据从内存映射文件读出,实现方法如下:   void CFileMapTransTxtDlg::OnRead()   {    //创建内存映像对象    HANDLE hMapping;    LPSTR lpData;    hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x100,"MYSHARE");    if(hMapping==NULL)    {    AfxMessageBox("CreateFileMapping() failed.");    return;    }    //将文件的视图映射到一个进程的地址空间上,返回LPVOID类型的内存指针    lpData=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);    if(lpData==NULL)    {    AfxMessageBox("MapViewOfFile() failed.");    return;    }    //给这段映像内存的数据赋给本地变量    m_strDest.Format("%s",lpData);    //释放映像内存    UnmapViewOfFile(lpData);    //更新数据    UpdateData(FALSE);   }
    2022-05-17 02:25:47下载
    积分:1
  • VC++ MFC绘图打印技术范例
    VC++ 6.0 基于MFC的绘图及打印技术实例,附上了完整源码,打开程序后,可单击“测试”按钮,弹出绘图设置窗口,设置好参数绘图,然后打印出数据。方法步骤:   //创建画笔C++对象   CPen* pPenBlue = new CPen;   //创建画笔   pPenBlue->CreatePen(PS_SOLID,pDoc->m_thick,pDoc->m_color);   //选中当前画笔,并保存以前的画笔   CPen* pOldPen = pDC->SelectObject(pPenBlue);   POSITION posi=pDoc->m_PointList.GetHeadPosition();   while(posi)   {    CPoint point(pDoc->m_PointList.GetNext(posi));    pDC->Ellipse(point.x,point.y,point.x+    pDoc->m_long,point.y+pDoc->m_short);   }   //恢复旧画笔   pDC->SelectObject(pOldPen);   //删除新建的画笔对象   delete pPenBlue;   //设置映射模式   pDC->SetMapMode(MM_ANISOTROPIC);   CSize winSize = CSize(1024, 768);   //设定窗口大小   pDC->SetWindowExt(winSize);   //得到实际设备每逻辑英寸的象素数量   int xLogPixPerInch,yLogPixPerInch;   xLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSX);   yLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSY);   //得到设备坐标和逻辑坐标的比例   int xExt,yExt;   xExt=winSize.cx*xLogPixPerInch/96;   yExt=winSize.cy*yLogPixPerInch/96;   //设定视口大小   pDC->SetViewportExt(xExt,yExt);
    2022-01-25 14:09:09下载
    积分:1
  • VC++ 6.0“通讯簿”程序示例
    VC++ 6.0仿Windows“通讯簿”程序示例,其实是个挺不错的程序,不管是功能或是界面,都做的不错。可对通讯录中的人进行分类管理,每个记录在通讯录中的联系人,都包括了详细信息,比如城市、传真、移动电话、家庭电话、邮编、省/自治区、街道地址、国家等信息,业务中的联系人则与普通联系人的信息不一样,比如显示、城市、部门、职务、传真、业务名、办公室、邮编、街道地址等,有兴趣可下载源码二次开发。
    2022-05-20 01:58:32下载
    积分:1
  • VC++读取AutoCAD格式的dxf文件
    VC++编程实现读取AutoCAD格式的dxf文件,打开DXF文件后,本程序可放大、缩小预览效果。可以把本程序看作是一个打开DXF文件格式的查看器。源代码中的CadIO.dll文件请放在与编译后的Exe文件同级目录下。测试程序的源代码在cadDXFLibcadlib_srcCadLibTest目录下。
    2022-07-01 21:46:50下载
    积分:1
  • VC 向加密狗中写入数据
    VC 向加密狗中写入数据,与加密狗相关的例子。   DogAddr = 10; //设置起始地址   DogBytes = m_Data.GetLength(); //设置数据的长度   DogData = m_Data.GetBuffer(0); //设置写入的数据   if (WriteDog()==0)   MessageBox("数据写入成功");
    2022-07-14 23:43:14下载
    积分:1
  • VC++ 实现定制打印页的页眉和页脚
    VC++ 实现定制打印页的页眉和页脚,除了自定义打印页脚和页眉外,还可根据每页显示行数,设置打印页数,并且在需要时,屏蔽默认函数对OnDraw的调用。打印方面的定制,可参考以下代码:   void CMultiPrint2View::PrintHeader(CDC *pDC)//定制页眉   {   pDC->TextOut(0,0,"设置打印页眉和页脚测试:来首诗吧:再别康桥");   }   void CMultiPrint2View::PrintFooter(CDC *pDC)//定制页角   {   CMultiPrint2Doc* pDoc = GetDocument();//获取文档指针   ASSERT_VALID(pDoc);   CString str;   CPoint point(0,-1440*10-1000);   str.Format("当前文档:%s",(LPCSTR)pDoc->GetTitle());//获取当前文档名   pDC->TextOut(point.x,point.y,str);   str.Format("第%d页,共%d页",m_nPage,(pDoc->m_stringArray.GetUpperBound()/pDoc->m_LinePerPage+1));   CSize size=pDC->GetTextExtent(str);//获取输出文本宽度   point.x+=1440*6+1600-size.cx;   pDC->TextOut(point.x,point.y,str);   }完整的代码请下载源码吧。
    2022-07-05 00:30:40下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载