资源简介

前言: 作者系四川大学计算机科学系毕业,但是毕业后十几年都没有编过程序,干的工作有抄水电表,网管,销售工作,最近发现人渐渐老去,有心愿未了,于是最近跟着网络视频教学,学习了一下VC++和面向对象编程,就自已小时候最爱玩的坦克大战为练习,来熟悉和巩固对VC++的学习。 本作特点: 1. 可能是世界上最接近“坦克大战”原作的VC程序. 几乎99%相似模拟度。 2. 本作还特别包括“坦克90”加强版。 3. 即时存档,读档功能。 4. 即时回退,时光倒流功能。 5. 播放战斗录相功能。 6. 智能躲避敌方攻击的功能。(在演示状态) 7. 敌方坦克智能躲避工方攻击的功能。(在TANKE90模式) 8. 对Win7兼容性不好, 运行会变慢 9. 本作是精确到象素级的模拟原作了. 如何编译: 1. 运行VC6. 2. 用打开工作空间的方式, 打开Tank.dsw 3. 如编译出现Diretx方面的错,请下载directx8程序包http://115.com/file/clqzomlm#dx81sdk.zip 加入到你的VC6里面, 如何安装请查网上. 4. 根目录下有Tank.exe已经编译好的了, 你可以试一试, 360可能会误报, 但保证没有病毒. 不信你自已编译好后, 也可能会误报 后记: 本次放出的是DirectX版本, 如有其它问题请联系作者. 作者邮箱: romman@163.com 另外,还有一个CFrame版本,和一个WIN32版本,这两个版本效率不高,但兼容性好,有需要的联系。

资源截图

代码片段和文件信息

// Bomb.cpp: implementation of the Bomb class.
//
//////////////////////////////////////////////////////////////////////

#include “Tank.h“
#include “Bomb.h“
#include “spirit.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Bomb::Bomb()
{

}

Bomb::~Bomb()
{

}

void Bomb::DrawBomb(LPDIRECTDRAWSURFACE7 &dc)
{

LPDIRECTDRAWSURFACE7 DesBmp;

//1. 算出应该画的BOMB在源位图中的位置.
int xy;
RECT rc;

if (status==3 || status==4)
{//大爆
x=m_x2;
y=m_y2;
rc.left = (status-3) * m_width2;
rc.right = rc.left + m_width2;
rc.top = 0;
rc.bottom = rc.top + m_height2;
DesBmp=bitmap2;
}
else 
{//小爆

x=m_x1;
y=m_y1;
rc.top = 0;
rc.bottom = rc.top + m_height1;

if (status==5)  //最后一爆要重复第三爆
{
DesBmp=bitmap1;
rc.left = 2 * m_width1;
rc.right = rc.left + m_width1;
}
else
{

DesBmp=bitmap1;
rc.left = status * m_width1;
rc.right = rc.left + m_width1;
}
 
if (status>=6)  //最后显示分数
{
if (m_type>4 && m_type<255)
{

rc.left = 3 *  m_width1; //不同坦克爆炸显示不同分数
rc.right = rc.left + m_width1;
}
if (m_type<=4)
{
rc.left = (m_type/2) *  m_width1; //不同坦克爆炸显示不同分数
rc.right = rc.left + m_width1;
}
DesBmp=bitmap3;
}

}
if (type==BIGBOMB)
{
if (status>=(type+2))   //这个加2是为了显示分数时用的 加2可显示久一点
{
active=false;
}
}
else
{
if (status>=type)  
{
active=false;
}
}


//  3. 画出BOMB 透明的


if (active)
{
dc->BltFast( x+OFFSETX y+OFFSETY DesBmp &rc DDBLTFAST_SRCCOLORKEY | DDBLTFAST_WAIT );
}

//  4. BOMB的STATUS要加1
status++;


}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        766  2011-08-27 19:27  icon1.ico

     文件       5390  2011-09-14 14:54  Input.cpp

     文件       1098  2011-09-14 14:54  Input.h

     文件       5116  2011-09-29 22:49  Label.cpp

     文件       1775  2011-09-29 10:04  Label.h

     文件      15402  2011-09-30 15:20  Player.cpp

     文件       1977  2011-09-30 11:52  Player.h

     文件        823  2011-09-26 17:26  resource.h

     文件        853  2011-08-10 12:28  Score.cpp

     文件          0  2011-08-10 12:18  Score.h

     文件       4618  2011-08-24 23:39  Sound.cpp

     文件       1193  2011-08-11 17:16  Sound.h

     文件       6120  2011-09-30 11:51  Spirit.cpp

     文件       1524  2011-09-30 11:51  Spirit.h

     文件          0  2011-08-01 12:39  Star.cpp

     文件          0  2011-08-01 12:38  Star.h

     文件      21692  2011-11-08 15:23  Tank.aps

     文件       1888  2012-05-08 15:00  Tank.clw

     文件       4330  2011-09-23 14:20  Tank.dsp

     文件        531  2011-07-03 17:38  Tank.dsw

     文件     774144  2012-05-08 14:10  Tank.exe

     文件       5972  2011-10-07 13:29  Tank.h

     文件       6084  2011-08-12 19:53  tank.map

     文件      26280  2011-08-12 19:53  tank.map.txt

     文件     500736  2012-05-08 15:00  Tank.ncb

     文件      24592  1983-07-15 00:02  tank.nes

     文件      60928  2012-05-08 15:00  Tank.opt

     文件        934  2012-05-08 14:10  Tank.plg

     文件       6183  2011-10-06 19:30  Tank.rc

     文件          0  2011-07-26 12:48  TankDraw.cpp

............此处省略71个文件信息

评论

共有 条评论