DXライブラリPortable v0.5.7 UTF8版 RPGテスト v0.02
こちらのソースコードは、全角の空白文字も使用しています。
たくさん勉強したい方は、このページを お気に入りに登録しておくといいかもです
main.c
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #include <dxlibp.h>
- #include <stdio.h>
- #include <string.h>
-
-
-
-
-
-
-
- #define SCREEN_WIDTH 480
- #define SCREEN_HEIGHT 272
-
- #ifndef PSP_MODULE_KERNEL
- #define PSP_MODULE_KERNEL 0x1000
- #endif
- #ifndef PSP_MODULE_USER
- #define PSP_MODULE_USER 0
- #endif
-
- #define MP3_EXIST 1
- #define MP3_NOT_EXIST 0
-
- #define MUKI_SHITA 0
- #define MUKI_HIDARI 1
- #define MUKI_MIGI 2
- #define MUKI_UE 3
-
- #define Hero_STOP 0
- #define Hero_MOVE 1
-
- #define XVI_COLOR_DARKGREEN 0xFF008000
- #define XVI_COLOR_YELLOW 0xFF00FFFF
- #define XVI_COLOR_LIGHTBLUE 0xFFE6D8AD
-
- #define BGM_FILE "ms0:/MUSIC/RPG/BGM.mp3"
-
- #define GRPH_FILE_NOWLOADING "ms0:/PICTURE/RPG/LOADING.png" 画像
- #define GRPH_FILE_HERO "ms0:/PICTURE/RPG/HERO.png" 画像
- #define GRPH_FILE_BG "ms0:/PICTURE/RPG/GRASS.png"
-
-
-
-
-
- const char *pic_filename[]={
- GRPH_FILE_BG,
- GRPH_FILE_HERO,
- "おわる"
- };
-
- int HANDLE_mp3;
- int flag_mp3;
-
- int HANDLE_Graph_Hero[4][3];
- int PIC_Walk_Step[4] = { 1,0,1,2 };
-
- int HANDLE_Graph_BG;
-
-
-
-
- int main(void);
- void action(void);
- void game_title(void);
- int BeginCheck(void);
- void games(void);
- void games_finish(void);
- void Draw_haikei(void);
- void ScreenSettings(void);
- void mp3checker();
- int initton(void);
- void Display_NowLoading(void);
- int pic_load(void);
- int Is_ALL_pic_Exist(void);
- int Pic_Mapping(void);
-
-
-
-
- PSP_MODULE_INFO("PSP_RPG", PSP_MODULE_USER, 0, 2);
- PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
- PSP_HEAP_SIZE_KB(16*1024);
- PSP_MAIN_THREAD_STACK_SIZE_KB(512);
-
-
-
-
- int main(void)
- {
- DxLib_Init();
-
- if(initton() == 0)
- action();
-
- DxLib_End();
- return(0);
- }
-
-
-
-
- int initton(void)
- {
- ScreenSettings();
-
-
- mp3checker();
-
-
- return( pic_load() );
- }
-
-
-
-
- void ScreenSettings()
- {
- SetDisplayFormat(DXP_FMT_8888);
- SetWaitVSyncFlag(TRUE);
- SetDrawArea(0,0,480,272);
- SetDrawMode(DX_DRAWMODE_NEAREST);
- SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0);
- SetDrawBright(255,255,255);
- SetGraphMode(480, 272, DXP_FMT_8888);
- ClearDrawScreen();
-
- ChangeFontType(DX_FONTTYPE_NORMAL);
- }
-
-
-
-
- void action(void)
- {
- if(BeginCheck() == -1) return;
-
- games();
- games_finish();
- }
-
-
-
-
- void game_title(void)
- {
- DrawBox(0,0,480,272,DXP_COLOR_BLUE,TRUE);
- DrawFormatString(120, 40,XVI_COLOR_YELLOW,"『RPG TEST v0.02』");
- if(flag_mp3 == MP3_NOT_EXIST)
- DrawFormatString(80, 80,DXP_COLOR_GRAY,"音楽は鳴りません");
- else
- DrawFormatString(80, 80,DXP_COLOR_WHITE,"音楽が鳴ります(ループします)");
-
- DrawFormatString(80, 120,DXP_COLOR_WHITE,"Lトリガー押しで終了");
- DrawFormatString(80, 180,XVI_COLOR_LIGHTBLUE,"○ボタン押しで始まります");
-
- ScreenFlip();
- }
-
-
-
-
- int BeginCheck(void)
- {
- do {
- game_title();
-
- ProcessMessage();
-
- if((GetInputState()) == DXP_INPUT_LTRIGGER) return(-1);
-
- }while((GetInputState()) != DXP_INPUT_CIRCLE);
-
- return(0);
- }
-
-
-
-
- void games(void)
- {
-
- int Hero_MUKI = MUKI_SHITA;
-
-
- int Hero_Step = 0;
-
-
- int Hero_MOVE_flag = Hero_STOP;
-
-
-
- if(flag_mp3 == MP3_EXIST)
- PlaySoundMem( HANDLE_mp3, DX_PLAYTYPE_LOOP, TRUE);
-
-
- while(1) {
- ProcessMessage();
- switch(GetInputState()) {
-
- case DXP_INPUT_LTRIGGER: {
- if(flag_mp3 == MP3_EXIST) {
- StopSoundMem( HANDLE_mp3 );
- DeleteSoundMem( HANDLE_mp3 );
- }
- return;
- }
-
- case DXP_INPUT_UP: {
- if(Hero_MOVE_flag == Hero_STOP) {
- Hero_MUKI = MUKI_UE;
- Hero_MOVE_flag = Hero_MOVE;
- }
- break;
- }
-
- case DXP_INPUT_DOWN: {
- if(Hero_MOVE_flag == Hero_STOP) {
- Hero_MUKI = MUKI_SHITA;
- Hero_MOVE_flag = Hero_MOVE;
- }
- break;
- }
-
- case DXP_INPUT_LEFT: {
- if(Hero_MOVE_flag == Hero_STOP) {
- Hero_MUKI = MUKI_HIDARI;
- Hero_MOVE_flag = Hero_MOVE;
- }
- break;
- }
-
- case DXP_INPUT_RIGHT: {
- if(Hero_MOVE_flag == Hero_STOP) {
- Hero_MUKI = MUKI_MIGI;
- Hero_MOVE_flag = Hero_MOVE;
- }
- break;
- }
-
- }
-
- ++Hero_Step;
- Hero_Step = (Hero_Step & 63);
- if(Hero_Step == 0)
- Hero_MOVE_flag = Hero_STOP;
-
-
- Draw_haikei();
-
- DrawGraph( 224,104,HANDLE_Graph_Hero[Hero_MUKI][ PIC_Walk_Step[(Hero_Step>>4)] ],TRUE );
-
-
- if(flag_mp3 != MP3_EXIST)
- DrawFormatString(240, 190,DXP_COLOR_BLUE,"音声ファイル無いよ〜");
-
- DrawFormatString(240, 220,DXP_COLOR_WHITE,"Lトリガー押しで終了");
- ScreenFlip();
- }
- }
-
-
-
-
-
-
-
-
- void games_finish(void)
- {
- int x,y;
-
-
- if(flag_mp3 == MP3_EXIST) {
-
- StopSoundMem( HANDLE_mp3 );
-
- DeleteSoundMem( HANDLE_mp3 );
- }
-
-
- DeleteGraph(HANDLE_Graph_BG);
-
- for(y=0; y<4; ++y) {
- for(x=0; x<3; ++x) {
- DeleteGraph(HANDLE_Graph_Hero[y][x]);
- }
- }
- }
-
-
-
-
- void Draw_haikei()
- {
- unsigned int x,y;
-
- for(x=0; x<12; x++) {
- for(y=0; y<8; y++) {
- DrawGraph( (x<<5)+48,(y<<5)+8,HANDLE_Graph_BG,FALSE );
- }
- }
-
- DrawBox( 0, 0, 48,272,DXP_COLOR_BLACK,TRUE);
- DrawBox(432, 0,480,272,DXP_COLOR_BLACK,TRUE);
- DrawBox( 48, 0,432, 8,DXP_COLOR_BLACK,TRUE);
- DrawBox( 48,264,432,272,DXP_COLOR_BLACK,TRUE);
- }
-
-
-
-
-
-
-
- void mp3checker()
- {
-
- InitSoundMem();
-
-
- SetCreateSoundDataType(DX_SOUNDDATATYPE_FILE);
-
-
- if((HANDLE_mp3 = LoadSoundMem(BGM_FILE)) == -1)
- flag_mp3 = MP3_NOT_EXIST;
- else
- flag_mp3 = MP3_EXIST;
-
-
- if(flag_mp3 == MP3_EXIST)
- SetPanSoundMem( 0, HANDLE_mp3);
- }
-
-
-
-
-
-
-
- int pic_load(void)
- {
-
- Display_NowLoading();
-
-
- if( Is_ALL_pic_Exist() == -1 ) return(-1);
-
-
- if( Pic_Mapping() == -1 ) return(-1);
-
-
- DrawBox(0,0,480,272,DXP_COLOR_BLACK,TRUE);
- ScreenFlip();
- Sleep(800);
-
- return(0);
- }
-
-
-
-
-
- void Display_NowLoading(void)
- {
-
- if((LoadGraphScreen(0,0,GRPH_FILE_NOWLOADING, FALSE)) == -1) {
-
-
- DrawBox(0,0,480,272,XVI_COLOR_DARKGREEN,TRUE);
- DrawFormatString(150, 120,DXP_COLOR_WHITE,"なう・ろーでぃんぐ!!");
- }
- ScreenFlip();
- }
-
-
-
-
-
-
-
-
-
- int Is_ALL_pic_Exist(void)
- {
- FILE *fp;
-
- int index;
-
- index=0;
- while(strcmp(pic_filename[index],(const char *)"おわる") != 0) {
- fp=fopen(pic_filename[index],"r");
- if(fp==NULL) {
- fclose(fp);
- DrawBox(0,0,480,272,DXP_COLOR_RED,TRUE);
- DrawFormatString(0, 90,DXP_COLOR_WHITE,"ファイル %s が無いよ",pic_filename[index]);
- DrawFormatString(0,140,DXP_COLOR_WHITE,"終了します。何か押して!");
- ScreenFlip();
-
- do {
- ProcessMessage();
- }while(CheckHitKeyAll() == 0);
-
- return(-1);
- }
- fclose(fp);
- index++;
- }
-
- return(0);
- }
-
-
-
-
-
-
-
-
-
- int Pic_Mapping(void)
- {
-
- HANDLE_Graph_BG = LoadGraph(GRPH_FILE_BG);
- if(LoadDivGraph( GRPH_FILE_HERO ,12,3,4,32,48,&HANDLE_Graph_Hero[0][0]) == -1) {
-
- DrawBox(0,0,480,272,DXP_COLOR_RED,TRUE);
- DrawFormatString(10,100,DXP_COLOR_WHITE,"%sの読み込みに失敗しました",GRPH_FILE_HERO);
- DrawFormatString(10,180,DXP_COLOR_WHITE,"終了します。何かキーを押して下さい。");
- ScreenFlip();
-
- do {
- ProcessMessage();
- }while(CheckHitKeyAll() == 0);
- return(-1);
- }
- return(0);
- }
-
Makefile
- TARGET = PSP_RPG
- OBJS = main.o
-
- PSPSDK=$(shell psp-config --pspsdk-path)
- INCS = $(PSPSDK)/include $(PSPSDK)/DXP_v0.5.7/include
- INCDIR = $(INCS)
-
- CFLAGS = -Wall -G0 -O3 -fomit-frame-pointer -mgp32 -mlong32
-
- CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
- ASFLAGS = $(CFLAGS)
-
- LIBDIR = $(PSPSDK)/DXP_v0.5.7/lib
- LDFLAGS =
- LIBS = $(PSPSDK)/DXP_v0.5.7/lib/dxlibp_UTF8.a
- LIBS += -lpspgu -lz -lm -lpsprtc -lpspaudio -lpspaudiocodec\
- -lpsputility -lpspvalloc -lpsppower
-
- BUILD_PRX = 1
-
- EXTRA_TARGETS = EBOOT.PBP
- PSP_EBOOT_TITLE = PSP_RPG TEST v0.02
- PSP_EBOOT_ICON = ICON0.png
- PSP_EBOOT_ICON1 = NULL
- PSP_EBOOT_UNKPNG= NULL
- PSP_EBOOT_PIC1 = NULL
- PSP_EBOOT_SND0 = NULL
-
- PSPSDK=$(shell psp-config --pspsdk-path)
- include $(PSPSDK)/lib/build.mak
-
- # 以下、任意で(開発しているソースに依存)
- main.o : main.c