南京新世界电玩 >> PSP >> PSP技术 >> 菜鸟也能为PSP编程 - Lua Player 编程初级指南
菜鸟也能为PSP编程 - Lua Player 编程初级指南
作者:不详  浏览:次  日期:06-25
广告位

 

  接下来我们使用按钮输入命令侦测X键是否按下,如果是则从敌兵生命值中减去5。添加下述代码:

代码:

if pad:cross() then
Enemy[1].health = Enemy[1].health - 5
end

 

  这是说如果 X 键按下则从 Enemy[1].health 元素的值中减去5。

  最后,让我们缓存、翻屏并终止循环。添加下述代码:

代码:

screen.waitVblankStart()
screen.flip()
end

 

  保存运行,测试一下吧。然后赶紧回来!

  啊哦,怎么回事!敌兵的生命值下降太快了,都变成负值了!可不能在游戏中这么搞!这向你显示了循环执行的速度有多快。我们可以修正它,仅在按下X键时减生命值,按住时不减。

  首先在代码顶端的数据表之前添上此行。在色彩变量之前或之后都可以。

代码:

oldpad = Controls.read()

 

  其次找到代码行 "if pad:cross() then" 更改如下:

代码:

if pad:cross() and oldpad:cross() ~= pad:cross() then

 

  ...最后,就在 screen.flip() 之后和 "end" 之前添加此行:

代码:

oldpad = pad

 

  目前我们暂时不纠缠于细节。简单的说,此代码检测你按下的按钮是否上一循环相同,如果是,则“if”语句不会执行。~= 表示“不相等”。我们很快会学到运算符的。

  保存运行,测试一下。

  怎样,运行的不错,除了还会变成负数以外。正好,我们正要学习另一个运算符呢。

  找到代码行 "if pad:cross() and oldpad:cross() ~= pad:cross() then" 更改如下:

代码:

if pad:cross() and oldpad:cross() ~= pad:cross() and Enemy[1].health > 0 then

 

  我们添加了 Enemy[1].health > 0 这个条件。 > 表示“大于”,可能你已经知道了。所以修改后的整行代码表示如果X键按下,并且没有按住与上一循环相同的按钮,并且敌兵的生命值大于0则执行随后的语句(生命值减5)。注意要执行此代码就必须所有条件都满足。

  保存运行,现在应该一切正常了。敌兵的生命值不会变得小于0。

  本课到此为止。注意本课的重点是数据表。所以其他东西你不是完全理解也没关系。该休息一下了,下节课再见。

6——利用表达式

  其实我们之前的程序已多少用到了一些表达式,现在我们就深入的学习一下。有些我们已经熟悉了,比如“if”语句和“>”运算符。我们将编写一个利用这些表达式的程序,它与我们上一次写的很相似,只是更深一些。先创建一个新文件,但暂时不要添加代码,除非得到明确告知,象上一讲一样。

  首先要讲的就是算术表达式,太简单了,无非就是加减乘除而已。我也不多说了,举例如下:

代码:

x = 3 + 5 -- 加法
y = 3 - 1 -- 减法
a = 4 * 5 -- 乘法
b = 10 / 2 -- 除法
c = 2 ^ 8 -- 乘方

 

  不难吧,嗯?记住,我教你的都是基础,我不会介绍每一个命令。等你学会了我传授的,你就能自己查询资料,学习我没有教的东西了。

  接着要讲的是关系表达式。这是编程时超常用的,用来比较数据。返回真或假(又称为布尔值)。下面是列表:

  == (相等)
  ~= (不相等)

广告位2
 来源:来自网络 
 热门文章
②新世界新街口店地址:南京中山东路71号电..
招商、批发、邮购请与总部联系邮购地址:南..
产品代理列表:任天堂神游机系列产品江苏、..
新世界出台会员制度如何成为会员: 第一次 购..
南京新世界电玩,是一家经营达20年的老字号..
 最新文章
面对越来越多的客户关于新版PSP 3000掌机扫..
Alek谈PSP破解小组M33的近况 Dark-Alex官方..
由 CAPCOM 製作,预定明年春季推出的 PSP 战..
由 KOEI 製作,推出移植自 PS / PS2 同名作..
将《传说》系列诸多角色汇集到一起的梦幻游..
PSP | iDSL | PS3 | wii | XBOX360 | 下载中心 | 本站商城 |淘宝一店 | 淘宝二店 | 加盟 | 招聘 | 联系我们 | TOP
使用 1200*1024 以上分辨率 IE7.0 浏览新世界以达到最佳视觉效果