Project1
标题:
教给新手们的第三招
[打印本页]
作者:
怪蜀黍
时间:
2009-7-16 09:22
标题:
教给新手们的第三招
本帖最后由 雪流星 于 2009-7-15 21:42 编辑
前些天我们已经学习了“巧用数据库之一”,今天我们的话题还是巧用数据库,学习一下“巧用数据库之二”。依旧先声明,本帖的发表目的是为了给新手们提供帮助,本来就懂得的朋友请勿笑话。
再次说一下,不要因为文章比较长而惧怕阅读,其实真的很简单,对您绝对有帮助!
按照惯例,以一个例子来引出一个新的问题:
当我们设计一个敌人,我们知道,它的MP上限在默认情况下是9999,要是我们想要把某个特定敌人的MP上限改成大于10000,怎么实现?
这个问题的解决方法可能是多种的。现在我来说一种方法,巧妙地应用我们的数据库。首先,把脚本Game_Enemy类下的def base_maxhp(第61行开始)修改一下。
原来的脚本是:
#--------------------------------------------------------------------------
# ● 获取基本 MaxHP
#--------------------------------------------------------------------------
def base_maxhp
return enemy.maxhp
end
复制代码
现在我们改成:
#--------------------------------------------------------------------------
# ● 获取基本 MaxMP
#--------------------------------------------------------------------------
def base_maxmp
if enemy.maxmp <= 9000
return enemy.maxmp
else
a = (enemy.maxmp - 9000) * 100
return a
end
end
复制代码
意思就是,假如设定某敌人的最大MP在1至9000,那么直接设定即可。如果最大MP大于9000的话,就等于“最大MP”减去9000后再乘以100。那么,假如我们要求某敌人的的最大MP为10000,就把数据库里“最大MP”的数值输入9100,(9100-9000)*100=10000,因此达到预期目的。假如要最大MP为12500,则输入9125,(9125-9000)*100=12500。呵呵!很巧妙吧?
这样一来,我们可谓学会了一绝招。因为我们要设置类似的问题,就可以:
if ……<= 5000
实现目标1
elseif……> 5000&&……<= 6000
实现目标2
elseif……> 6000&&……<= 7000
实现目标3
……
复制代码
甚至可以:
if ……== 1060
……
end
if ……== 1061
……
end
if ……== 1062
……
end
复制代码
不光可以利用最大MP,还可以利用HP、精神力,敏捷等其他的数据!
哇!前景多么广阔!想设置什么都可以啦。
作者:
zh99998
时间:
2009-7-16 09:25
那个啥,if连判断可以用case
if var == 1060
语句1
end
if var== 1061
语句2
end
if var== 1062
语句3
end
复制代码
可以缩写成
case var
when 1060
语句1
when 1061
语句2
when 1062
语句3
end
复制代码
作者:
怪蜀黍
时间:
2009-7-16 09:31
呵呵,楼上说得对!这样就更加简洁了。:)
作者:
zh99998
时间:
2009-7-16 09:49
还有啊,你把代码部分用code标签框出来阅读起来会清晰些
作者:
雪流星
时间:
2009-7-16 11:36
本帖最后由 雪流星 于 2009-7-15 21:38 编辑
case 还可以用范围
例如:
case numberRange
when 0..10
.....
when 11..15
....
when 16...20
...
else
...
end
复制代码
如果用 if 来分歧范围的话,就要
if numberRange >= 0 or numberRange <= 10
...
elsif ....
.......
复制代码
或是
if numberRange === (0..10)
...
elsif ....
.......
复制代码
作者:
怪蜀黍
时间:
2009-7-16 13:10
大家补充得很好!这样大家都来探讨,内容就越来越充实了。呵呵。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1