台球游戏源代码(台球单机游戏中文版)
admin 发布:2022-12-19 17:14 171
今天给各位分享台球游戏源代码的知识,其中也会对台球单机游戏中文版进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
有人有入门的VS2010小游戏源代码吗?急需
有个台球小游戏,
c语言写的,
开发工具vs2019
可以吗
求用C语言模拟简单台球运动的源代码,不需要图形化界面
这源代码应该有个桌面类(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("liTable 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=0;im_dwNumMaterials;i++)
{
//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={0.0f,0.0f,0.0f,0.0f};
m_pMeshTableMaterials[i].Specular=rgbaSpecular;
m_pMeshTableMaterials[i].Power=50.0f;
//Create the texture
char buffer[255];
sprintf(buffer,"textures/%s",matMaterials[i].pTextureFilename);
if(FAILED(D3DXCreateTextureFromFile(m_pD3DDevice,
buffer, m_pMeshTableTextures[i])))
{
m_pMeshTableTextures[i]=NULL;
}
}
//finished with the material buffer,so release it
SafeRelease(pMaterialsBuffer);
//Make sure that the normals are setup for mesh
pMeshTable-CloneMeshFVF(D3DXMESH_MANAGED,MESH_D3DFVF_CUSTOMVERTEX,m_pD3DDevice,m_pMeshTable);
SafeRelease(pMeshTable);
// D3DXComputeNormals(m_pMesh);
LogInfo("liMesh '%s' loaded OK",pFilename);
}
CTable::~CTable()
{
SafeDelete(m_pMeshTableMaterials);
if(m_pMeshTableTextures != NULL)
{
for(DWORD i=0;im_dwNumMaterials;i++)
{
if(m_pMeshTableTextures[i])
SafeRelease(m_pMeshTableTextures[i]);
}
}
SafeDelete(m_pMeshTableTextures);
SafeRelease(m_pMeshTable);
LogInfo("liTable Mesh destroyed OK");
}
DWORD CTable::Render()
{
TransformTable();
if(m_pMeshTable!=NULL)
{
for(DWORD i=0;im_dwNumMaterials;i++)
{
m_pD3DDevice-SetMaterial(m_pMeshTableMaterials[i]);
m_pD3DDevice-SetTexture(0,m_pMeshTableTextures[i]);
m_pMeshTable-DrawSubset(i);
}
return m_pMeshTable-GetNumFaces();
}
else
return 0;
}
LPD3DXMESH CTable::GetMeshTablePointer()
{
return m_pMeshTable;
}
void CTable::TransformTable()
{
D3DXMATRIX matWorld;
D3DXMatrixTranslation(matWorld,0,0,0);
m_pD3DDevice-SetTransform(D3DTS_WORLD,matWorld);
}
(Sphere.h)
#if !defined (AFX_SPHERE_H__FC705F3B_568E_4973_B608_B8F7700D9ECE__INCLUDED_)
#define AFX_SPHERE_H__FC705F3B_568E_4973_B608_B8F7700D9ECE__INCLUDED_
#if _MSC_VER 1000
#pragma once
#endif // _MSC_VER 1000
#include "Base.h"
#define SPHERE_D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)
class CSphere:public CBase
{
private:
struct SPHERE_CUSTOMVERTEX
{
float x,y,z; //Position of vertex in 3D space
float nx,ny,nz; //Lighting Normal
float tu,tv; //Texture coordinates
};
struct SPHERE_STATE
{
D3DXVECTOR3 sVector; //Position of Centigram in 3D space
D3DXVECTOR3 vVector; //Direction of Velocity in 3D space
float v; //Speed of Sphere
};
SPHERE_STATE *m_pSphereState;
D3DXVECTOR3 m_vecSavePosition; //Save sphere position for collision bar
D3DXVECTOR3 m_vecSavePosition2; //Save sphere position for collision sphere
public:
BOOL SetMaterial(D3DCOLORVALUE rgbaDiffuse,D3DCOLORVALUE rgbaAmbient,
D3DCOLORVALUE rgbaSpecular,D3DCOLORVALUE rgbaEmissive,float rPower);
BOOL SetTexture(const char* szTextureFilePath);
DWORD Render();
CSphere(LPDIRECT3DDEVICE8 pD3DDevice,int iRings=20,int iSegments=20);
void MoveSphere();
void MoveSphereForUser(float x,float z);
virtual ~CSphere();
inline void SetSpherePosition(float x,float y,float z)
{
m_pSphereState-sVector.x=x;
m_pSphereState-sVector.y=y;
m_pSphereState-sVector.z=z;
};
inline void GetSpherePosition(D3DXVECTOR3 vecSpherePos)
{
vecSpherePos=m_pSphereState-sVector;
};
inline void GetSavedSpherePosition(D3DXVECTOR3 vecSavedSpherePos)
{
vecSavedSpherePos=m_vecSavePosition;
};
inline void GetSavedSpherePosition2(D3DXVECTOR3 vecSavedSpherePos)
{
vecSavedSpherePos=m_vecSavePosition2;
};
inline void SaveSpherePosition()
{
m_vecSavePosition=m_pSphereState-sVector;
};
inline void SaveSpherePosition2()
{
m_vecSavePosition2=m_pSphereState-sVector;
};
inline void ContradictoryZv()
{
m_pSphereState-vVector.z=-m_pSphereState-vVector.z;
};
inline void ContradictoryXv()
{
m_pSphereState-vVector.x=-m_pSphereState-vVector.x;
};
void MirrorVAoubtAxis(D3DXVECTOR3 n);
inline void ReduceSphereVelocity(float percent)
{
m_pSphereState-v=m_pSphereState-v*percent;
};
inline float CheckSphereEnergy()
{
return m_pSphereState-v;
};
inline void SetSphereVelocityDir(const D3DXVECTOR3 vDir)
{
m_pSphereState-vVector=vDir;
};
inline void SetSphereVelocity(const float velocity)
{
m_pSphereState-v=velocity;
};
inline void GetSphereVelocityDir(D3DXVECTOR3 vDir)
{
vDir=m_pSphereState-vVector;
};
inline float GetSphereVelocity()
{
return m_pSphereState-v;
};
inline void SetSphereStateToFalse()
{
m_bSphereInUse=FALSE;
};
inline void SetSphereStateToTrue()
{
m_bSphereInUse=TRUE;
};
inline BOOL GetSphereState()
{
return m_bSphereInUse;
};
void SetSphereVelocityAt_Y_NegativeAxis();
inline float GetSpherePosAt_Y_Axis()
{
return m_pSphereState-sVector.y;
};
private:
BOOL CreateIndexBuffer();
BOOL UpdateVertices();
BOOL CreateVertexBuffer();
void TransformSphere();
void TransformSphereForUser();
void UpdateSpherePosition();
void FrictionReduseVelocity();
LPDIRECT3DDEVICE8 m_pD3DDevice;
LPDIRECT3DVERTEXBUFFER8 m_pVertexBuffer;
LPDIRECT3DTEXTURE8 m_pTexture;
D3DMATERIAL8 m_matMaterial;
LPDIRECT3DINDEXBUFFER8 m_pIndexBuffer;
int m_iRings;
int m_iSegments;
float m_fTotalDis;
D3DXVECTOR3 m_vecSphereRotationAxis;
BOOL m_bSphereInUse;
DWORD m_dwNumOfVertices;
DWORD m_dwNumOfIndices;
DWORD m_dwNumOfPolygons;
};#endif
关于台球游戏的C语言编程
#includestdio.h
#includegraphics.h
#includeconio.h
#include stdlib.h
#includemath.h
#includetime.h
#define PATH "D:\\tc30"
#define pi 3.14159265354
#define r 10.0
#define zero 0.01
#define BC 0
#define DISK 2
float R=r+0.5;
struct balltype
{
float x,y;
float dx,dy;
int flag;
}ball[16];
int cx=320-5*r,cy=240;
float power=15.0;
int flag=1,player=0,chang=0;
int hole[6][2]={{17,92},{320,92},{623,92},
{17,388},{320,388},{623,388}};
int plball[2]={0,0},ex=1;
void help()
{ char *fname = { "a/4:left d/6:right w/8:up s/2:down Space:shoot ,or.:power Esc:exit" };
setcolor(14);
outtextxy(8,460,fname);
}
void waittime(double t)
{
time_t t1,t2;
double a,b;
a=time(t1);
while(1)
{
b=time(t2);
if(b-at) break;
}
}
void drawhlep()
{
setbkcolor(9);
setcolor(14);
rectangle(50,50,550,400);
rectangle(50,100,550,145);
settextstyle(0, 0, 4);
outtextxy(150, 60, "Help You!");
rectangle(250,100,400,145);
setcolor(4);
settextstyle(3,0,4);
outtextxy(270,102,"Player1");
outtextxy(420,102,"Player2");
setcolor(14);
rectangle(50,170,550,195);
rectangle(50,220,550,245);
rectangle(50,270,550,295);
rectangle(50,320,550,345);
rectangle(50,370,550,400);
rectangle(400,145,550,245);
rectangle(50,145,250,370);
setcolor(10);
settextstyle(3,0,1);
outtextxy(115,146,"Left");
outtextxy(115,171,"Right");
outtextxy(115,196,"Up");
outtextxy(115,221,"Down");
outtextxy(115,246,"Move Quick");
outtextxy(115,271,"Add");
outtextxy(115,296,"Subtrate");
outtextxy(115,321,"Shoot");
outtextxy(115,346,"Exit");
setcolor(5);
settextstyle(7,0,4);
outtextxy(60,385,"Welcome to ZGQ's Game. QQ:271111716 E-mail:zgq150@163.com");
}
求一款名为Virtual Pool 的台球单机游戏
3D台球游戏 Virtual Pool v3.1.0.4 PC 绿色版
注意:此版本为无视频无帮助的精简版 下载安装后 请把C盘下的 Virtual Pool 3极小CD.iso 载入到你的虚拟光驱中 才可游戏 若游戏中要求插光盘 请点击取消即可 此游戏及破解均从网上获得 版权属原作者 仅供学习研究之用 请下载后24小时内删除 并请支持正版!
解压后请把ISO文件复制 到C盘下 把原文件覆盖
台球游戏源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于台球单机游戏中文版、台球游戏源代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
- 上一篇:文章滚动代码(css文字滚动代码)
- 下一篇:家教代码出售(家教 代号)
相关推荐
- 05-09百度游戏客服在线咨询,百度游戏客服在线咨询平台
- 05-07pb超级报表源代码(pb报表工具)[20240507更新]
- 05-07简历源代码可以上传照片的简单介绍[20240507更新]
- 05-07广告切换源代码免费下载(广告切换源代码免费下载安装)[20240507更新]
- 05-06阁楼网源代码(阁楼是什么网站)[20240506更新]
- 05-06源代码管理资源管理器(资源管理器运行代码)[20240506更新]
- 05-06人脸识别源代码pdf的简单介绍[20240506更新]
- 05-06包含超市管理系统java源代码的词条[20240506更新]
- 05-06商城app源代码免费(商城App源码)[20240506更新]
- 05-06包含游戏源代码不同的模式的词条[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接