#include <d3d8.h>
#include <d3dx8.h>
#include <mmsystem.h>
#include <malloc.h >
#include "wclass.h"
#include "class.h"
#include "message.h"
/////////////////////////////////////////////////
//1.模型空间与directx空间坐标相反
//或者2.与照相机的相反
//人物高度250~300
////////////////////////////////////////////
#pragma comment(lib,"d3d8.lib")
#pragma comment(lib,"d3dx8.lib")
#pragma comment(lib,"winmm.lib")
#pragma comment(lib,"d3dxof.lib")
#pragma comment(lib,"dxguid.lib ")
/////////////////////////////////////////////
//自定义 枚举 一般类型
////////////////////////////////////////////
#define ID_PLAY 1
#define ID_EXIT 2
LPSTR pictures[]={"火花1.tga","火花2.tga","火花3.tga"};
D3DXVECTOR3 From(0,-740,0),To(0,700,0);
int m=4,n=1;//摄像机斜角 即 摄像机up方向是(-n,0,m)
int state=0;
char markGp1='0',markGp2='0';
D3DXVECTOR3 eyeposition;
int win=0;
int lock=0;
/////////////////////////////////////////////
//Win32类型
/////////////////////////////////////////////
HINSTANCE hInst ;
/////////////////////////////////////////////
//D3D类型
/////////////////////////////////////////////
/////SDK自带
LPDIRECT3D8 g_pD3D = NULL; // 用来创建D3D设备
LPDIRECT3DDEVICE8 g_pd3dDevice = NULL; // D3D设备
LPDIRECT3DVERTEXBUFFER8 g_pVB = NULL; // 顶点缓冲区
LPDIRECT3DTEXTURE8 g_pTexture = NULL; // 纹理
/////扩展定义/////////////////////////////////////////
Role *pGp1=NULL;
Role *pGp2=NULL;
Role *pGscene=NULL;
Role *pWinner=NULL;
Role *pFailer=NULL;
////////
BackScene *pbs=NULL;
//////////////
Blood *pBldofp1=NULL;
Blood *pBldofp2=NULL;
/////////////////
Sharp *psharp1=NULL;
Sharp *psharp2=NULL;
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////
struct CUSTOMVERTEX
{
D3DXVECTOR3 position; // 顶点坐标
D3DXVECTOR3 normal; //顶点法线
// D3DCOLOR color; // 顶点颜色|D3DFVF_DIFFUSE
FLOAT tu, tv; // 贴图坐标
};
// 我们自定义的FVF,定义了顶点的结构,
// D3DFVF_XYZ : 表示顶点坐标
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)
///////////////////////////////////////////////////////
///////////////////////////////////////////////
void SetPlayLight()
{
HRESULT hr=S_OK;
////////////////////////一号光
D3DLIGHT8 light1;
ZeroMemory( &light1, sizeof(D3DLIGHT8) );
light1.Type =D3DLIGHT_DIRECTIONAL;//D3DLIGHT_DIRECTIONAL; //
light1.Diffuse.r = 1.0;
light1.Diffuse.g = 1.0;
light1.Diffuse.b = 1.0;
light1.Direction = D3DXVECTOR3( 1.0f, 0.0f, 0.0f);
hr = g_pd3dDevice->SetLight(0, &light1 );
hr = g_pd3dDevice->LightEnable(0, TRUE);
g_pd3dDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
//////////////////////////二号光
D3DLIGHT8 light2;
ZeroMemory( &light2, sizeof(D3DLIGHT8) );
light2.Type =D3DLIGHT_POINT;//D3DLIGHT_DIRECTIONAL; //
light2.Diffuse.r = 1.0;
light2.Diffuse.g = 1.0;
light2.Diffuse.b = 1.0;
light2.Position = D3DXVECTOR3( 0.0f, 0.0f, 10000.0f);
light2.Range=10000000000000.0f;
light2.Attenuation0=1.0f;
hr = g_pd3dDevice->SetLight(1, &light2 );
hr = g_pd3dDevice->LightEnable(1, TRUE);
g_pd3dDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
}
////////////////////////////////////////////////////////////////////
void SetMoveLight(D3DXVECTOR3 position)
{
HRESULT hr=S_OK;
//////////////////////////三号光
D3DLIGHT8 light3;
ZeroMemory( &light3, sizeof(D3DLIGHT8) );
light3.Type =D3DLIGHT_POINT;//D3DLIGHT_DIRECTIONAL; //
light3.Diffuse.r = 1.0;
light3.Diffuse.g = 1.0;
light3.Diffuse.b = 1.0;
light3.Position = position;
light3.Range=1000000.0f;
light3.Attenuation0=1.0f;
hr = g_pd3dDevice->SetLight(3, &light3 );
hr = g_pd3dDevice->LightEnable(3, TRUE);
g_pd3dDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
}
///////////////////////////////////////////////
int LoadModel()
{
//LPSTR pictures[]={"火花1.tga","火花2.tga","火花3.tga"};
pGscene=new Role;
pGp1=new Role;
pGp2=new Role;
pbs=new BackScene;
pBldofp1=new Blood(g_pd3dDevice,"血条.bmp","幽助.tga",100,D3DX_PI/4,1);
pBldofp2=new Blood(g_pd3dDevice,"血条.bmp","飞影.tga",100,D3DX_PI/4,-1);
psharp1=new Sharp(g_pd3dDevice,pictures,100,3);
psharp2=new Sharp(g_pd3dDevice,pictures,100,3);
////////////////////////////////
pGscene->LoadMeshHierarchy("擂台.x",g_pd3dDevice);
pGscene->PrepareMatrices(D3DXVECTOR3(0,0,0),0,"Anim-1");
pGscene->Settime(1);
////////////////////////////////幽助
pGp1->LoadMeshHierarchy("幽助测试.X",g_pd3dDevice);
pGp1->SetAnimaName("Anim-1","Anim-7","Anim-8","Anim-9");
pGp1->CorrectPosition(D3DXVECTOR3(0,400,0),-1);
////////////////////////////////幽助 飞影
pGp2->LoadMeshHierarchy("飞影测试.X",g_pd3dDevice);
pGp2->SetAnimaName("Anim-1","Anim-7","Anim-8","Anim-9");
pGp2->CorrectPosition(D3DXVECTOR3(0,-400,0),1);
////////////////////////////////////
pbs->LoadBackscene("背景.X",g_pd3dDevice);
///////////////////////////////////////////
// SetVertic(g_pd3dDevice);
return 1;
}
//////////////////////////////////////////
void SetupEndMatrices(D3DXVECTOR3 &eyeposition,Role *pwinner)
{
FLOAT Enddistance=500;
D3DXVECTOR3 Endeyeposition=D3DXVECTOR3( Enddistance,pwinner->position.y,
200+Enddistance/4 );
static D3DXVECTOR3 relaposition;
if(lock==0)
{
relaposition=(Endeyeposition-eyeposition)/200;
lock=1;
}
D3DXMATRIX matView;
if(abs(eyeposition.y-Endeyeposition.y)>abs(relaposition.y))
eyeposition=eyeposition+relaposition;
else
{
if((pFailer->position.y-pwinner->position.y)*pwinner->direction<0)
{
D3DXMATRIX mat;
D3DXMatrixRotationZ( &mat, D3DX_PI );
pwinner->SetCorrect(mat,-pwinner->direction);
}
pwinner->PlayAnimation(D3DXVECTOR3(0,0,0),pwinner->direction,"Anim-9",40);
}
D3DXMatrixLookAtLH( &matView, &eyeposition,
&D3DXVECTOR3( 0.0f,eyeposition.y, 200.0f ),
&D3DXVECTOR3( -n,0.0f, m ) );//最后一个是方向而不是点
// &pGp1->positionD3DXVECTOR3( 0.0f, 0.0f, 0.0f )(pGp1->position.y+pGp2->position.y)/2)
g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );
// 设置摄象机的放射参数
D3DXMATRIX matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f,0.5f, 100000000000.0f );
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );
///////////////////血液 D3DXVECTOR3(1,0,100)
SetMoveLight(eyeposition);
pBldofp1->SetBloodSize(eyeposition,m,n,0);
pBldofp2->SetBloodSize(eyeposition,m,n,0);
}
///////////////////////////////////////////////
void SetupPlayMatrices(D3DXVECTOR3 &eyeposition)
{
D3DXMATRIX matView;
D3DXMatrixLookAtLH( &matView, &eyeposition,
&(((pGp1->position+pGp2->position)/2)+D3DXVECTOR3( 0.0f,0.0f, 200.0f )),
&D3DXVECTOR3( -n,0.0f, m ) );//最后一个是方向而不是点
// &pGp1->positionD3DXVECTOR3( 0.0f, 0.0f, 0.0f )(pGp1->position.y+pGp2->position.y)/2)
g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );
// 设置摄象机的放射参数
D3DXMATRIX matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f,0.5f, 100000000000.0f );
g_pd3dDevice->SetT
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Directx8 骨骼动画 代码 工程 (116个子文件)
Script1.aps 31KB
背景2.bmp 8.58MB
背景2.bmp 8.58MB
背景2.bmp 8.58MB
幽助.bmp 3MB
飞影.bmp 3MB
擂台.bmp 3MB
幽助.bmp 3MB
飞影.bmp 3MB
擂台.bmp 3MB
背景.bmp 2.86MB
背景.bmp 2.86MB
幽游白书.bmp 2.32MB
1.bmp 2.32MB
幽游白书.bmp 2.32MB
tiger.bmp 576KB
3dgame.bmp 192KB
Tiny_skin.bmp 192KB
血条.bmp 73KB
血条.bmp 73KB
CreateDevice.bsc 3.76MB
CreateDevice.cpp 27KB
CreateDevice.cpp 27KB
class.cpp 23KB
class.cpp 23KB
wclass.cpp 16KB
wclass.cpp 16KB
class.cpp 4KB
Thumbs.db 7KB
CreateDevice.dsp 4KB
CreateDevice.dsp 4KB
CreateDevice.dsw 547B
CreateDevice.dsw 547B
CreateDevice.exe 768KB
CreateDevice.exe 768KB
CreateDevice.exe 396KB
未标题-1.gif 9KB
class.h 7KB
class.h 7KB
wclass.h 4KB
wclass.h 4KB
message.h 462B
message.h 462B
resource.h 456B
resoure.h 306B
resoure.h 306B
icon1.ico 766B
vc60.idb 209KB
vc60.idb 41KB
CreateDevice.ilk 1015KB
5.jpg 2.25MB
1.jpg 16KB
CreateDevice.ncb 105KB
CreateDevice.ncb 105KB
class.obj 55KB
struct.obj 54KB
wclass.obj 34KB
CreateDevice.obj 30KB
class.obj 17KB
wclass.obj 8KB
CreateDevice.opt 53KB
CreateDevice.opt 53KB
CreateDevice.pch 3.89MB
CreateDevice.pch 183KB
CreateDevice.pdb 1.34MB
vc60.pdb 180KB
CreateDevice.plg 260B
Script1.rc 2KB
Script1.res 860B
Script1.res 860B
wclass.sbr 0B
class.sbr 0B
struct.sbr 0B
火花2.tga 706KB
火花3.tga 706KB
火花.tga 706KB
火花2.tga 706KB
火花3.tga 706KB
火花1.tga 706KB
火花1.tga 706KB
tree.TGA 300KB
幽助.tga 100KB
飞影.tga 100KB
幽助.tga 100KB
飞影.tga 100KB
chimes.wav 54KB
run.WAV 25KB
Death.WAV 24KB
Death.WAV 24KB
PUNCH1.WAV 3KB
KICK1.WAV 3KB
KICK1.WAV 3KB
RUN.wma 18KB
飞影测试.X 2MB
飞影测试.X 2MB
飞影2.X 1.61MB
幽助测试.X 1.61MB
幽助测试.X 1.61MB
1.X 1.31MB
21.X 1.2MB
共 116 条
- 1
- 2
资源评论
xiao助阵
- 粉丝: 74
- 资源: 48
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功