本帖最后由 寒冷魔王 于 2015-6-16 19:27 编辑
HP = Hit Point
被纠正了,竟然是对的。。
我还真是头一次听说= =
v.to_s == v.to_i.to_s
直接写v == v.to_i不行吗 = =
你知道两个to_s再来个字符串比较需要多少额外消耗啊。。。
old+=((v+1)*100-100)*param_base(k)/100
= = 小水你神马意思,你想要判断小数点??你这么写真看不出来除了变得复杂些以外还做了什么事。
小数点分开你可以这么写:
/(\d+).(\d+)/ =~ v.to_s
整数位 $1.to_i
小数位 $2.to_i
x.object = =这个是神马东西,我只见过object.XXX唉
虽然不是主攻Ruby,但是我自认为在Ruby的C风格编程中我多少还是有那么一点点自信的(毕竟我都用几个月的时间写了200+的代码了唉(PAI~~))
但是这个XXX.object我还真是第一次见到= = 那是神马东东,查了手册都没有的说
那个alias_method虽然没见过但多少知道是元编程里的嗯嗯
if id==k if v.to_s==v.to_i.to_s old+=v else old+=((v+1)*100-100)*param_base(k)/100 end end
if id==k
if v.to_s==v.to_i.to_s
old+=v
else
old+=((v+1)*100-100)*param_base(k)/100
end
end
你不是一直想要缩写吗?我给你缩,看好了:
old += v*((v==v.to_i) ? 1 : param_base(k)) if id==k
old += v*((v==v.to_i) ? 1 : param_base(k)) if id==k
另外你的缩进需要注意一下,建议.each {}的}括号和{的行首同缩进,如:
if (expression) Array.each { |arr| # do something... } end
if (expression)
Array.each { |arr|
# do something...
}
end
一般我在遇到each时,单行和多行不一样的写法:
# 单行 Array.each { |arr| arr = nil } # 多行 Array.each do |arr| # Line 1 # Line 2 # Line 3 end
# 单行
Array.each { |arr| arr = nil }
# 多行
Array.each do |arr|
# Line 1
# Line 2
# Line 3
end
这样写的好处是整齐简洁,因为多行往往伴随if end等,end一起比较整洁。
加上之前莫名的XXX.object,可以推断你的水平是 高手+新手 = 真(wei)·高手。
还是说,重复了许多遍了,你的代码就整洁性而言有待提升,如果能将此改进一下,然后附上使用文档,我想我应该就能看进去了
看在中间的那段的字体——编程专用等宽字体——不错的面子上,我就不继续吐槽了。
目前还在做地图和事件处理的部分,很快就进阶到战斗部分了。因为假期比较忙碌(还要准备三级考试),所以。。。战斗部分就靠你了。你好好研究一下战斗系统,到时候我直接借(qie)用(qu)一下就可以了。——当然前提是你先把这里理顺了,这么乱的数据模型肯定是不行的。
XP时代我曾研究过一些角色和敌人数据库,VA差不多。基本的数据处理是早就做好了的。地图事件的分析和应用正在做,角色、敌人还有技能相关没做分析。
从XP时代我就不是太会(多少还会那么一点点)窗口场景,实际上要做个系统这些是非常重要的。
该系统的层次划分:
--> 基本数据处理(将VA中的数据模式转换为系统内部所使用的数据模式,部分做修正)
--> 基本数据分析(提供各种方法,使得基数据能够转化为系统各分支的专用数据)
--> 数据分析应用 (通过分析数据,提供一系列方法,通过调用方法反馈给外部环境;主要提供给游戏制作者。如将事件名称为NUM001的事件作为第一位角色的位置点,每次刷新此处事件的行走图都会变更等)
--> 外部接口(形成特定的游戏对象,如窗口,鼠标输入等,获取和输出反馈,如变更角色位置的窗口。主要面向玩家)
而实际上,我只做完了第一部分,第二三部分只做了地图事件相关的部分。第四部分尚未动手。整个游戏系统的核心部分(地图移动范围的生成,SMRC Ver4.5)已经完成,包括运算速度、移动障碍等问题均已解决。尚需解决的是地图与技能范围的连接问题。到时候需要发明个新的表示方法,可以方便地表示技能范围。这些现阶段归类为技能问题。技能的AI计算问题仍将需要解决。
我唯一擅长的就是难度不高的底层代码(好吧,其实我只是懒得动脑+不愿学前端),所以,对于困扰最大的地图范围移动生成代码(包括各种附加属性,如移动力衰减等)解决的今天,最令人担忧的是有些难度的AI智能和窗口绘制。如果有人能帮我解决其中某项问题,那么系统的开发完成预期将大大提前。
所以,作为真(wei)·高手的小水,如果肯祝我一臂之力,则臣不胜受恩感激也。
总之加油,继续滚回去写《魔法原理》去。。。(PAI)
|