⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game.c

📁 飞机游戏
💻 C
📖 第 1 页 / 共 5 页
字号:
        {13,        6,                          20,                                   25},
        {  3,        4,                          11,                                   30},
        {23,        6,                          FLY_BULLET_JG_TYPE,        20},
        {16,        6,                          10,                                   35},
        {13,        5,                           6,                                    25},
        {  3,        5,                          19,                                   20},
        {12,        6,                          17,                                   25}
    }
};

///////////////////////////////////////////////////////////////////////////////////
// 每关固定飞机出现顺序信息
///////////////////////////////////////////////////////////////////////////////////

GT_U8 gFly_MissionEnemy[5][MISSION_MAX_NUM] =
{
// 第一关 出现的敌人
    {
        1   , 2  , 4  , 38 , 44 , 19 , 39 , 22  , 45 , 26 ,
        46 , 25 , 43 , 36 , 40
    },
// 第二关 出现的敌人
    {
        5  , 2  , 4  , 24 , 29 , 27 , 46 , 21  , 23 , 39 ,
        45, 30 , 28 , 33 , 35
    },
// 第三关 出现的敌人
    {
        6  , 4 , 3  , 43 , 20 , 39 , 23 , 31  , 45 , 34 ,
        38 , 46 , 37 , 32 , 41
    },
// 第四关 出现的敌人
    {
        19 , 45 , 20 , 46 , 19 , 45 , 20 , 46 , 19 , 45,
        20 , 46 , 19 , 45 , 20
    },
// 第五关 出现的敌人
    {
        46 , 44 , 43 , 22 , 20 , 39 , 23 , 31  , 45 , 34 ,
        38 , 46 , 37 , 32 , 41
    },
};

FLY_SHOOTPOINT gFly_allBossShootpoint[5][6] = //注:第三个射击点为中间点
{
    {22, 46 , 102, 46 , 60, 64 , 40, 40 , 84, 40  , 58, 62 },
    {20, 60 , 88, 60   , 52, 70 , 8, 36 , 96, 36  , 52, 72 },
    {48, 48 , 150, 48 , 98, 55 , 58, 50 , 140, 50, 96, 58 },
    {48, 30 , 102, 30 , 74, 52 , 60, 40 , 82, 40  , 72, 52 },
    {38, 38 , 126, 38 , 82, 48 , 72, 18 , 90, 18  , 80, 48 },
};
GT_S8  gFly_bullet_spd_SL[18] =
{
    -2, 1, -2, 2, -1, 2, -1, 3, 0, 3, 1, 3, 1, 2, 2, 2, 2, 1
};

GT_S8  gFly_bullet_spd_SG[6] =
{
    -1, 4, 0, 4, 1, 4
};

GT_S8 gFly_bullet_spd_MisIdx[] =
{
    0, -7 , -3, -7 , -5, -5 , -7, -3 ,
    -7, 0 , -7, 3  , -5, 5  , -3, 7  ,
    0, 7  , 3, 7  , 5, 5  , 7, 3  ,
    7, 0  , 7, -3  , 5, -5  , 3, -7
};

