第四十七章 来制作一面吧

>>点此回到教程目录

基本的部分我们全都做出来了。

作为继续对细小部分的调整,现在我们来试着大致地制作一面吧。

虽然这么说,由于计算处理、登录处理、绘制处理等处理早已完成了,因此现在我们只需要稍微修改Excel数据和设定部分就行了。

嘛,虽然说这个“稍微”在Excel数据上反映出来并不是那么容易就是了……

直到Stage的标题名显示为止的操作都和之前的一样。

敌人散乱地落下来并射出自机狙……

之类的,至于要做什么样子的Stage比起用文字说明还是您自行看看动画会比较好吧。

由于这次的动画长度稍微有点长,所以放到了别的页面里。

请点击这里的图像进入动画页面。 (原文是这个样子,但是这里直接贴出视频)


运行结果


Excel数据的话就是这个感觉的:

/计数器 移动模式 敌人的种类 x坐标 y坐标 速度 发射时间 弹幕种类 子弹的颜色 体力 子弹种类 待机时间 道具1 2 3 4 5 6
/cnt pattern knd x y sp bltime blknd col hp blknd2 wait item_n
100 0 0 40 -20 0 60 0 0 1 7 180 0 -1 -1 -1 -1 -1

一行以“/”开始的是注释。

计数器的值是在游戏画面左上角显示的数字。

嘛,细节的设定之前已经说过了。

建议您观看动画以确认各个值和运行结果动画是如何对应的。

此外,这里我按照自己的想法摆弄了一下,您也可以试试按照自己的想法自行安排。

这个时候请注意不要出现这种情况:改变了子弹的种类但是却指定了没有对应颜色的编号。

移动模式是“enemy_act_pattern.cpp”

弹幕的种类是“shotH.cpp”

子弹种类的图像文件夹是bullet文件夹

道具的种类的话您可以试着阅读out.cpp的第102行来进行各种调整。

另外,现在我们也进行了以下部分的变更。

—-在 func.h 中进行以下部分的变更 —-

void (*boss_shot_bullet[DANMAKU_MAX])() =
{
//中路Boss
        boss_shot_bulletH000,//normal
        boss_shot_bulletH002,// SC~完美冻结~
//终路Boss
        boss_shot_bulletH001,// normal~沉默的圣奈~
        boss_shot_bulletH004,//SC~小小青蛙~
        boss_shot_bulletH009,//SC~反魂蝶
//终止

        boss_shot_bulletH000,//防止出现NullPointrException用(这个弹幕不会显示)(译者注:ぬるぽ这个词也能用说明Dixq没少逛2ch啊……)
};

—-在 load.cpp 的 load_story() 进行红字部分变更 —-

        /***修改请注意***/
        char fname[32]={"../dat/csv/47章/storyH0.csv"};
        /***修改请注意***/

—-在 ini.cpp 中进行红字部分变更 —-

/***修改请注意***/
/*我们以后再在这里进行完整的设定*/
int back_knd[DANMAKU_MAX]={
        0,1,0,1,1,
};
int boss_hp[DANMAKU_MAX]={
        5000,10000,8000,20000,30000,
};
/*到此为止*/
/***修改请注意***/

//游戏的初始化
void ini(){
        stage_count=1;
        memset(&ch,0,sizeof(ch_t));
        memset(enemy,0,sizeof(enemy_t)*ENEMY_MAX);
        memset(lazer,0,sizeof(lazer_t)*LAZER_MAX);
        memset(enemy_order,0,sizeof(enemy_order_t)*ENEMY_ORDER_MAX);
        memset(shot,0,sizeof(shot_t)*SHOT_MAX);
        memset(cshot,0,sizeof(cshot_t)*CSHOT_MAX);
        memset(effect,0,sizeof(effect_t)*EFFECT_MAX);
        memset(del_effect,0,sizeof(del_effect_t)*DEL_EFFECT_MAX);
        memset(&bom,0,sizeof(bom_t));
        memset(&bright_set,0,sizeof(bright_set_t));
        memset(&dn,0,sizeof(dn_t));
        memset(&boss,0,sizeof(boss_t));
        memset(child,0,sizeof(child_t)*CHILD_MAX);
        memset(&stage_title,0,sizeof(stage_title_t));
        memset(item,0,sizeof(item_t)*ITEM_MAX);

        ch.x=FMX/2;
        ch.y=FMY*3/4;
        ch.power=0;//初始化power(41)
        ch.num=5;//初始化残机数(41)

        stage_title.appear_cnt=stage_title_count[stage];

    /*弹幕的各自设定。放在后面好好设定吧。*/

        /***修改请注意***/
        boss.appear_count[0]=1650;//中路Boss出现的时刻(42)(47)
        boss.appear_count[1]=2850;//终路Boss出现的时刻(44)(47)
        /***修改请注意***/

        boss.danmaku_num[0]=1;//中路Boss放多少个弹幕

        /***修改请注意***/
        boss.danmaku_num[1]=4;//终路Boss放多少个弹幕 (47)
        /***修改请注意***/

        for(int i=0;i<DANMAKU_MAX;i++){//弹幕的各自HP(47)

                /***修改请注意***/
                boss.set_hp[i]=boss_hp[i];
                /***修改请注意***/
        }

        /***修改请注意***/
        boss.hp_max=boss.set_hp[0];
        /***修改请注意***/

        for(int i=0;i<DANMAKU_MAX;i++)//弹幕的各自背景种类
                boss.back_knd[i]=back_knd[i];
        /*到此为止*/

        bright_set.brt=255;//初期亮度最大
}

弹幕的顺序就是放入boss_shot_bullet中的顺序。

您可以对照着boss_shotH.cpp来决定顺序。

back_knd和boss_hp是各自弹幕时候的背景种类以及敌人的体力。

在这里为了便于理解适当地放入了变量中,我们将在后面完整地进行处理。

如何?很好地运行了么?

是不是终于开始有一种这是游戏的感觉了呢?

下一章我们将会让音乐也播放出来让游戏更有气氛。

>>点此回到教程目录

results matching ""

    No results matching ""