MC新手入门(四十一)------ 愤怒小狗制作二

来源:互联网 发布:中国联通 知乎 编辑:程序博客网 时间:2024/06/02 17:38
添加主界面

添加背景:

        添加“actAPbg”角色,再添“animInfCheck”,“animInfMain”,“animInfOver”,作为背景图片。

添加按钮

        添加“actAPBtn”角色,再添“animBtnHelp”,“animBtnPro”,“animBtnQuit”,“ animBtnRetry”,“animBtnStart”,“animBtnTochs”做为按钮相关的图片。在“actAPBtn”角色中,添加“CreateActor”,“Mouse Button Down”,“MouseButton Up”三个事件:

     1.   “创建角色”的脚本编辑器行为中,添加代码使动画帧不会自动播放。代码如下:

                          ChangeAnimationDirection("EventActor", STOPPED);      //动画停止animpos = 0; //在第0帧

      2.   “鼠标键按下”的脚本编辑器行为中,添加代码使动画帧在鼠标按下时换成第1帧。代码如下:

                          animpos = 1; //在第1帧

       3.  “鼠标键弹起”的脚本编辑器行为中,添加代码调用第一关的函数,代码如下:

                          char animName[32] =" ";

                          strcpy(animName, getAnimName(animindex));

                          animpos = 0;

                          if(strcmp(animName,"AD_button_start") == 0)//点开始进入到游戏的选关界面。

                          {

                                   DestroystartFrame();

                                   CreateLevelFrame();

                           }

                           else if(strcmp(animName,"fanhui") == 0)//返回到主界面

                          {

                                   DestroyLevelFrame();

                                   startFrame();

                           }

                           elseif(strcmp(animName,"AD_button_quit") == 0)//退出

                           {

                                   ExitGame();

                           }

在这里就将第二关卡,完成了。现在可以测试一下。


添加关卡
        添加“ actLevelNumber1”角色,再添“animBtnCheck1”,做为进入第一关的按钮。

        添加“actLevelNumber2”角色,再添“animBtnCheck2”,做为进入第二关的按钮。

        添加“actLevelNumber3”角色,再添“animBtnCheck3”,做为进入第三关的按钮。

添加得到骨头
        添加“actAPBone”角色,再添加“animbone4”图片做为得到的骨头数量。

创建界面

在全局代码(startpage)中,用代码添加创建的角色。这样方便修改:

注意:下面主要使用到函数“CreateActor”和“DestroyActor”,使用方法请查看附录。

                         void startFrame()//开始界面

                         {

                                   Actor *bgActor;

                                   Actor *buttonActor;


                                   bgActor =CreateActor("AP_bg", "AD_inf_main", "","", 0,0, true);//背景

                                   bgActor->x =view.x + bgActor ->width * 0.425;

                                   bgActor ->y = view.y+ bgActor->height / 2;


                                   buttonActor =CreateActor("AP_Button", "AD_button_start", "","", 0, 0, true);//开始游戏

                                   buttonActor->x =view.x + view.width * 0.25;

                                   buttonActor->y = view.y+ view.height * 0.65;


                                   buttonActor =CreateActor("AP_Button", "AD_button_help", "","", 0, 0, true);//帮助

                                   buttonActor->x =view.x + view.width * 0.55;

                                   buttonActor->y = view.y+ view.height * 0.65;


                                   buttonActor =CreateActor("AP_Button", "AD_button_pro", "","", 0, 0, true);//制作组

                                   buttonActor->x =view.x + view.width * 0.85;

                                   buttonActor->y = view.y+ view.height * 0.65;

                        }

                        void DestroystartFrame()//删除开始界面

                       {

                                  DestroyActor("AP_bg");

                                  DestroyActor("AP_Button");  

                       }

///////////////////////////////////////////////////////////////////////////////////////////

                       void CreateLevelFrame()//关卡选择界面

                       {

                                 Actor *bgActor;

                                 Actor *levelActor;

                                 Actor *buttonActor;

                                 bgActor = CreateActor("AP_bg","AD_inf_check", "", "", 0,0, true);//背景

                                 bgActor->x =view.x + bgActor->width * 0.425;

                                 bgActor ->y = view.y+ bgActor->height / 2;

                                 levelActor =CreateActor("AP_LevelNumber", "AD_button_check1","", "", 0,0, true);

                                 levelActor->x =view.x + view.width * 0.25;

                                 levelActor->y=view.y + view.height * 0.3;


                                 levelActor =CreateActor("AP_LeveNumber2", "AD_button_check2","", "", 0,0, true);

                                 levelActor->x =view.x + view.width * 0.55;

                                 levelActor->y = view.y+ view.height * 0.3;


                                 levelActor =CreateActor("AP_LeveNumber3", "AD_button_check3","", "", 0,0, true);

                                 levelActor->x =view.x + view.width * 0.85;

                                 levelActor->y = view.y+ view.height * 0.3;


                                 buttonActor =CreateActor("AP_Button", "fanhui", "","", 0, 0, true);//返回

                                 buttonActor->x =view.x + view.width * 0.65;

                                 buttonActor->y=view.y + view.height * 0.65;

                       }

                       void DestroyLevelFrame()//删除关卡选择界面

                      {

                                 DestroyActor("AP_bg");

                                 DestroyActor("AP_LevelNumber");

                                 DestroyActor("AP_Button");

                                 DestroyActor("AP_LeveNumber2");

                                 DestroyActor("AP_LeveNumber3");


                      }

