小游戏是男人就下100层源代码(C语言-API)+是男人就下100层声音图像资源

一直觉得是男人就下100层挺好玩的,一时兴起就自己做了一个,效果当然没有原来的好,但还是能玩的,主要是我这个人美工方面不怎么样,所以做出来的画面还是差了那么一点点。

游戏截图:

游戏下载:Man100Floor

开发工程+声音图像:Man100Floor源代码

#include <windows.h>
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
#include “resource.h”
HINSTANCE hInst;
const int DLou=6;//楼层数
int CJieTi[DLou+1]={1,2,3,3,4,4,2};//阶梯类型
int LJieTi[DLou+1];//阶梯左边距
int HJieTi[DLou+1];//阶梯高度
int WJieTi[DLou+1];//阶梯宽度
int XJieTi[DLou+1];//阶梯左上脚X坐标
int YJieTi[DLou+1];//阶梯左上脚Y坐标
int TJieTi[DLou+1];//阶梯的个性数据
const int VY_JieTi=5;
const int RefreshTime=100;//刷新时间
const int AY_Num=5;
const int VX_Num=20;
const int VY_TH=26;
int zt=0;//游戏是否开始=0等待开始=1正在进行中=2结束了
static char Text[100];
//const int FixTime=12;//计算时间片
int VX=0;//X方向速度
int LAST_VX=0;//上一次X方向速度
int MOVE_RIGHT_TIMER=0;//往右移动的次数
int MOVE_LEFT_TIMER=0;//往左移动的次数
int VY=-VY_JieTi;//Y方向速度
int AY=0;//Y方向的加速度
int ManX;//角色的X坐标
int ManY;//角色的Y坐标
static int OManX,OManY;
int pz;
int pztime;
const int GameWindowWidth=411;//游戏窗口的有效区域宽度
const int GameWindowHeight=535;//游戏窗口的有效区域高度
const int GameTopHeight=23;//游戏的有效区域上部提示信息区宽度
const int GameMainHeight=495;//游戏主区域高度
const int GameMainWidth=376;//游戏主区域宽度
const int ManWidth=16;//角色的宽度
const int ManHeight=16;//角色的高度
const int DYLou=5;//楼层Y方向均分数
const int DJieTi=10;//每层分数
const int DXJieTi=3;//阶梯X方向均分数
const int VX_TS=3;
int vx_ts=0;
int Life=10;//角色的生命值
int Num=0;
int Num_time;
static HBITMAP RoleBmp;
static HBITMAP DingZiBmp;
static HBITMAP LCBmp;
static HBITMAP JieTiBmp[6];
static HBITMAP hMemBmp;//图像缓存
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int IsJiaCeng();//判断是否需要加一层阶梯
int on(int);
int Init();
int FixMan();//处理人物的函数
HWND hwnd;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
       LPSTR lpcmdLine,int nCmdShow)
{
 hInst=hInstance;
 static TCHAR szAppName[]=TEXT(“DisplayWithScrollBar”);
 static TCHAR szClassName[]=TEXT(“DisplayWithscrlBarClass”);
 MSG msg;
 WNDCLASS wndclass;
 wndclass.style=CS_HREDRAW|CS_VREDRAW;
 wndclass.lpfnWndProc=WndProc;
 wndclass.cbClsExtra=0;
 wndclass.cbWndExtra=0;
 wndclass.hInstance=hInstance;
 wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
 wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
 wndclass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
 wndclass.lpszMenuName=NULL;
 wndclass.lpszClassName=szClassName;
 //注册窗口类
 if(!RegisterClass(&wndclass))
 {
  MessageBox(NULL,TEXT(“This promgrame requires Windows NT”),szAppName,MB_ICONERROR);
  return 0;
 }
 //创建窗口
 hwnd=CreateWindow(
  szClassName,
  TEXT(“是男人就下100层”),
  //创建窗口时,添加了WS_VSCROLL风格,以增加垂直滚动条
  WS_OVERLAPPEDWINDOW,
  50,
  100,
  420,
  571,
  NULL,
  NULL,
  hInstance,
  NULL);
 //显示窗口
 ShowWindow(hwnd,nCmdShow);
 //更新窗口
 UpdateWindow(hwnd);
 //消息循环
 while(GetMessage(&msg,NULL,0,0))
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
 return msg.wParam;
}
static HDC hdc,hdc_Role,hdc_JieTi,hdc_lp,hdc_dz;
void Draw(HDC hdc)
{
 HPEN hpen_black;
 hpen_black=CreatePen(PS_SOLID,2,RGB(255,255,255));
 int RoleSrcX=128;
 int RoleSrcY=0;
 int i;
 SelectObject(hdc,hpen_black);
 SetTextColor(hdc,RGB(207,49,211));
 SetBkMode(hdc,TRANSPARENT);
 sprintf(Text,”LIFE:%2d 第%6d层,作者:游荡男孩(site:www.cadgj.com)”,Life,Num);
 TextOut(hdc,25,0,Text,strlen(Text));
 /*绘制游戏界面的边界*/
 MoveToEx(hdc,0,GameWindowHeight,NULL);
 LineTo(hdc,GameWindowWidth,GameWindowHeight);
 MoveToEx(hdc,GameWindowWidth,GameWindowHeight,NULL);
 LineTo(hdc,GameWindowWidth,0);
 /*开始载入人物*/
 if(zt==1)
 {
  //正在进行游戏
  if(VX==0)
  {
   //静止
   if(Life>3)
   {
    RoleSrcX=128;
    RoleSrcY=0;
   }
   else
   {
    RoleSrcX=128;
    RoleSrcY=16;
   }
  }
  else if(VX>0)
  {
   if(LAST_VX>0)
   {
    MOVE_RIGHT_TIMER+=1;
    if(MOVE_RIGHT_TIMER==4)
    {
     MOVE_RIGHT_TIMER=0;
    }
   }
   else
   {
    MOVE_RIGHT_TIMER=0;
   }

   //向右运动
   RoleSrcX=MOVE_RIGHT_TIMER*16;
   RoleSrcY=16;
   if(Life<=4)
   {
    RoleSrcX+=16*4;
   }
  }
  else
  {
   //向左运动
   if(LAST_VX<0)
   {
    MOVE_LEFT_TIMER+=1;
    if(MOVE_LEFT_TIMER==4)
    {
     MOVE_LEFT_TIMER=0;
    }
   }
   else
   {
    MOVE_LEFT_TIMER=0;
   }
   RoleSrcX=MOVE_LEFT_TIMER*16;
   RoleSrcY=0;
   if(Life<=4)
   {
    RoleSrcX+=16*4;
   }

  }
  LAST_VX=VX;

 }
 else
 {
  RoleSrcX=128;
  RoleSrcY=0;
 }
 SelectObject(hdc_Role,RoleBmp);
 BitBlt(hdc,OManX,OManY,16,16,hdc_Role,RoleSrcX,RoleSrcY,SRCCOPY);
 /*开始载入左右边带动条*/
 SelectObject(hdc_lp,LCBmp);
 BitBlt(hdc,0,GameTopHeight,(GameWindowWidth-GameMainWidth)/2,GameWindowHeight-GameTopHeight,hdc_lp,0,0,SRCCOPY);
 BitBlt(hdc,GameWindowWidth-(GameWindowWidth-GameMainWidth)/2,GameTopHeight,(GameWindowWidth-GameMainWidth)/2,GameWindowHeight-GameTopHeight,hdc_lp,0,0,SRCCOPY);
 /*绘制上面的钉子*/
 SelectObject(hdc_dz,DingZiBmp);
 BitBlt(hdc,(GameWindowWidth-GameMainWidth)/2,GameTopHeight,GameMainWidth,GameWindowHeight-GameTopHeight-GameMainHeight,hdc_dz,5,0,SRCCOPY);
 /*开始绘制阶梯*/
 for(i=0;i<=DLou-1;i++)
 {
  if(CJieTi[i]==0)
  {
   SelectObject(hdc_JieTi,JieTiBmp[0]);
   //BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);
   BitBlt(hdc,XJieTi[i],YJieTi[i],WJieTi[i],HJieTi[i],hdc_JieTi,0,0,SRCCOPY);
  }
  else if(CJieTi[i]==1)
  {
   SelectObject(hdc_JieTi,JieTiBmp[1]);
   //BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);
   BitBlt(hdc,XJieTi[i],YJieTi[i],WJieTi[i],HJieTi[i],hdc_JieTi,0,0,SRCCOPY);
  }
  else if(CJieTi[i]==2)
  {
   SelectObject(hdc_JieTi,JieTiBmp[2]);
   //BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);
   BitBlt(hdc,XJieTi[i],YJieTi[i],WJieTi[i],HJieTi[i],hdc_JieTi,0,0,SRCCOPY);
  }
  else if(CJieTi[i]==3)
  {
   SelectObject(hdc_JieTi,JieTiBmp[3]);
   //BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);
   BitBlt(hdc,XJieTi[i],YJieTi[i],WJieTi[i],HJieTi[i],hdc_JieTi,0,0,SRCCOPY);
  }
  else if(CJieTi[i]==4)
  {
   SelectObject(hdc_JieTi,JieTiBmp[4]);
   //BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);
   BitBlt(hdc,XJieTi[i],YJieTi[i],WJieTi[i],HJieTi[i],hdc_JieTi,0,0,SRCCOPY);
  }
  else
  {
   SelectObject(hdc_JieTi,JieTiBmp[0]);
   //BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);
   BitBlt(hdc,XJieTi[i],YJieTi[i],WJieTi[i],HJieTi[i],hdc_JieTi,0,0,NOTSRCCOPY);
  }
 }
 if(zt==0)
 {
  SetBkColor(hdc,RGB(0,0,0));
  SetBkMode(hdc,OPAQUE);
  sprintf(Text,”按任意键开始游戏”);
  TextOut(hdc,125,250,Text,16);
 }
 if(zt==2)
 {
  SetBkColor(hdc,RGB(0,0,0));
  SetBkMode(hdc,OPAQUE);
  sprintf(Text,”按任意键重新开始游戏”);
  TextOut(hdc,120,250,Text,20);
 }
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{

 RECT rect;
 RECT rectClip;
 int Width,Height;
 static HDC MemDC;
 HDC dcMemory;
 PAINTSTRUCT ps;
 int i;
 static HPEN hpen_black,hpen_blue,hpen_red,hpen_gray;
 static HBRUSH hbrush_black,hbrush_blue,hbrush_red,hbrush_gray;
 static int nClientWidth,nClientHeight; //窗口宽高
 hpen_black=CreatePen(PS_SOLID,2,RGB(255,255,255));
 HBITMAP bmpMemory;
 switch(message)
 {
 case WM_CREATE:
  /*DC初始化*/
  hdc=GetDC(hwnd);
  GetClientRect(hwnd,&rect);
  nClientWidth=rect.right-rect.left ;
  nClientHeight=rect.bottom -rect.top ;
  hdc_Role=CreateCompatibleDC(hdc);
  hdc_JieTi=CreateCompatibleDC(hdc);
  hdc_lp=CreateCompatibleDC(hdc);
  hdc_dz=CreateCompatibleDC(hdc);
  MemDC=CreateCompatibleDC(hdc);
  /*初始化临时画布 必须*/
  hMemBmp=CreateCompatibleBitmap(hdc,nClientWidth,nClientHeight);
  SelectObject(hdc_Role,hMemBmp);
  SelectObject(hdc_JieTi,hMemBmp);
  SelectObject(hdc_lp,hMemBmp);
  SelectObject(hdc_dz,hMemBmp);
  /*载入人物的图片*/
  RoleBmp= (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP_MAN),
   IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);
  JieTiBmp[0]= (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP_BLUEFLOOR),
   IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);
  JieTiBmp[1]= (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP_SPRING),
   IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);
  JieTiBmp[2]= (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP_NAILFLOOR),
   IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);
  JieTiBmp[3]= (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP_TRANSPORT_RIGHT),
   IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);
  JieTiBmp[4]= (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP_TRANSPORT_LEFT),
   IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);
  LCBmp= (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP_TRANSPORT),
   IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);
  DingZiBmp= (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP_NAIL),
   IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);
  Init();
  return 0;
 case WM_PAINT:
  hdc=BeginPaint(hwnd,&ps);
  ::GetClipBox(hdc,&rectClip);
  Width=abs(rectClip.right-rectClip.left);
  Height=abs(rectClip.bottom-rectClip.top);
  dcMemory=CreateCompatibleDC(hdc);
  ::SetBkColor(dcMemory,::GetBkColor(hdc));
  bmpMemory=::CreateCompatibleBitmap(hdc,  Width, Height);
  ::SelectObject(dcMemory,bmpMemory);
     
    /*设置内存DC的起始点*/
    //dcMemory.SetViewportOrg(-1*rectClip.left, -1*rectClip.top);
 
    /*粉刷背景*/
    //dcMemory.FillSolidRect(&rectClip, pDC->GetBkColor());

  ::Draw(hdc);
  //::BitBlt(hdc,rectClip.left, rectClip.top, abs(rectClip.right-rectClip.left), abs(rectClip.bottom-rectClip.top),
        //dcMemory, rectClip.left, rectClip.top, SRCCOPY);
  DeleteObject(bmpMemory);
  ::DeleteObject(dcMemory);

 

  ReleaseDC(hwnd,hdc);
  EndPaint(hwnd,&ps);
  return 0;
 case WM_TIMER:
  Num_time++;
  //时间函数,重难点
  for(i=0;i<=DLou-1;i++)
  {
   YJieTi[i]-=VY_JieTi;
   if(CJieTi[i]==3||CJieTi[i]==4)
   {
    TJieTi[i]++;
    if(TJieTi[i]==3)
     TJieTi[i]=0;
   }
  }
  if(OManX+VX+vx_ts<(GameWindowWidth-GameMainWidth)/2)
   ManX=(GameWindowWidth-GameMainWidth)/2;
  else if(OManX+VX+vx_ts+ManWidth>GameWindowWidth-(GameWindowWidth-GameMainWidth)/2)
   ManX=GameWindowWidth-(GameWindowWidth-GameMainWidth)/2-ManWidth;
  else
   ManX=OManX+VX+vx_ts;
  VY+=AY;
  ManY=OManY+VY;
  if(ManY>GameWindowHeight)
   Life=0;
  if(ManY<GameWindowHeight-GameMainHeight)
   Life=0;
  /*最难的人物处理函数*/
  IsJiaCeng();
  FixMan();
  if(Life==0)
  {
   KillTimer(hwnd,1);
   zt=2;
  }
  RECT invalidRect;
  invalidRect.left=(GameWindowWidth-GameMainWidth)/2;
  invalidRect.right=GameWindowWidth-(GameWindowWidth-GameMainWidth)/2;
  invalidRect.top=GameTopHeight;
  invalidRect.bottom=GameWindowHeight;
  InvalidateRect(hwnd,&invalidRect,true);

  RECT invalidRect1;
  invalidRect1.left=(GameWindowWidth-GameMainWidth)/2;
  invalidRect1.right=GameWindowWidth-(GameWindowWidth-GameMainWidth)/2;
  invalidRect1.top=0;
  invalidRect1.bottom=GameTopHeight;
  InvalidateRect(hwnd,&invalidRect1,true);
  UpdateWindow(hwnd);
  return 0;
 case WM_KEYDOWN:
  if(zt!=1)
  {
   SetTimer(hwnd,1,RefreshTime,NULL);
   zt=1;
   Init();
  }
  if(zt==1)
  {
   switch(wParam)
   {
   case VK_LEFT:VX=-VX_Num;break;
   case VK_RIGHT:VX=VX_Num;break;
   }
  }
  return 0;
 case WM_KEYUP:
  switch(wParam)
  {
  case VK_LEFT:VX=0;break;
  case VK_RIGHT:VX=0;break;
  }
  return 0;
 case WM_DESTROY:
  //释放DC
  ReleaseDC(hwnd,hdc_Role);
  ReleaseDC(hwnd,hdc_JieTi);
  ReleaseDC(hwnd,hdc_lp);
  ReleaseDC(hwnd,hdc_dz);
  ReleaseDC(hwnd,MemDC);
  PostQuitMessage(0);
  return 0;
 }
 return DefWindowProc(hwnd,message,wParam,lParam);
}
int FixMan()
{
 int JiaoX=0;
 int JiaoY=0;
 int i;
 /*最难的碰撞部分已经解决*/
 for(i=0;i<DLou;i++)
 {
  if(OManY+ManHeight<YJieTi[i]+VY_JieTi&&ManY+ManHeight>YJieTi[i]&&JiaoY==0)
   JiaoX=OManX+int(float((YJieTi[i]+VY_JieTi-OManY-ManHeight)*(ManX-OManX))/float(ManY-OManY+VY_JieTi));
  if(JiaoX>XJieTi[i]+WJieTi[i]||JiaoX+ManWidth<XJieTi[i])
  {
   JiaoX=0;
   JiaoY=0;
  }
  else
  {
   JiaoY=YJieTi[i];
   pz=i;
   pztime=1;
   break;
  }
  if(OManY+ManHeight==YJieTi[i]+VY_JieTi&&ManY+ManHeight==YJieTi[i])
  {
   if(ManX>XJieTi[i]+WJieTi[i]||ManX+ManWidth<XJieTi[i])
   {
    VY=10;
    AY=AY_Num;
    VX=0;
    pz=DLou;
    pztime=0;
    vx_ts=0;
   }
   else
   {
    AY=0;
    VY=-VY_JieTi;
    pz=i;
    pztime++;
   }
  }
 }
 if(JiaoX==0&&JiaoY==0)
 {
  OManX=ManX;
  OManY=ManY;
 }
 else
 {
  OManX=JiaoX;
  OManY=JiaoY;
 }
 if(pz!=DLou)
  on(pz);
 sprintf(Text,”%d%d”,pz,CJieTi[pz]);
 return 0;
}
/*步上阶梯的函数*/
int on(int k)
{
 int i=k;
 /*碰到灰色阶梯*/
 if(CJieTi[i]==5)
 {
  if(pztime%4==1)
   TJieTi[i]=rand()%10;
  if((TJieTi[i]==0||TJieTi[i]==1||TJieTi[i]==2)&&pztime%4==1)
  {
   OManY=YJieTi[i]+1;
   VY=0;
   AY=AY_Num;
   pz=DLou;
   pztime=0;
  }
  else
  {
   OManY=YJieTi[i]-ManHeight;
   VY=-VY_JieTi;
   AY=0;
   pz=i;
   pztime++;
  }
 }
 /*遇到反时针方向的滑轮,已经解决*/
 else if(CJieTi[i]==4)
 {
  OManY=YJieTi[i]-ManHeight;
  VY=-VY_JieTi;
  vx_ts=-VX_TS;
  AY=0;
 }
 /*遇到顺时针方向的滑轮,已经解决*/
 else if(CJieTi[i]==3)
 {
  OManY=YJieTi[i]-ManHeight;
  VY=-VY_JieTi;
  vx_ts=VX_TS;
  AY=0;
 }
 /*碰上弹簧,已经解决*/
 else if(CJieTi[i]==1)
 {
  OManY=YJieTi[i]-ManHeight;
  VY=-VY_TH;
  VX=0;
  AY=AY_Num;
  pz=DLou;
 }
 /*碰上钉子板*/
 else if(CJieTi[i]==2)
 {
  OManY=YJieTi[i]-ManHeight;
  VY=-VY_JieTi;
  AY=0;
  if(pztime%10==1)
   Life-=3;
  if(Life<0)
   Life=0;
 }
 /*碰上蓝色板部分,已经解决*/
 else{
  OManY=YJieTi[i]-ManHeight;
  VY=-VY_JieTi;
  AY=0;
  if(pztime==1&&Life>0&&Life<10)
   Life++;
 }
 return 0;
}
/*是否需要加一个阶梯的函数,已经解决的没有问题了*/
int IsJiaCeng()
{
 int i,j;
 if(YJieTi[0]<=GameWindowHeight-GameMainHeight)
 {
  Num++;
  for(i=0;i<DLou-1;i++)
  {
   YJieTi[i]=YJieTi[i+1];
   XJieTi[i]=XJieTi[i+1];
   HJieTi[i]=HJieTi[i+1];
   WJieTi[i]=WJieTi[i+1];
   CJieTi[i]=CJieTi[i+1];
   LJieTi[i]=LJieTi[i+1];
   TJieTi[i]=TJieTi[i+1];
   if(pz!=DLou&&pz>0)
    pz-=1;
  }
  j=rand()%DJieTi;
  if(j==0||j==1||j==2||j==3)
   CJieTi[DLou-1]=0;
  else if(j==4)
   CJieTi[DLou-1]=1;
  else if(j==5)
   CJieTi[DLou-1]=2;
  else if(j==6)
   CJieTi[DLou-1]=3;
  else if(j==7)
   CJieTi[DLou-1]=4;
  else
   CJieTi[DLou-1]=5;
  LJieTi[DLou-1]=rand()%(DJieTi-DXJieTi+1);
  XJieTi[DLou-1]=LJieTi[DLou-1]*GameMainWidth/DJieTi+(GameWindowWidth-GameMainWidth)/2;
  YJieTi[DLou-1]=YJieTi[DLou-2]+GameMainHeight/DLou;
  HJieTi[DLou-1]=GameMainHeight/(DYLou*DLou);
  WJieTi[DLou-1]=GameMainWidth*DXJieTi/DJieTi;
  if(CJieTi[DLou-1]==5)
   TJieTi[DLou-1]=rand()%10;
  else
   TJieTi[DLou-1]=0;
  return 1;
 }
 else
  return 0;
}
int Init()//初始化游戏
{
 int i,j;
 while(CJieTi[2]!=0&&CJieTi[3]!=0&&CJieTi[4]!=0&&CJieTi[5]!=0)
 {
  srand( (unsigned)time( NULL ) );
  //设置随机种子保证每次随机的结果均不相同
  for(i=0;i<=DLou-1;i++)
  {
   j=rand()%DJieTi;
   if(j==0||j==1||j==2||j==3)
    CJieTi[i]=0;
   else if(j==4)
    CJieTi[i]=1;
   else if(j==5)
    CJieTi[i]=2;
   else if(j==6)
    CJieTi[i]=3;
   else if(j==7)
    CJieTi[i]=4;
   else
    CJieTi[i]=5;
  }
  //产生随机数组
 }
 //产生合理的阶梯类型数组
 for(i=0;i<=DLou-1;i++)
 {
  LJieTi[i]=rand()%(DJieTi-DXJieTi+1);
  //产生阶梯布置的随机数组
  HJieTi[i]=GameMainHeight/(DYLou*DLou);
  WJieTi[i]=GameMainWidth*DXJieTi/DJieTi;
  XJieTi[i]=LJieTi[i]*GameMainWidth/DJieTi+(GameWindowWidth-GameMainWidth)/2;
  YJieTi[i]=GameWindowHeight-GameMainHeight+i*GameMainHeight/DLou+(DYLou-1)*GameMainHeight/(DYLou*DLou);
 }
 /*计算出初始角色状态*/
 for(i=0;i<=3;i++)
 {
  if(CJieTi[i+2]==0)
  {
   OManX=XJieTi[i+2]+(WJieTi[i+2]-ManWidth)/2;
   OManY=YJieTi[i+2]-ManWidth;
   pz=i+2;
   pztime=0;
   //sprintf(Text,”%d %d”,ManX,ManY);
   //MessageBox(hwnd,Text,Text,MB_OK);
   break;
  }
  //计算出角色的位置
 }
 /*初始化人物的运动性质*/
 VX=0;
 AY=0;
 VY=-VY_JieTi;
 /*初始化各个阶梯的个性数据*/
 for(i=0;i<=DLou;i++)
 {
  if(CJieTi[i]==5)
   TJieTi[i]=rand()%10;
  else
   TJieTi[i]=0;
 }
 Life=10;
 SetTimer(hwnd,1,RefreshTime,NULL);//设置刷新计时器
 return 0;
}

此条目发表在C++分类目录。将固定链接加入收藏夹。

2 则回应给 小游戏是男人就下100层源代码(C语言-API)+是男人就下100层声音图像资源

  1. 陈文说:

    要引用什么东西啊,我是个新手,代码TextOutW不能将参数4从”char[100]”转换为”LPCWSTR”,和IntelliSense:”char*”类型的实参与”LPCWSTR”类型的型参不兼容,用的是visual studio 2010旗舰版运行的,qq:1317729347,求帮忙解决下

    • boitboy说:

      VS2005以上的版本使用的是UNICODE版本的API, 所以需要在所有的字符串上加上_T(“”), char要换成TCHAR使用,如果你不想改的化,可以将项目属性的UNICODE改为宽字节就可以了。

发表评论