#include<graphics.h>
#include<conio.h>
#include<dos.h>
main()
{
int graphdrive=DETECT,graphmode
int x,y,radius,endangle,stangle,m=359,n=360
initgraph(&graphdrive,&graphmode,"c:\turboc2\bgi")
x=300
y=200
radius=100
do
{
cleardevice()
setcolor(WHITE)
setlinestyle(SOLID_LINE,1,1)
circle(x,y,radius)
stangle=m
endangle=n
setcolor(RED)
setlinestyle(SOLID_LINE,1,3)
arc(x,y,stangle,endangle,radius)
n--
m--
sleep(1)
if(n==1)
{
m=359
n=360
}
}while(!kbhit())
getch()
closegraph()
return 0
}
这源代码应该有个桌面类(Table),球类(Sphere),游戏类等等。我用C++#pragma once (Table.h)
#endif // _MSC_VER >1000
#include "Base.h"
#define MESH_D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)
class CTable:public CBase
{
public:
DWORD Render()
CTable(LPDIRECT3DDEVICE8 pD3DDevice,LPSTR pFilename)
virtual ~CTable()
LPD3DXMESH GetMeshTablePointer()
private:
void TransformTable()
LPDIRECT3DDEVICE8 m_pD3DDevice
DWORD m_dwNumMaterials
LPD3DXMESH m_pMeshTable
D3DMATERIAL8 *m_pMeshTableMaterials
LPDIRECT3DTEXTURE8 *m_pMeshTableTextures
}#endif
#include "Table.h" (Table.cpp)
CTable::CTable(LPDIRECT3DDEVICE8 pD3DDevice,LPSTR pFilename)
{
LPD3DXBUFFER pMaterialsBuffer=NULL
LPD3DXMESH pMeshTable=NULL
m_pD3DDevice=pD3DDevice
if(FAILED(D3DXLoadMeshFromX(pFilename,D3DXMESH_MANAGED,m_pD3DDevice,NULL,
&pMaterialsBuffer,&m_dwNumMaterials,&pMeshTable)))
{
m_pMeshTable=NULL
m_pMeshTableMaterials=NULL
m_pMeshTableTextures=NULL
LogError("<li>Table Mesh '%s' failed to load",pFilename)
return
}
D3DXMATERIAL *matMaterials=(D3DXMATERIAL*)pMaterialsBuffer->GetBufferPointer()
//Create two arrays. One to hold the materials and one to hold the textures
m_pMeshTableMaterials=new D3DMATERIAL8[m_dwNumMaterials]
m_pMeshTableTextures=new LPDIRECT3DTEXTURE8[m_dwNumMaterials]
for(DWORD i=0i<m_dwNumMaterialsi++)
{
//Copy the material
m_pMeshTableMaterials[i]=matMaterials[i].MatD3D
//Set the ambient color for the material(D3DX does not do this)
m_pMeshTableMaterials[i].Ambient=m_pMeshTableMaterials[i].Diffuse
D3DCOLORVALUE rgbaSpecular=
m_pMeshTableMaterials[i].Specular=rgbaSpecular
m_pMeshTableMaterials[i].Power=50.0f