GT_S8  gFly_bullet_spd_BulToPlayer[48] =
{
    0, 2, 1, 2, 1, 1, 2, 1, 2, 1 , 2, 1, 2, 0, 2, -1, 2, -1, 2, -2 , 1, -2, 1, -2, 0, -3,  //以3的速度标准
    -1, -3, -1, -1 , -2, -1, -2, -1, -2, -1, -2, 0, -3, 1 , -2, 1, -1, 1, -1, 1, -1, 3
};
// {0,5,1,4,3,4,3,3,4,3 , 4,1,0,5,4,-1,4,-3,3,-3 , 3,-4,1,-4,0,-5,//以5的速度标准 有点快
// -1,-4,-3,-4 , -3,-3,-4,-3,-4,-1,-5,0,-4,1 , -4,3,-3,3,-3,4,-1,4};
/*
FLY_EXT_DAT GT_S8 gFly_bullet_spd_FollowArith[]={
        0,-7 , -3,-7 , -5,-5 , -7,-3 ,
        -7,0 , -7,3   , -5,5   , -3 ,7  ,
        0,7  , 3 ,7    , 5 ,5   ,  7  ,3  ,
        7,0  , 7,-3   , 5 ,-5  ,  3 ,-7
    };
*/
FLY_PLAYERBULLET  gFly_PlayerBulletParameter[53] =  //玩家子弹的坐标和速度
{
    0, 2, 0, 0, -20,     0, 14, 0, 0, -20,
    1, 2, 0, 0, -20,     1, 14, 0, 0, -20,
    0, 2, 0, -2, -20,   0, 14, 0, 2, -20,    1, 8 , 0, 0, -22,
    1, 2, 0, 0, -18,     1, 14, 0, 0, -18,    0, 8 , 0, 0, -25,   2, 2, 0, -4, -20,   3, 16, 0, 4, -20,
    1, 2, 0, 0, -18,     1, 14, 0, 0, -18,    0, 8 , 0, 0, -25,   2, 2, 0, -4, -20,   3, 16, 0, 4, -20,   4, -2, 0, -14, -20,   5, 18, 0, 14, -20,

    0, 12, 0, 0, -22,
    0, 4, 0, 0, -22,    0, 18, 0, 0, -22,
    0, 2, 0, 0, -22,    0, 20, 0, 0, -22,    1, 12, 0, 0, -24,
    0, -2, 0, 0, -22,   0, 24, 0, 0, -22,   1, 6, 0, 0, -24,   1, 16, 0, 0, -24,
    0, -2, 0, -2, -22, 0, 24, 0, 2, -22,   1, 2, 0, 0, -24,   1, 20, 0, 0, -24,   1, 12, 0, 0, -26,

    1, 12, -4, 0, -22,
    0, 2, 0, -2, -28,   0, 24, 0, 2, -28,   2, 12, -4, 0, -22,
    0, 2, 0, -2, -28,   0, 24, 0, 2, -28,   2, 10, -4, 0, -22,  2, 16, -4, 0, -22,
    0, 2, 0, -2, -28,   0, 24, 0, 2, -28,   2, 12, -4, 0, -22,  3, 6, -2, 0, -22,    4, 18, -2, 0, -22,
    0, 2, 0, -4, -28,   0, 24, 0, 4, -28,   2, 10, -5, 0, -22,  2, 16, -5, 0, -22,  3, 4, -2, 0, -22,   4, 22, -2, 0, -22,
};

GT_S8 gFly_PlayerBulletNum[3][6] =  //每层火力发射的子弹个数
{
    {
        2, 2, 3, 5, 7  , 0
    },
    {
        1, 2, 3, 4, 5  , 19
    },
    {
        1, 3, 4, 5, 6  , 34
    }
};

GT_S8 gFly_PlayerBulletPower[3][5] =  //每层火力子弹威力
{
    {
        5, 6, 5, 4, 4  //28
    },
    {
        16, 11, 10, 9, 8  //40
    },
    {
        11, 5, 5, 5, 5  //30
    }
    /*
     {
      6,7,5,4,4  //28
     },
     {
      16,12,10,9,9  //45
     },
     {
      13,6,6,6,6  //36
     }
    */
};


GT_S8 gFly_EneBul_To_Front_Parameter[] =
{
    0, 4,
    -1, 4,     1, 4,
    -1, 4,     0, 4,    1, 4,
    -1, 4,     0, 4,    1, 4,   0, 0,
    -2, 3,   -1, 4,    0, 4,   1, 4,   2, 3,
    -2, 3,   -1, 4,    0, 4,   1, 4,   2, 3,   0, 0,
};

//物品爆率表
GT_S8 gFly_GetGoodsList[FLY_GET_GOODS_LIST_MAXNUM] =
{
    FLY_GOODS_SGEM , FLY_GOODS_SGEM , FLY_GOODS_SGEM ,
    FLY_GOODS_LGEM , FLY_GOODS_LGEM , FLY_GOODS_LGEM ,
    FLY_GOODS_BULLET , FLY_GOODS_BULLET ,
    FLY_GOODS_MAXBULLET ,
    FLY_GOODS_BOMB1 ,
    FLY_GOODS_BOMB2 ,
    FLY_GOODS_BOMB3 ,
    FLY_GOODS_BOMB4 ,
    FLY_GOODS_LIFE1 ,
    FLY_GOODS_MISBULLET_S , FLY_GOODS_MISBULLET_S ,
    FLY_GOODS_MISBULLET_M , FLY_GOODS_MISBULLET_M ,
    FLY_GOODS_DESTROYALLBULLETS , FLY_GOODS_DESTROYALLBULLETS ,
};

GT_U32 gFly_ScoreList[] =
{
    5000 , 20000 , 50000 , 100000 , 150000 , 200000 , 300000 , 350000 , 400000 , 450000 ,
    500000 , 600000 , 650000 , 700000 , 750000 , 800000 , 850000 , 900000 , 950000 , 1000000 ,
    1050000 , 1100000 , 1150000 , 1200000 , 1250000 , 5000000
};


