- 注册时间
- 2004-9-3
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2006-6-24 21:47:00
|
显示全部楼层
2游戏的库函数准备
Directaudio.cpp
Directdraw.cpp
Directinput.cpp
Directaudio.cpp
typedef struct pcm_sound_typ //WAV声音结构
{ LPDIRECTSOUNDBUFFER dsbuffer;
int state;
int rate;
int size;
int id; } pcm_sound, *pcm_sound_ptr;
#define DSVOLUME_TO_DB(volume) ((DWORD)(-30*(100-volume)))
////////////////////////////////////////////////
//DirectSound初始化
int MyDirectSoundInit(void);
//DirectSound结束
int MyDirectSoundShut(void);
//读取WAV文件
int DSoundLoadWAV(char *filename, int control_flags);
//////////////////////////////////////////////////
//DirectSound变量
extern LPDIRECTSOUND8 lpDSound;
extern DSBUFFERDESC dsbd;
extern DSCAPS dscaps;
extern HRESULT dsresult;
extern DSBCAPS dsbcaps;
extern LPDIRECTSOUNDBUFFER lpdsbprimary, lpdsbsecondary;
extern WAVEFORMATEX pcmwf;
extern pcm_sound sound_fx[MAX_SOUNDS];
extern HWND freq_hwnd, volume_hwnd, pan_hwnd;
extern int sound_id;
//////////////////////////////////////////////////
#define DM_NUM_SEGMENTS 64
#define MIDI_NULL 0
#define MIDI_LOADED 1
#define MIDI_PLAYING 2
#define MIDI_STOPPED 3
#define MULTI_TO_WIDE(x,y) MultiByteToWideChar( CP_ACP,MB_PRECOMPOSED, y,-1,x,_MAX_PATH);
#defineDD_INIT_STRUCT(ddstruct) { memset(&ddstruct,0,sizeof(ddstruct)); ddstruct.dwSize=sizeof(ddstruct); }
//MIDI声音结构
typedef struct DMUSIC_MIDI_TYP
{IDirectMusicSegment *dm_segment;
IDirectMusicSegmentState *dm_segstate;
int id;
int state;
} DMUSIC_MIDI, *DMUSIC_MIDI_PTR;
//////////////////////////////////////////////////
//DirectMusic变量
extern IDirectMusicPerformance8 *dm_perf;
extern IDirectMusicLoader8 *dm_loader;
extern IDirectMusicSegment *dm_segment;
extern IDirectMusicSegmentState *dm_segstate;
extern DMUSIC_MIDI dm_midi[DM_NUM_SEGMENTS];
extern int dm_active_id;
//////////////////////////////////////////////////
//DirectMusic函数
int MyDirectMusicLoad(char *filename);
int MyDirectMusicPlay(int id);
int MyDirectMusicStop(int id);
int MyDirectMusicShut(void);
int MyDirectMusicDeleteMIDI(int id);
int MyDirectMusicDelete(void);
int MyDirectMusicStatus(int id);
int MyDirectMusicInit(void);
Directdraw.cpp
#include <ddraw.h>
//BMP图形结构
typedef struct BMPPIC_TAG
{
BITMAPFILEHEADER bitmapfileheader; //文件头
BITMAPINFOHEADER bitmapinfoheader; //头信息
UCHAR *buffer;
}BMPPIC, *BMP_FILE;
//定义屏幕设置
#define SCREEN_WIDTH 800 //屏宽
#define SCREEN_HEIGHT 600 //屏高
#define SCREEN_BPP 16 //位数
//16位<st1:chsdate w:st="on" Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False">5.6.5</st1:chsdate>格式
#define _RGB16BIT565(r,g,b) ((b%32) + ((g%64) << 6) + ((r%32) << 11))
//16位5。5。5格式
//#define _RGB16BIT555(r,g,b) ((b%32) + ((g%32) << 5) + ((r%32) << 10))
#define BITMAP_ID 0x4D42 //BMP的句柄
#define MAX_COLORS_PALETTE 256
//DirectDraw 变量
extern LPDIRECTDRAW7 lpDDraw7; //DD对象
extern LPDIRECTDRAWSURFACE7 lpDDprimary; //DD主表面
extern LPDIRECTDRAWSURFACE7 lpDDback; //DD后备画面
extern DDSURFACEDESC2 ddsd; //DD表面描述界面
extern DDBLTFX ddbltfx; //DD图形变换变量
extern BMPPIC bitmap; //DD BMP变量
extern LPDIRECTDRAWSURFACE7 lpDDbpic; //Directdraw备用画面
extern LPDIRECTDRAWCLIPPER lpDDclip; //DirectDraw剪切板
extern LPDIRECTDRAWSURFACE7 lppic_sky;
extern LPDIRECTDRAWSURFACE7 lppic_hill;
extern LPDIRECTDRAWSURFACE7 lppic_road;
extern LPDIRECTDRAWSURFACE7 lppic_wheel;
extern LPDIRECTDRAWSURFACE7 lppic_wario;
extern LPDIRECTDRAWSURFACE7 lppic_smoke;
extern LPDIRECTDRAWSURFACE7 lppic_pig;
extern LPDIRECTDRAWSURFACE7 lppic_oldman;
extern LPDIRECTDRAWSURFACE7 lppic_knight;
extern LPDIRECTDRAWSURFACE7 lppic_stone;
extern LPDIRECTDRAWSURFACE7 lppic_girl;
extern LPDIRECTDRAWSURFACE7 lppic_cactus;
extern LPDIRECTDRAWSURFACE7 lppic_boy;
extern LPDIRECTDRAWSURFACE7 lppic_bird;
extern LPDIRECTDRAWSURFACE7 lppic_money;
extern LPDIRECTDRAWSURFACE7 lppic_number;
extern LPDIRECTDRAWSURFACE7 lppic_letter;
extern LPDIRECTDRAWSURFACE7 lppic_title;
extern LPDIRECTDRAWSURFACE7 lppic_back;
extern LPDIRECTDRAWSURFACE7 lppic_front;
extern LPDIRECTDRAWSURFACE7 lppic_princess;
extern LPDIRECTDRAWSURFACE7 lppic_princess1;
extern LPDIRECTDRAWSURFACE7 lppic_princess2;
extern LPDIRECTDRAWSURFACE7 lppic_princess3;
//DirectDraw函数
int MyDirectDrawInit(void); //DirectDraw初始化
int MyDirectDrawShut(void); //directDraw结束
//DirectDraw剪切板
LPDIRECTDRAWCLIPPER CreatDDClipper(LPDIRECTDRAWSURFACE7 lpDDraw,int Clipnumber,LPRECT clipsqe);
//BMP函数
int FilpBMPFile(UCHAR *image,int bytes_per_line,int height);
int LoadBMPFile(BMP_FILE bitmap,char *filename);
int UnloadBMPFile(BMP_FILE bitmap);
//创建BMP画面
LPDIRECTDRAWSURFACE7 CreatePicSurface(char *filename,int mem_flags,int colorkey);
//画面数据交换
int SurfaceToBack(LPDIRECTDRAWSURFACE7 sourcesurface,int x1,int y1,int x2,int y2,LPDIRECTDRAWSURFACE7 destsurface,int x3,int y3,int x4,int y4,int angle);
Directinput.cpp
#include <dinput.h>
//DirectInput函数
int MyDirectInputInit(void);
int MyDirectInputShut(void);
int MyDirectInputMain(void);
//DirectInput变量
extern LPDIRECTINPUT8 lpDInput; //DirectInput对象
extern LPDIRECTINPUTDEVICE8 lpDInputkey; //DirectInput键盘
//键盘缓冲
extern UCHAR keyboard_state[256];
|
|