📄 game.h
字号:
/******************************************************************/
/* Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved. */
/*******************************************************************
File : game.h
Desc : 游戏
Author : liaochaoyang
Date : 2007-08-27
Notes :
$Log: game.h,v $
Revision 1.6 2007/12/29 01:56:43 Liaochaoyang
no message
Revision 1.5 2007/10/30 13:24:41 Liaochaoyang
修改了随机数的产生机制!
Revision 1.4 2007/10/29 12:56:11 Liaochaoyang
去掉了ARM编译时的warning
修改了板子上运行时不能进入中间选项的bugs
Revision 1.3 2007/10/12 02:50:15 Liaochaoyang
no message
Revision 1.2 2007/10/08 02:19:54 Lingzhaojun
添加CVS版本自动注释脚本
*********************************************************************/
#ifndef __FLY_
#define __FLY_
//#define FLY_DEBUG //调试用
#define FLY_ENCRYPT //是否加解密
#define GAME_PASSWORD //需密码进入
#define FLY_RELEASE_DATE 10102000 //版本日期
typedef INT8U GT_U8;
typedef INT16U GT_U16;
typedef INT32U GT_U32;
typedef INT8S GT_S8;
typedef INT16S GT_S16;
typedef INT32S GT_S32;
typedef int GT_BOOL;
#define true TRUE
#define false FALSE
#define SHUTDOWN_PIO (GPIO_PDAT0) //低电关机
#define Fly_GetRand( maxValue ) (GetPositiveRandFly(maxValue))
//Save
#define FLY_SAVE_PATH "A:\\系统\\数据\\游戏\\"
#define FLY_SAVE_FILE "FLY SAV"
#define FLY_FLYMUSIC_FILE "FLYMUSICAUI"
#define FLY_SAVE_FILE_LEN 70
#define PASSWORDPATH "A:\\系统\\配置"
//Timer
//#define FLY_TIMER 11
//游戏秘籍
typedef enum
{
FLY_AUTOFIRE = 0, //自动发子弹
FLY_MAXFIRE, //火力全满
FLY_MAXBOMB, //保险全满
FLY_MAXLIFE, //生命全满
FLY_CONTINUE, //游戏继续次数无限制
FLY_DOUBLESCORE, //积分翻倍
FLY_UNBEATABLE, //无敌状态
FLY_SECRETNUM_MAX //秘籍总个数
}FLYSECRETIDX;
//Key
typedef enum
{
FLY_KEYMAP_UP = 0, //影射键盘上
FLY_KEYMAP_DOWN, //影射键盘下
FLY_KEYMAP_LEFT, //影射键盘左
FLY_KEYMAP_RIGHT, //影射键盘右
FLY_KEYMAP_FIRE, //影射键盘开火
FLY_KEYMAP_BOMB, //影射键盘放炸弹
FLY_KEYMAP_MENU //影射键盘放炸弹
}FLYKEYIDX;
//Screen
#define FLY_SCREENSCROLL_SPD 2 //屏幕移动速度
#define FLY_BackScr_HIGH1 2000 //背景高度
#define FLY_BackScr_HIGH2 2100 //背景高度
#define FLY_BackScr_HIGH3 2100 //背景高度
#define FLY_BackScr_HIGH4 986 //背景高度
#define FLY_BackScr_HIGH5 1746 //背景高度
//游戏工作区坐标
#define FLY_WORKSPACE_X 0 //屏幕工作区坐标
#define FLY_WORKSPACE_Y 0 //屏幕工作区坐标
#define FLY_WORKSPACE_MAX_X 240 //屏幕工作区坐标
#define FLY_WORKSPACE_MAX_Y 320 //屏幕工作区坐标
#define FLY_SCORE_X 170 //显示分数坐标
#define FLY_SCORE_Y 10 //显示分数坐标
#define FLY_LIFE_X 6 //显示生命坐标
#define FLY_LIFE_Y 6 //显示生命坐标
#define FLY_BOMB_X 6 //显示炸弹坐标
#define FLY_BOMB_Y 16 //显示炸弹坐标
#define FLY_CONFIG_X 138 //游戏设置音量X坐标
#define FLY_CONFIG_Y 70 //游戏设置Y坐标
// 游戏运行参数
#define FLY_ALL_GATES 5 //游戏总关数
#define FLY_ENEMY_MAX 5 //屏幕上允许同时出现的最多敌人
#define FLY_BULLET_MAX 100 //屏幕上允许同时出现的最多子弹个数
#define FLY_MISBULLET_MAX 4 //屏幕上允许同时出现的最多导弹个数
#define FLY_BLAST_MAX 30 //屏幕上允许同时出现爆炸点的个数
//#define FLY_ACT_BACKOBJECT_MAX 5 //屏幕上允许同时出现移动背景个数
#define FLY_GOODS_MAX 6 //屏幕上允许出现的物品最多个数
#define FLY_BOMB_MAX 6 //最大保险个数
#define FLY_LIFE_MAX 6 //最大生命个数
#define FLY_MISBULLET_WIDE_S 8 //跟踪导弹宽度
#define FLY_MISBULLET_HIGH_S 8 //跟踪导弹高度
#define FLY_MISBULLET_WIDE_M 6 //直发导弹宽度
#define FLY_MISBULLET_HIGH_M 28 //直发导弹高度
#define FLY_MISBULLET_TYPE_M 1 //直发导弹类型
#define FLY_MISBULLET_TYPE_S 2 //跟踪导弹类型
typedef enum
{
DIRECTION_UP = 0, //方向
DIRECTION_DOWN,
DIRECTION_LEFT,
DIRECTION_RIGHT,
DIRECTION_LEFTUP,
DIRECTION_RIGHTUP,
DIRECTION_LEFTDOWN,
DIRECTION_RIGHTDOWN
}FLYDIRECTIONIDX;
#define FLY_PLAYER_MAXNUM 3 //最大玩家数
//敌人种类
#define FLY_ENEMY_MAXNUM 46 //最大敌人种类
#define FLY_ENEMY_REVOLVE FLY_ENEMY_MAXNUM-1 //循环显示的飞机
#define FLY_BOSS_TYPE 200 //BOSS类型
#define FLY_BOSS_STRATNUM FLY_ENEMY_MAXNUM+1 //BOSS类型开始编号
#define FLY_BOSS_MAXNUM 5 //最大BOSS种类 (200以后是BOSS类型)
#define FLY_BOSS1 FLY_BOSS_TYPE+1
#define FLY_BOSS2 FLY_BOSS_TYPE+2
#define FLY_BOSS3 FLY_BOSS_TYPE+3
#define FLY_BOSS4 FLY_BOSS_TYPE+4
#define FLY_BOSS5 FLY_BOSS_TYPE+5
//子弹种类
#define FLY_BULLET_MAXNUM 21 //最大子弹种类 前三种为玩家子弹
#define FLY_BULLET_JG_TYPE FLY_BULLET_MAXNUM //为激光类型
#define FLY_BULLET_JG_DELAY 20 //激光持续时间
//物品定义
typedef enum
{
FLY_GOODS_BOMB1 = 1, //保险1
FLY_GOODS_BOMB2, //保险2
FLY_GOODS_BOMB3, //保险3
FLY_GOODS_BOMB4, //保险4
FLY_GOODS_SGEM, //小金币
FLY_GOODS_LGEM, //大金币
FLY_GOODS_BULLET, //子弹
FLY_GOODS_MAXBULLET, //全子弹
FLY_GOODS_MISBULLET_S, //跟踪导弹
FLY_GOODS_MISBULLET_M, //直射导弹
FLY_GOODS_DESTROYALLBULLETS, //销毁全屏子弹
FLY_GOODS_LIFE1, //生命1
FLY_GOODS_LIFE2, //生命2
FLY_GOODS_LIFE3 //生命3
}FLY_GOODSLIST;
//物品种类
#define FLY_GOODS_MAXNUM FLY_GOODS_LIFE3 //最大物品种类
#define FLY_GET_GOODS_LIST_MAXNUM 20 //物品爆率表大小
//爆炸种类
#define FLY_BLAST_MAXNUM 8 //最大爆炸种类
#define FLY_PLYER_BLAST_TYPE 8 //玩家爆炸类型
//保险种类
#define FLY_BOMB_MAXNUM 4 //最大保险种类
#define FLY_PLAYER_BOMB1 1 //玩家保险1
#define FLY_PLAYER_BOMB2 2 //玩家保险2
#define FLY_PLAYER_BOMB3 3 //玩家保险3
#define FLY_PLAYER_BOMB4 4 //即时保险4
//BOSS子弹串
#define FLY_BOSSBULLET_MAXNUM 8 //最大子弹序列数
#define FLY_BOSS1_SHOOT_POINT 3 //可以发射子弹的点数
//每关最大敌人种类
#define MISSION_MAX_NUM 15 //每关最大敌人种类
///////////////////////////////////////////////////////////////////////////////////
// 游戏结构
///////////////////////////////////////////////////////////////////////////////////
// 玩家角色定义
typedef struct
{
GT_U8 type; //类型
GT_S16 x; //横向坐标
GT_S16 y; //纵向坐标
GT_U8 spd; //移动速度
GT_S8 life; //生命个数
GT_S8 bombNum; //保险个数
GT_U8 picIdx; //当前调用图片序号
GT_U8 power; //当前子弹威力
}FLY_PLAYER;
// 敌人角色定义
typedef struct
{
GT_U8 type; //类型
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -