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

📄 func.c

📁 GBA游戏程序
💻 C
字号:
#define __debug__
#include "demo.h"
#include "common.h"
#include "gfx\menu.h" 
//#include "gfx.h"
#include "gfx\bg\nerv.h"
#include "gfx\bg\1.h" 
#include "gfx\pal.h"
#include "gfx\bg\title.h"
int Mainmenu(){
	WaitVSync();
	BltTo(title_256_gfx,VRAM_BASE,0,0,240,160,0);
	DoScreenFadeIn(pal);
	DrawText("DemoV1",160,20,30);
	u16 loop;
	u16 i;
	u16* oamdata=OAMDATA; 	
    for(i=0;i<640;i++) oamdata[i]=m_start1_gfx[i];
	for(i=0;i<640;i++) oamdata[i+640]=m_start2_gfx[i];
	for(i=0;i<640;i++) oamdata[i+1280]=m_load1_gfx[i];
	for(i=0;i<640;i++) oamdata[i+1920]=m_load2_gfx[i];
	for(i=0;i<640;i++) oamdata[i+2560]=m_option1_gfx[i];
	for(i=0;i<640;i++) oamdata[i+3200]=m_option2_gfx[i];
	
	InitializeSprites();
	u16 y=80;
	for(i=80;i>0;i-=4){
	for(loop=0;loop<5;loop++){
		sprites[loop].attribute0=COLOR_256| SQUARE | y;
		sprites[loop].attribute1=SIZE_16| (93+16*loop-i);
		sprites[loop].attribute2=(512+8*loop)|PRIORITY(0);
	}
	for(loop=5;loop<10;loop++){
		sprites[loop].attribute0=COLOR_256| SQUARE | (y+18);
		sprites[loop].attribute1=SIZE_16| (16*loop+5+i);
		sprites[loop].attribute2=(552+8*loop)|PRIORITY(0);
	}
	for(loop=10;loop<15;loop++){
		sprites[loop].attribute0=COLOR_256| SQUARE |(y+36);
		sprites[loop].attribute1=SIZE_16| (16*loop-67-i);
		sprites[loop].attribute2=(592+8*loop)|PRIORITY(0);
	}
	WaitVSync();
	CopyOAM();
	}
	u16 sel[3]={40,0,0},tmp;
	while (1) {
		UPDATA_INPUT();
		if(PRESS_ONCE(KEY_A)) {
			for(tmp=0;tmp<3;tmp++) if(sel[tmp]==40) break;
			return tmp;
		}
		if(PRESS_ONCE(KEY_UP)) { tmp=sel[0];sel[0]=sel[1];sel[1]=sel[2];sel[2]=tmp;}
		if(PRESS_ONCE(KEY_DOWN)) { tmp=sel[0];sel[0]=sel[2];sel[2]=sel[1];sel[1]=tmp;}		
		for(loop=0;loop<5;loop++) 		sprites[loop].attribute2=(512+8*loop+sel[0])|PRIORITY(0);
		for(loop=5;loop<10;loop++) 		sprites[loop].attribute2=(552+8*loop+sel[1])|PRIORITY(0);
		for(loop=10;loop<15;loop++) 	sprites[loop].attribute2=(592+8*loop+sel[2])|PRIORITY(0);		
		WaitVSync();
		CopyOAM();
	}
}
void doSplash(){
	int loop;
	u16* _vram=(u16*) VRAM_BASE;
	clearPalette();
	for(loop=0;loop<19200;loop++) *_vram++=b1_256_gfx[loop];
	DoScreenFadeIn(pal);
	WaitTime(0,900);
	DoScreenFadeOut();
	clearPalette();
	_vram=(u16*)VRAM_BASE;
	for(loop=0;loop<19200;loop++) *_vram++=nerv_256_gfx[loop];
	DoScreenFadeIn(pal);
//	BltTo((u16*)nerv_256_gfx,(u16*)_vram,0,0,240,160,1);
	WaitTime(0,500);
	DoScreenFadeOut(); 
	for(loop=0;loop<19200;loop++) *_vram++=0;
} 
void Initgraph(){
	SetMode(MODE_4|BG2_ENABLE|OBJ_ENABLE|OBJ_MAP_1D);
    int loop=0;
	u16* _pal=(u16*)SCREEN_PALETTE;
	for(;loop<256;loop++) *_pal++=pal[loop];
	_pal=(u16*)SPRITE_PALETTE;
	for(loop=0;loop<256;loop++) *_pal++=pal[loop];
}
void Playing(){
}
void option(){
}
void startgame(LPGAMEDATA g){
	u16 loop;
	WaitVSync();
	InitializeSprites();
	CopyOAM();
	clearPalette();
	for(loop=0;loop<19200;loop++) VRAM_BASE[loop]=0x2121;
	u32 txt="初始化游戏数据···";
	DrawText(txt,60,70,55);
	g->nSaveCount=0;
	g->nPos=0;
	Initgraph();
	WaitTime(1,0);
	for(loop=0;loop<19200;loop++) VRAM_BASE[loop]=0;
//	BltTo(shop_256_gfx,VRAM_BASE,0,18,240,120,0);
}




















⌨️ 快捷键说明

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