admin 管理员组文章数量: 887007
2024年3月1日发(作者:easyui现在用的多吗)
Edgame maker 编程初级指南
注:说是指南,其实是本人的学习笔记,与君分享,共学习之!如有不对或缺漏,请指出~~~~
第一节 注释
我们第一件要学的就是如何给代码做注释.注释是为了帮助其他人看懂代码.其实,这也能帮助自己,在你停止一个工程几个月后回头看自己的代码,你会发现没有注释的话,自己也会迷失在自己的代码中,所以注释很重要,我们就从注释开始学起.
代码:
-===============================================================================
-- ■ 初始化屏幕
--===============================================================================
引擎 = D2D_引擎.创建("Edgame Make",60,800,600,true,true)
--叶风的作品
--我的学习笔记
运行一下,没有报错,也没有被执行.这就是注释,以双划线开始(--),在此之后输入的任何文字都不会被视为代码,在执行时完全忽略掉.但是,请注意,必须保持注释在一行内.(你可以分行试试,结果是报错).即然分行会报错,那我注释多必须分行的时候怎么办??不难,用多行注释就能解决:
--[[ 开头, ]]结尾
代码:
-- ■ 初始化屏幕
--===============================================================================
引擎 = D2D_引擎.创建("Edgame Make",60,800,600,true,true)
--[[
这是开头
叶风的作品
我的学习笔记
我就是要分行
我喜欢分行
这是结尾
]]
运行测试,没报错.
第二节 如何使用变量
何谓变量: 就是可以改变的量,所有的变量都有一个名字
x = 10
在上面的式子里,x是变量名,我们用=把10赋给了它
变量的名字的可以自己定义的,但不能以数字开头,也不能使用系统的保留字(以后再说)
变量是很重要的工具,一言以蔽之,变量就是信息的存储容器,供你在程序中随时调用.
现在我们就来写一个使用变量的简单程序.同时也学习一下EM中的简单算术.这次我们对第一行代码都给注释.
首先,让我们以创建文字对象开始,用来在屏幕上显示信息.
代码:
--创建文字对象
--===============================================================================
-- ■ 初始化屏幕
--===============================================================================
引擎 = D2D_引擎.创建("Edgame Make",60,800,600,true,true)
--创建文字对象
文字 = D2D_文字.创建("黑体",22,false,false,false)
注:文字对象创建完毕,括号里的参数请自行查阅EM软件里的脚本核心.
接着我们就开始创建我们第一个变量吧,这将是一个存储你出生年份的变量.请随意替换1985为你自己的出生年份,事实上我也建议你这么做!
代码:
--将出生年份存为变量 出生年份
出生年份 = 1985
就是这样,我们所做的就是取得数值1985(你可以任意改),并将其保存在我们命名为 出生年份 的变量中.稍后我们在程序中将使用该变量.
下面我们再设一个变量用来存储当前年份.
代码:
--将当前年份存为变量 当前年份
当前年份 = 2010
现在让我们创建一个略微不同的变量
代码:
--创建一个空变量
我的年龄 = ""
请注意这次我们没给变量赋值,我们稍后为此变量存入信息.
到此我想,我们已知道如何创建变量了,那么让我们开始使用它们.我们将要做的就是使我们
的变量和一些基础算术计算出你的年龄.我们接着写代码:
--===============================================================================
-- ■ 屏幕逻辑()
--===============================================================================
function 屏幕逻辑 ()
--用 当前年份 减去 出生年份 并将结果保存在变量 我的年龄 中
我的年龄 = 当前年份 - 出生年份
(我们这里将代码写在逻辑里,虽然也可以写在任何地方,,但我们最好养成良好习惯)
这一步是提取两个变量中存储的值,将之相减,然后将结果保存在 我的年龄 变量中.这样 我的年龄 就被赋予了值.
现在,让我们用显示将文本在屏幕上显示出来.
代码
- ■ 屏幕渲染()
--===============================================================================
function 屏幕渲染 ()
渲染开始()
清屏(ARGB(255,128,128,128))
--打印文本变量到屏幕
文字:显示(0,0,"我的年龄:"..我的年龄)
测试一下看结果 .
这里我们用到了一个新命令,(..)双点号
这称为”串联”.
第三节 让按键为你工作
本节我们将学习如何编写一个按下不同按键显示不同文本的简单程序.如果没有按键输入,就没有与用户的交互,那可是相当无聊的.
代码:
引擎:取按键按下()
简单地说,这就是获取按键的输入
接下来我们学习一个条件表达式, if语句. 相信我,这没有它看起来的那么难,同时我们还会学到按键的输入命令,先把下面的代码写到程序里,然后我们来进行解释.(我们利用上一节所写的代码,当按下A键的时候改变颜色)
代码
if(引擎:取按键按下(键_A)) then
文字:置颜色(颜色_红)
end
--打印文本变量到屏幕
文字:显示(0,0,"我的年龄:"..我的年龄)
测试,当我们按下A键后,上一节我们输出的文字变成了红色.说明,我们这一句代码就是说”如果A键被按下,则将文字颜色置换为红色”.这将返回true 和 false 值.每个if语句都以if开头,然后给出检查的条件.此例中是检查是否A键被按下,然后跟随在关键字then之后的内容则是如果条件为真,则执行代码.最后,每个语句都必须以end 结束..语法简单易懂,一目了然,你可以将按键改变,以练习不同的方法.
第四节 使用数据表编写程序
LUA中的数据表(tables)很像变量.主要区别是数据表可以用来存储多个数据,而变量只能存一个.我们把它想成一个带有很多”抽屉”存放不同内容的容器就行了.觉得很方便吧,那我们就学一下:
假设我们要写一个小游戏,共有2类敌人,一个主角.为此我们要让程序知道这此角色的相关信息. 敌人和主角需要什么信息呢?我们设想简单点,首先要有生命,这样才能被杀死.因此我们需要给程序提供信息以跟踪敌人的生命值.我们还需要信息区分我们使用的敌兵种类.对于玩家生命值自然也是不可少的
现在开始利用表来进行学习和编写:
表的定义方式:
代码:
--创建文字对象
文字 = D2D_文字.创建("黑体",22,false,false,false)
敌人 = {}
注:首先创建一个文字对像,因为我们需要利用文字对像将我们编写的信息显示到屏幕上.
这样我们就创建一个表,首先是表名(可以任何名字,但不能以数字开头),然后是等号,然后是左右尖括号.我们继续写,将敌人的信息写出来
代码:
敌人 = {}
敌人[1] = {种类 = "小兵类",生命 = 80}
敌人[2] = {种类 = "大将类",生命 = 180}
就是这样,我们创建2个敌兵元素,并告诉程序它们的种类和总生命值.现在添加主角的代码:
主角 = {职业 = "战士",生命 = 100}
这样我们所需的信息就都有了.当然,这不能算是一个游戏,只是一个简单的例子罢了.现在,我们设置按下A键的时候取走敌人的生命值,我们只选一个敌人来做这件事,代码如下:
文字:显示(100,100,"主角的生命:"..主角.生命)
文字:显示(100,150,"主角的职业:"..主角.职业)
文字:显示(400,100,"敌人1的生命:"..敌人[1].生命)
文字:显示(400,150,"敌人1的种类:"..敌人[1].种类)
if(引擎:取按键按下(键_A)) then
敌人[1].生命 = 敌人[1].生命 - 5
end
测试一下吧,咦,怎么生命能成负值呢,游戏中可不能这么搞,我们修正它,让他变成0时,不在减少.
修改代码如下:
if(引擎:取按键按下(键_A) and 敌人[1].生命 > 0) then
敌人[1].生命 = 敌人[1].生命 - 5
end
我们添加了敌人[1].生命 > 0这个条件,> 表示”大于”,还用了and ,意思是”并且”,这里就意思就是说,当我们按下A键,并且敌人的生命大于0的时候,就执行随后的语句(生命减5).注意的是要执行此代码就必须所有条件都满足.
我们这里涉及到了两个表达式,我们将于下节进行稍细的讲解,并且想一下,敌人的生命为0了,是不是该死去,该不该让下一个敌人出来露下脸??
版权声明:本文标题:Edgame maker 编程初级指南 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1709284802h542009.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论