GT_U8 gFly_GameSecretList[FLY_SECRETNUM_MAX][10] =  //游戏秘籍对照表
{
    {KE_MENU_RELEASE , KE_UP_PRESS , KE_UP_PRESS , KE_UP_PRESS , KE_DN_PRESS ,              //自动发子弹
        KE_DN_PRESS , KE_PREV_PRESS , KE_PREV_PRESS , KE_NEXT_PRESS , KE_NEXT_PRESS},
    {KE_MENU_RELEASE , KE_NEXT_PRESS , KE_DN_PRESS , KE_PREV_PRESS , KE_PREV_PRESS ,         //火力全满
     KE_DN_PRESS , KE_NEXT_PRESS , KE_DN_PRESS , KE_DN_PRESS , KE_UP_PRESS},
    {KE_MENU_RELEASE , KE_PREV_PRESS , KE_DN_PRESS , KE_NEXT_PRESS , KE_NEXT_PRESS ,        //保险全满
     KE_DN_PRESS , KE_PREV_PRESS , KE_NEXT_PRESS , KE_NEXT_PRESS , KE_DN_PRESS},
    {KE_MENU_RELEASE , KE_UP_PRESS , KE_DN_PRESS , KE_UP_PRESS , KE_DN_PRESS ,             //生命全满
     KE_NEXT_PRESS , KE_UP_PRESS , KE_PREV_PRESS , KE_UP_PRESS , KE_UP_PRESS},
    {KE_MENU_RELEASE , KE_DN_PRESS , KE_PREV_PRESS, KE_UP_PRESS , KE_PREV_PRESS ,          //游戏继续次数无限制
     KE_DN_PRESS , KE_NEXT_PRESS , KE_NEXT_PRESS , KE_PREV_PRESS , KE_UP_PRESS},
    {KE_MENU_RELEASE , KE_NEXT_PRESS , KE_PREV_PRESS , KE_DN_PRESS , KE_PREV_PRESS,       //积分翻倍
     KE_NEXT_PRESS , KE_UP_PRESS , KE_UP_PRESS , KE_DN_PRESS , KE_DN_PRESS},
    {KE_MENU_RELEASE , KE_PREV_PRESS , KE_NEXT_PRESS , KE_UP_PRESS , KE_NEXT_PRESS ,        //无敌状态
     KE_PREV_PRESS , KE_PREV_PRESS, KE_DN_PRESS , KE_UP_PRESS , KE_NEXT_PRESS},
};

/*----------------------------------------------------------------------------*/
/*
Name  :  RockGetSysTimerCount
Desc  :  得到系统Timer的count值
Param  :
Return  :
Global  :

Note  :
Author  :
Log  :
*
*   hxy   2007/09/12   用于随机数产生
*
*/
/*----------------------------------------------------------------------------*/
UINT32 RockGetSysTimerCountFly(void)
{
#ifdef __arm
    return Timer_GetCount(SCNF_TIMER_OS);
#else
    return 0;
#endif

}

/*----------------------------------------------------------------------
Name  :  GetRamdom
Desc  :  获取随机数(0-255)
Params:  只在ARM环境上可用
Return:
Author:  System Author
Date  :  070830
----------------------------------------------------------------------*/
UINT8 GetRadomFly(void)
{
    UINT32 I = RockGetSysTimerCountFly();
    UINT8 Radom = (((I >> 24) + (I >> 16) + (I >> 8) + I) & 0xff);

    return Radom;
}

/************************************************************************
Desc  : 获取随机位置
Param: maxValue  随机参数根据机率大小而定
Return:value%maxValue
Global:无
Author:xiexiuxie
*************************************************************************/
INT32U GetPositiveRandFly(INT16U maxValue)
{
    INT16U value;
#ifdef __arm
    value = GetRadomFly();
#else
    value = rand();
#endif



    // value = rand();
    if (maxValue == 0)
    {
        return 0;
    }
    return value % maxValue;

}
/***********************************************************************
* 说明:    开始游戏初始化
* 输入参数:  无
* 返回值  : true-成功  false-失败
* 修改历史:
* 版本     日期       作者    改动内容和原因
*------------------------------------------------------
* 1.0    9/10/2007                   lcy            基本的功能完成
***********************************************************************/
//FLY_ATTR_TXT
GT_BOOL Fly_StartInit()
{
    gFly_ContinueNum = 5;
    gFly_PressKey = FALSE;
    gFly_Timer = TRUE;
    gFly_SelectCyc = TRUE;
    gFly_Select = 0;
    gFly_GamPause = 0;
    ok_OR_PAUSE = 0;
    gFly_MissionComplete = FALSE;
    gFly_GameOver = FALSE;
    gFly_GameFinish = FALSE;
    gFly_BombFlag = FALSE;
    gFly_PlayerFire = FALSE;
    gFly_Mission = 1;
    gFly_ScrCount = 1;
    gFly_PlyerInit = 1;
    gFly_PlayerScore = 0;
    gFly_MisBulletType = 0;
    gFly_CurMisBulletNum = 0;
    gFly_PlayerOtherBomb = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -