全文
void game_main(void)
{
WP_SET_COLOR(0, 64, 0);
マップ;for(;;){移動;}
}
void マップ作成用関数(ref array@int anACT_FOR,int np,
int n0,int n1,int n2,int n3,int n4,int n5,int n6,int n7,int n8,int n9)
{
anACT_FOR[np+0] = n0; anACT_FOR[np+1] = n1;
anACT_FOR[np+2] = n2; anACT_FOR[np+3] = n3;
anACT_FOR[np+4] = n4; anACT_FOR[np+5] = n5;
anACT_FOR[np+6] = n6; anACT_FOR[np+7] = n7;
anACT_FOR[np+8] = n8; anACT_FOR[np+9] = n9;
}
void マップ(void)
{
charA = 111;
マップ作成用関数(anMAP,100,■,■,■,■,■,■,■,■,■,■);
マップ作成用関数(anMAP,110,■,□,□,□,■,□,□,□,□,■);
マップ作成用関数(anMAP,120,■,□,○,□,□,□,□,□,□,■);
マップ作成用関数(anMAP,130,■,□,□,□,■,□,■,●,□,■);
マップ作成用関数(anMAP,140,■,□,□,□,■,□,□,□,□,■);
マップ作成用関数(anMAP,150,■,■,■,■,■,■,■,■,■,■);
}
void MCC(int nP,int nSP,int nX,int nY)
{
string szA = "game_CG\\" + string(anMAP[charA+nP]) + ".bmp";
SP_SET_CG_FILE(nSP,szA);色抜き(nSP);
SP_SET_POS(nSP, 64*nX,64*nY);
}
void 移動(void)
{
マップCG;
if(anMAP[charA-10] == 1 || (anMAP[charA-10] == 2 && anMAP[charA-20] == 1)){MENU_ADD(1, "上へ移動");}
if(anMAP[charA+01] == 1 || (anMAP[charA+01] == 2 && anMAP[charA+02] == 1)){MENU_ADD(2, "右へ移動");}
if(anMAP[charA+10] == 1 || (anMAP[charA+10] == 2 && anMAP[charA+20] == 1)){MENU_ADD(3, "下へ移動");}
if(anMAP[charA-01] == 1 || (anMAP[charA-01] == 2 && anMAP[charA-02] == 1)){MENU_ADD(4, "左へ移動");}
if(
anMAP[charA-10] == 2 && anMAP[charA-20] == 3 ||
anMAP[charA+01] == 2 && anMAP[charA+02] == 3 ||
anMAP[charA+10] == 2 && anMAP[charA+20] == 3 ||
anMAP[charA-01] == 2 && anMAP[charA-02] == 3)
{MENU_ADD(5, "封印!");}
MENU_ADD(6, "やりなおし");
int nMove = MENU_SELECT();
switch(nMove)
{
case 1:if(anMAP[charA-10] == 2 && anMAP[charA-20] == 1)
{anMAP[charA-20] = 2;anMAP[charA-10] = 1;}charA = charA-10;break;
case 2:if(anMAP[charA+01] == 2 && anMAP[charA+02] == 1)
{anMAP[charA+02] = 2;anMAP[charA+01] = 1;}charA = charA+01;break;
case 3:if(anMAP[charA+10] == 2 && anMAP[charA+20] == 1)
{anMAP[charA+20] = 2;anMAP[charA+10] = 1;}charA = charA+10;break;
case 4:if(anMAP[charA-01] == 2 && anMAP[charA-02] == 1)
{anMAP[charA-02] = 2;anMAP[charA-01] = 1;}charA = charA-01;break;
case 5:jump エンディング;
case 6:マップ;}
}
void マップCG(void)
{
MCC(-22,100,1,0);MCC(-21,101,2,0);MCC(-20,102,3,0);MCC(-19,103,4,0);MCC(-18,104,5,0);
MCC(-12,105,1,1);MCC(-11,106,2,1);MCC(-10,107,3,1);MCC(-09,108,4,1);MCC(-08,109,5,1);
MCC(-02,110,1,2);MCC(-01,111,2,2);MCC(-00,112,3,2);MCC(+01,113,4,2);MCC(+02,114,5,2);
MCC(+08,115,1,3);MCC(+09,116,2,3);MCC(+10,117,3,3);MCC(+11,118,4,3);MCC(+12,119,5,3);
MCC(+18,120,1,4);MCC(+19,121,2,4);MCC(+20,122,3,4);MCC(+21,123,4,4);MCC(+22,124,5,4);
SP_SET_CG_FILE(200,"game_CG\\char_001.bmp");
SP_SET_POS(200, 64*3,64*2);
色抜き(200);
SACT_UPDATE();
}
void 色抜き(int nSP)
{
int newSP_1 = SP_GET_UNUSE_NUM;
int newSP_2 = SP_GET_UNUSE_NUM;
int nWidth,nHeight;
SP_GET_SIZE(nSP,nWidth,nHeight);
SP_SET_CG_FILE(newSP_1,"game_CG\\1.bmp");
SP_CREATE(newSP_2,nWidth,nHeight,0,0,0,255);
CG_BLEND(newSP_2,0,0, newSP_1,0,0,nWidth,nHeight,255);
CG_COPY_SPRITE(newSP_2,0,0, nSP,0,0,nWidth,nHeight, 128, 128, 128);
SP_COPY(nSP,newSP_2);
SP_DEL(newSP_2);SP_DEL(newSP_1);
}
#エンディング(void)
{
SP_DEL_ALL;
'そしてふたたび神社に平和が戻った。'A;
'END'A;system.Exit(true);}