////////////////////////////////////////////////////////////////////////////////////////////////

                     void CreatePauseorLoseFrame()//游戏失败界面及暂停界面

                     {

                                 Actor *bgActor;

                                 Actor*scoresStateActor;

                                 Actor *levelActor;

                                 Actor *buttonActor;

                                 Actor *boneActor;

                                 int i = 0;

                                 bgActor =CreateActor("AP_bg", "AD_inf_over", "","", 0,0, true);//背景

                                 bgActor->x =view.x + bgActor->width * 0.425;

                                 bgActor ->y = view.y+ bgActor->height / 2;

                                 for(i = 0; i <=i_hintBone; i++)

                                {

                                          boneActor =CreateActor("AP_bone", "bone4", "", "",0,0, true);//得到的骨头

                                          boneActor->x =view.x + view.width * 0.5;

                                          boneActor->y =view.y + view.height * 0.35;

                                          boneActor->animpos= i;

                               }

                               scoresStateActor =CreateActor("AP_ScoresState", "background_LittleScreen","", "", 0,0, true);//分数状况

                               scoresStateActor->x= view.x + view.width * 0.5;

                               scoresStateActor->y= view.y + view.height * 0.3;


                               buttonActor =CreateActor("AP_Button", "AD_button_retry", "","", 0, 0, true);//重新开始

                               buttonActor->x =view.x + view.width * 0.35;

                               buttonActor->y = view.y+ view.height * 0.65;


                               buttonActor =CreateActor("AP_Button", "AD_button_tochs", "","", 0, 0, true);//进入关卡选择界面

                               buttonActor->x =view.x + view.width * 0.65;

                               buttonActor->y =view.y + view.height * 0.65;

                     }

                     voidDestroyPauseorLoseFrame()//删除游戏失败界面及暂停界面

                      {

                               DestroyActor("AP_bg");

                               DestroyActor("AP_ScoresState");

                               DestroyActor("AP_Button");

                               DestroyActor("AP_bone");

                      }

////////////////////////////////////////////////////////////////////////////////////////////////

                     voidCreatepassFrame() //通关界面

                     {

                               Actor *bgActor;

                               Actor*scoresStateActor;

                               Actor *levelActor;

                               Actor *buttonActor;

                               Actor *boneActor;

                               int i = 0;


                               bgActor =CreateActor("AP_bg", "AD_inf_over", "","", 0,0, true);//背景

                               bgActor->x =view.x + bgActor->width * 0.425;

                               bgActor ->y = view.y+ bgActor->height / 2;

                               for(i = 0; i <=i_hintBone; i++)

                               {

                                          boneActor= CreateActor("AP_bone", "bone4","", "", 0,0, true);//得到的骨头

                                          boneActor->x = view.x + view.width * 0.5;

                                          boneActor->y = view.y + view.height * 0.35;

                                          boneActor->animpos = i;

                               }

                               scoresStateActor =CreateActor("AP_ScoresState", "background_LittleScreen","", "", 0,0, true);//分数状况板

                               scoresStateActor->x= view.x + view.width * 0.5;

                               scoresStateActor->y= view.y + view.height * 0.3;

                               buttonActor =CreateActor("AP_Button", "AD_button_retry", "","", 0, 0, true);//重新开始

                               buttonActor->x =view.x + view.width * 0.25;

                               buttonActor->y = view.y+ view.height * 0.65;


                               buttonActor =CreateActor("AP_Button", "AD_button_tochs", "","", 0, 0, true);//进入关卡选择界面

                               buttonActor->x =view.x + view.width * 0.55;

                               buttonActor->y =view.y + view.height * 0.65;


                               buttonActor = CreateActor("AP_Button","cf_ButtonStartGame", "", "", 0, 0, true);//进入下一关

                               buttonActor->x =view.x + view.width * 0.85;

                               buttonActor->y =view.y + view.height * 0.65;

                     }

                     void DestroypassFrame()//删除通关界面

                     {

                               DestroyActor("AP_bg");

                               DestroyActor("AP_ScoresState");

                               DestroyActor("AP_Button");

                               DestroyActor("AP_bone");

                     }

       创建一个“start”角色。调用全局脚本内的函数。在CreateActor里调用开始界面。


原创粉丝点击