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

📄 main.c

📁 GBA平台上《特训》游戏的源代码
💻 C
字号:
#include <GsGBA.h>
#include "data.h"
#include "bomb.h"
#include "sprite.h"
#include "move.h"

int GMODE;									//游戏模式
int GTIMER;									//定义一个全局的时钟

void queryKey();							//查询键盘
void VBLserver();							//VBL中断程序

//中断向量表
const IntrFuncp IntrTable[14]=
{
	VBLserver,dummy,
};

//主函数
int AgbMain()
{
	LoadGfx();						//读入图片环境初始化
	GMODE=GAMEINIT;					//游戏模式切换到初始状态
	while(1);
	return 0;
}

void queryKey()
{
	if(bomb_flag==1)				//如果爆炸了,那么返回
		return;
    KeyRead();						//读键盘
	if(Cont & U_KEY)		player.obj.VPos--;		//上移
	if(Cont & D_KEY)		player.obj.VPos++;		//下移
	if(Cont & L_KEY)		player.obj.HPos--;		//左移
	if(Cont & R_KEY)		player.obj.HPos++;		//右移动

//	移动限制
	if(player.obj.HPos >224)player.obj.HPos =224;
	if(player.obj.HPos <1)	player.obj.HPos =1;
	if(player.obj.VPos >128)player.obj.VPos =128;
	if(player.obj.VPos <1)	player.obj.VPos =1;

}

void VBLserver()							//VBL中断程序
{
	switch(GMODE)
	{
		case GAMEINIT:
			SOBJ_RESET();					//所有OBJ复位
			GTIMER=0;						
			GMODE=GAMERUN;
			break;
		case GAMERUN:						//游戏运行
			queryKey();						//键盘查询
			SOBJ_BLUT_EMIT();				//连续发射子弹
			SOBJ_Process();					//所有角色处理
			BOMB_process();					//爆炸控制
			break;
		case GAMEOVER:						//游戏结束
			GMODE=GAMEINIT;
			break;
	}

	GTIMER++;
	GsOamCopy();
	GsWaitSync();

}

⌨️ 快捷键说明

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