程序设计实训报告
坦克大战
专业班级:        装控1401         
实习时间:2015710日至714
实习地点:          401           
  1        赵振华           
  2        许晨欢           
  3        蒋绪涛           
考勤(10%
文档(30%
创意及实现(30%
视频
30%
总成绩
100%
个人分
成员1
成员2
成员3

一、作品概述
1.1 创新点:
1、自定义并命名树林和钢板精灵,设置树林属性为不接受碰撞可以自由穿梭,钢板为接受任何碰撞但不做任何处理(即子弹和坦克均不能摧毁钢板)
2、添加坦克发炮、击中目标和坦克移动的特殊声效。
12 概述:
这款游戏是我们QWER小组以经典90版坦克大战为背景制作的坦克大战的改编款,玩家通过控制坦克摧毁敌方坦克来保卫主基地不被摧毁。当敌我双方坦克相碰或己方基地被子弹摧毁时游戏结束(敌我双方子弹均可摧毁基地),每隔3秒钟出现一辆敌方坦克,游戏最大时长为100秒。此款游戏与经典90版坦克大战较为相似,操作简单,能唤起我们对童年的回忆。
二、功能设计
玩家坦克与敌方坦克在街道中进行巷战,玩家坦克被击中或与敌方坦克相撞、玩家指挥部被击中或游戏时间到,一局游戏结束。
按下空格键后游戏开始,空格开始消失,载入地图,100秒倒计时开始,并把玩家坦克设置在指挥部左侧。
游戏时间到,玩家坦克被敌方坦克摧毁,与敌方坦克相撞,或者玩家指挥部被摧毁,一局游戏结束,游戏回到初始界面,并显示上一局的分数。
玩家用WASD键控制坦克上、下、左、右运行,按J键开炮。坦克行进过程中有特殊声效,坦克发射或击中目标都有相应的声效。玩家坦克碰到墙和钢板就停下来,需要调转方向才能继续前进。玩家坦克开炮,一炮就能摧毁一块墙或者一辆敌方坦克,但不能摧毁钢板,玩家可穿梭于树林中。玩家每摧毁一辆敌方坦克,加1分。
玩家指挥部被坦克或者炮弹(不管玩家还是敌方)碰上,都会被摧毁。
每隔3秒钟,就会产生一辆敌方坦克。敌方坦克每隔一段时间,就自动开炮。敌方坦克遇到墙就会停下来。停下来的坦克,前方的墙如果被摧毁了,又能继续前进。每隔几秒钟,敌方坦克就会顺时针变换一个方向前进。每局最大时长为100秒。
三、功能实现
3.1 数据结构
struct Weapon
{
char        szName[128];                // 精灵名称
    float        fPosX,  fPosY;        // 精灵坐标
    float        fSpeedX,  fSpeedY;    // XY方向上速度
    float        fFireTime;              // 敌方坦克距下一次开炮的剩余时间
    float fRotateTime;
    int        iHp;                      // 生命值
    int        iDir;                    // 朝向:0 - 上方;1 - 右方;2 - 下方;3 - 左方
    int        iType;                // 类型: 0 - 我方坦克;1 - 敌方坦克;2 - 我方
// 子弹; 3 - 敌方子弹
    Weapon* pNext;                    // 指向下一个节点的指针
};c语言游戏编程题经典100例
   
enum  Direction{
    UP        =    0,                    // 上方
    RIGHT    =    1,                // 右方
    DOWN    =    2,                    // 下方
    LEFT        =    3                // 左方
};
enum  Role
{
    MYTANK        =    0,            // 我方坦克
    ENEMYTANK    =    1,            // 敌方坦克
    MYBULLET    =    2,            // 我方子弹
    ENEMYBULLET      =    3        // 敌方子弹
};
const  float    GAME_TIME        =    100.f;          // 一局游戏时间
const  float    CREATE_TANK_TIME =    2.f;        // 每批次生成坦克的时间间隔
const  float    TANK_SPEED        =    20.f;          // 坦克速度
const  float    BULLET_SPEED    =    30.f;        // 子弹速度
const  float    FIRE_TIME        =    2.f;                    // 坦克开炮时间间隔
const  float    WORLD_LEFT        =    -26.f;    // 游戏场景边界左值
const  float    WORLD_TOP        =    -22.f;    // 游戏场景边界左值

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。