MC新手入门(三十四)------ 函数

C源程序是由函数组成的,实用程序往往由多个函数组成,C语言不仅提供了极为丰富的库函数还允许用户建立自己定义的函数。用户可把自己的算法编成一个个相对独立的函数模块,然后用调用的方法来使用函数。

函数的定义形式
  从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。
1)无参函数
使用场景:在游戏中,我们通常会自己定义一个无参函数来实现创建场景功能,实现程序代码可重用性。
实例:创建场景
目标:游戏运行时创建游戏界面场景

5-6-1-1.png


图5-6-1-1

首先我们将目标转换成逻辑描述:

   游戏运行时,做下面的事情:

                        创建界面背景;

                        创建<开始游戏><排行榜><退出>角色且定位;

                        直到结束。

接着我们开始用MC来实现上述的逻辑:

在全局脚本里编写一个函数initform(),代码如下:

              voidinitFrame()//游戏开始界面

                   {
                       Actor *bgActor;
                       Actor *buttonActor;

                    bgActor =  CreateActor("bg","main_bg", "", "", 0, 0,  true);//创建背景角色

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

                bgActor = CreateActor("menu", "cf_BannerMenu","", "", 0, 0, true);//创建选择菜单

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

                buttonActor = CreateActor("button","cf_ButtonStartGame", "", "", 0, 0, true);//创建游戏开始

                      buttonActor->x = view.x + view.width * 0.5;
                      buttonActor->y = view.y + view.height * 0.43;

                buttonActor = CreateActor("button", "tuichu","", "", 0, 0, true);//创建游戏退出

                      buttonActor->x = view.x + view.width * 0.5;
                      buttonActor->y = view.y + view.height * 0.63;

                buttonActor = CreateActor("button","paihangbang", "", "", 0, 0, true);//创建排行榜

                      buttonActor->x = view.x + view.width / 2;
                      buttonActor->y = view.y + view.height * 0.53;     
                 }   

从上面的语句中我们可以总结出
        无参函数形式:
              类型标识符 函数名()
             {
                 声明部分
                 语句
             }
其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。
花括号{}中的内容称为函数体。在函数体中声明部分,是对函数体内部所用到的变量的类型说明。

2)有参函数
使用场景:在游戏中,我们通常会自己定义一个有参函数来实现控制角色移动方向功能
目标:通过点击方向键来控制角色移动方向
实例:控制角色移动方向

5-6-1-2.png


图5-6-1-2


首先我们将目标转换成逻辑描述:

游戏运行时,做下面的事情:

                       点击方向键来控制角色移动方向;

                       直到结束。

接着我们开始用MC来实现上述的逻辑:

在全局脚本里编写一个函数move(),代码如下:
              void move(intchoice)//定义函数来选择移动方向
              {
                  switch(choice)
                  { 
                       case 1://向上移动
                       test.xvelocity=0;//x轴速度为0      
                       test.yvelocity=-1;//y轴速度为1
                       break;
                       case 2://向下移动
                       test.xvelocity=0;
                       test.yvelocity=1;
                       break; 
                       case 3://向左移动
                       test.yvelocity=0;
                       test.xvelocity=-1;
                       break; 
                       case 4://向右移动
                       test.yvelocity=0;
                       test.xvelocity=1;
                       break; 
                  }
             }
当点击<向上>按钮时,做脚本编辑:

            move(1); //调用move函数

当点击<向下>按钮时,做脚本编辑,对有参函数的调用:
             move(2);
当点击<向左>按钮时,做脚本编辑,对有参函数的调用:
                      move(3);
当点击<向右>按钮时,做脚本编辑,对有参函数的调用:
                      move(4);
从上面的语句中我们可以总结出,
有参函数的形式:
类型标识符 函数名(形式参数表列)
              {
                  声明部分
                  语句
               }

    有参函数比无参函数多了一个内容, 即形式参数表列。在形参表中给出的参数称为形式参数(形参),它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。形参既然是变量,必须在形参表中给出形参的类型说明。

Demo下载地址:http://www.dongyo.cn/bbs/forum.php?mod=viewthread&tid=2502&extra=page%3D2%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值