c语言写类似饥荒的游戏,饥荒MOD lua编程0基础入门

前言

原贴写于饥荒游戏贴吧,为了使文章针对性更强,将原文切割并精简。此贴主要为编程0基础的modder讲解一些编程的基础知识。至于说有关饥荒框架的介绍,则会放在另一篇文章里讲解。

编程0基础的人,要想学习制作MOD,难度是比较大的,因为缺乏一些基本的编程概念,只懂得复制别人的代码或者在它们的基础上稍加改变,遇到稍微复杂一点的代码,就束手无策了。对于MOD崩溃或错误,也几乎没办法自行处理。但我也不推荐先去学一门编程语言之后再来学习MOD代码,这是没有必要的。事实上饥荒MOD里用到的基本编程知识都比较简单,所使用的lua语言相比c之类的强类型语言,也已经做了许多简化。单纯想要做MOD的话,只需要了解一些基本知识和概念就可以了。

以下内容全部基于lua语言。

标识符

一个名字

给常量,变量,函数,类一个名字,这样我们才能通过名字来使用它。一般使用英文字母、数字和下划线的组合来命名。

推荐命名规则

常量:每个字母都是大写,在每个单词之间加下划线。

变量和函数:第一个单词首字母小写,后续单词的首字母大写,其他都是小写。

类:所有单词首字母大写。

这个只是个人推荐的命名规则,读者可以根据自己的喜好决定命名规则。

变量

可以通过符号’=’赋值改变的量。

典型代表:人物的饥饿值。这个值在游戏里几乎每时每刻都在不停变化着,这样一来,我们就可以根据不同的变化,设置不同的效果,比如沃尔夫冈不同的饥饿值会有不同的形态,这个就是通过检测饥饿值来实现的。

常量

程序运行时,不会被改变的量

实际上,lua语言里没法自己定义常量。但是,对于某些量,我们不需要在游戏运行的过程中改变,又需要引用它。比如说长矛攻击力,在游戏过程中不需要改变,但官方所做的所有的武器的攻击力都是长矛攻击力的某倍数,这又需要引用它进行计算。这时候,不妨就把长矛攻击力看作是一个常量,用一个变量将其定义下来(SPEAR_DAMAGE,这个定义在tuning.lua里)

作用域

变量的生效区域。

在作用域以外的域内,如果你引用这个变量,又没有域内的同名变量,就会造成出错。

lua中对一个变量的作用域只有两个选项:local 和global。默认不加local修饰的变量为global(全局)变量,加了local的为局部变量。全局变量的作用域为整个程序。局部变量的作用域则在所定义的域中。一个选择控制结构内,一个函数体内,或者一个文件内,都是一个域。

这个作用域的主要价值在于,使得系统免于混乱。比如说,在被攻击的时候,需要计算所受到的伤害,为了方便进行多次计算,我们把这个数值设置为一个变量。但是,面对的敌人的攻击力会有变化,自身的防具减伤也会有变化,这时候我们就希望,计算结束,变量被引用到血量变化之后,这个变量能消失掉,不会影响我们下一

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值