📄 game.c
字号:
{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 + -