您的位置:首页 > 其它

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

2013-05-16 15:21 211 查看
添加主界面


添加背景:
添加“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里调用开始界面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: