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里调用开始界面。
- MC新手入门(四十一)------ 愤怒小狗制作二
- MC新手入门(四十)------ 愤怒小狗制作一
- MC新手入门(四十二)------ 愤怒小狗制作三
- MC新手入门(四十三)------ 愤怒小狗制作四
- MC新手入门(二)------路径
- MC新手入门(二十)------ 计时器
- MC新手入门(二十一)------ 碰撞事件
- MC新手入门(二十二)------ 游戏场景
- MC新手入门(五十一)------服务器连接 二
- MC新手入门(二十三)------ 音频的设定
- MC新手入门(二十四)------ 游戏声效
- MC新手入门(二十五)------美术图片要求
- MC新手入门(二十六)------屏幕适配
- MC新手入门(二十七)------数据类型、标识符、常量与变量
- MC新手入门(二十八)------ 顺序结构程序
- MC新手入门(二十九)------ 关系运算符和表达式
- MC新手入门(四十五)------游戏网络功能二
- MC新手入门(一)-----角色
- 在Mac上安装Ruby on Rails
- js实现拖动div(精简版)
- 测试微信分享功能
- Android Studio 下载安装以及不能打开的解决办法
- struts2.3.4 Action传递参数
- MC新手入门(四十一)------ 愤怒小狗制作二
- PHP正则表达式快速学习法
- poj_3630Phone List
- web.xml中安全认证标签说明
- java 图形用户界面 学习笔记
- 复旦大学教师 于娟博士《为啥是我得癌症?》
- UTF8-CPP
- 因为有人说的WZ132
- jquery对select标签的操作