Project1

标题: 对于新新新新新手脚本学习的建议 [打印本页]

作者: 寒冷魔王    时间: 2014-11-2 12:35
标题: 对于新新新新新手脚本学习的建议
本帖最后由 寒冷魔王 于 2014-11-2 13:06 编辑

貌似论坛最近有许多人想要学脚本,于是有很多人发出了疑问:脚本应该怎样学?
作为一名资深的Ruby新新手,本人在这里给那些新新新新新手,新新新新手,以及新新新手一些建议:

#==================================================

1.明确你的目标:
对于RM来说,如果想要进行脚本层次的编辑,学习RGSS是必要的。
RGSS是一种建立在Ruby上的系统 。想要对RGSS有所了解,先要学习Ruby。
下面的各种目标中,本人都对Ruby及RGSS的需求做出了个人性的评判:
每个评分均有四个基本等级:A,B,C,D,在后面将说明其意义。
(1)能够在事件脚本里修改别人已经编好的代码(Ruby:D,RGSS:D)
(2)编写简单的代码,以实现事件的初级脚本化(Ruby:D+,RGSS:C+)
(3)编写类、模块等以实现RGSS的简易扩展(Ruby:C+,RGSS:C+)
(4)简单地修改编辑器的预置脚本(Ruby:C++,RGSS:B)
(5)复杂地修改编辑器的预置脚本(Ruby:C++,RGSS:A)
(6)能够使用纯Ruby编写游戏系统(Ruby:C++/B+/A,RGSS:D)
(7)具有创造RGSS实用代码的能力(Ruby:B+/A,RGSS:A/B++)
说明:
基本合格线:Ruby:C+,RGSS:C+
达到基本合格线的人,具备编写中等代码的能力。
Ruby:
D:会使用基础运算,if,case,for,do,def等基础的语法结构,掌握基础的进程性代码
D+:能够编写基本的进程性代码,并具备使用和分析的能力
C:能够了解Ruby对象性,如class,module等的特征
C+:能够编写基本的对象性代码,并具备使用和分析的能力
【C+以下均为初级水平】
C++:对Ruby系统有一个总体性的掌握,并具有熟练使用的能力
B:了解Ruby的特征,并具备学习的能力,能够学习和使用Ruby手册(区别于RM帮助文档)
B+:理解Ruby的特征,能够进行基本的元编程,能够深入地学习和使用Ruby手册
【B+以下均为进阶水平】
B++:(未出现)了解Ruby系统内部,能够查看Ruby的源代码(需要C语言的知识)
A:未知水平,是个谜

RGSS我不懂,还是请喵呜君吧……

一般来说,具备C+,C+水平的人,就可以编写一般的游戏系统了
通过RM的帮助文档可以达到C+水平,当然需要不断实践

#==================================================

2.对于RM帮助文档的问题,给大家提供一些我的看法
(首先感谢6R的汉化)
明确了目标,要学习脚本,怎么学?很多人想到了RM的帮助文档。
(1)脚本入门
首先,我想说,对于菜鸟还没到的人来说,RM的脚本入门是非常费解的(当年深有体会)
如果只是看,是很难理解的。所以建议找一些其他的资料。
将脚本入门基础篇画出来,划去“开始”“显示图片”,就是Ruby的基础内容。
划分:
{
开始 (X),
数字的计算 ,
变量 ,
字符串 ,
条件分歧 ,
循环 ,
函数 ,
对象 (-),
显示图片 (X),
数组  ,
哈希表 ,
定义类  (-),
}
划(X)表示RGSS内容,划(-)表示对象内容,其余的为进程性内容。
【注】Ruby中一切皆为对象,这里划分只是为了方便学习。

进程性内容非常好学,先将其掌握运用就能达到D+的水平。
对象内容是非常难以理解的,包括很多C的程序员,学习C++,Java时,都感到十分吃力。
所以这里建议先将进程性内容学会。

学到这里,大家就可以学习RGSS了。基本的,诸如$game,$data等等都是一种数据结构,了解一下,基本就可以运用了。

如果还想继续学Ruby,或者RGSS还有许多不明白的,那么就要学Ruby的对象内容了。
这里简单地说明一下:{
①Ruby中一切皆为对象。
②对象具有特定的方法。
   如对象里面的:
     a = "Ruby"
     p a.size        # => 4
   这是Ruby对象性的应用。
③def定义方法可以代替对象方法,想要编写对象方法,需要元编程
④RGSS参考里内建类定义的方法,对于该类实例,都可以使用
    如 "Ruby"是String的实例,想要 "Ruby".xxx就可以查找RM手册里内建类的String;}

(2)RGSS参考
RGSS参考脚本部分包括Ruby内部和RGSS内部。
对于RGSS参考,我想说,第一步先要把Ruby语法的内容掌握。
其次,看你的目标来学习。
划分:{
RGSS 规格(RGSS) ,
Ruby 语法 (Ruby基础),
标准库 (Ruby进阶),
游戏库 (RGSS),
附录 (Ruby联系外部),
}
我只讲Ruby相关:
学完Ruby 语法,其余的Ruby相关你就可以看了。
对于标准库里的东西,一般来说,只是看看就行了。
尤其注意不要去记。因为很多东西都是可以用基本程式来代替的。
标准库提供了许多简便的函数(在“方法”标栏下),使得Ruby可以在一行内完成十行才能完成的东西。
诸如:Array里的:delete(val)
  1. a=[0,1,2,0]
  2. a.delete(0)
  3. p a #=>[1,2]
复制代码
可以在不调用该方法的情况下写为:
  1. a=[0,1,2,0]
  2. n=Array.new
  3. a.each{|x| n.push x if x!=0}
  4. a = n.clone
  5. p a #=>[1,2]
复制代码
继续简化>=<
  1. a=[0,1,2,0]
  2. n=[]; b=0
  3. #赋值n
  4. for i in 0...a.size
  5.    if a[i]!=0
  6.      n[b]=a[i]
  7.      b+=1
  8.   end
  9. end
  10. #复制n
  11. for i in 0...n.size
  12.   a[i]=n[i]
  13. end
  14. p a
复制代码
大家知道= =了吧……

就说到这里,
剩下的就由T君,喵呜君以及各位君及酱来补充了~
T君  喵呜君
谢谢~

摘录:喵呜君的建议:
1. 先稍微学学C语言或者随便什么容易入门的编程语言,或者,至少用纯事件做一个完整的游戏,编程的思维是很重要的
2. 搞懂什么是脚本,搞懂Ruby和RGSS到底是什么关系
3. 不要看F1学Ruby,请翻那些正规的Ruby教程【比如镐头书
4. 有问题到提问区提问

5. 别在论坛随意@
6. 优雅的我才不用for这种东西呢哼

T君的建议:
RGSS参考不是用来学习的,是用来“参考”的。就和一本词典不是用来背的一样

我也补充一点:
学Ruby,真想学好,还是要看专业的书。RM帮助手册上的是非常不全面的。最多能让你达到标准线水平。本人当年只看过RM帮助手册真心明白,上两位君说的话,实在是太对了……

VIP君的建议:
多来提问区回答问题,偶尔试试改改脚本。不知不觉你就会了。
(即使不是完全了解,但是对于你做出一个游戏,这点经验应该够了

作者: satgo1546    时间: 2014-11-2 12:36
神奇的斜体再次出现了。
代码框呢……
作者: 永燃的狂炎    时间: 2014-11-2 12:37
看不懂=_=
只知道全部都是字
作者: 喵呜喵5    时间: 2014-11-2 12:48
1. 先稍微学学C语言或者随便什么容易入门的编程语言,或者,至少用纯事件做一个完整的游戏,编程的思维是很重要的
2. 搞懂什么是脚本,搞懂Ruby和RGSS到底是什么关系
3. 不要看F1学Ruby,请翻那些正规的Ruby教程【比如镐头书
4. 有问题到提问区提问

5. 别在论坛随意@
6. 优雅的我才不用for这种东西呢哼
作者: taroxd    时间: 2014-11-2 12:55
RGSS参考不是用来学习的,是用来“参考”的。就和一本词典不是用来背的一样
作者: chd114    时间: 2014-11-2 12:58
喵呜喵5 发表于 2014-11-1 19:48
1. 先稍微学学C语言或者随便什么容易入门的编程语言,或者,至少用纯事件做一个完整的游戏,编程的思维是很 ...

不用for你能用英文说just for you吗···
作者: VIPArcher    时间: 2014-11-2 13:04
多来提问区回答问题,偶尔试试改改脚本。不知不觉你就会了。
(即使不是完全了解,但是对于你做出一个游戏,这点经验应该够了
作者: 无脑之人    时间: 2014-11-2 13:07
新新新新手建议先完成高中心理课程,以上。
作者: 轩辕大将军    时间: 2014-11-2 14:28
新新新新手正在学习易经,无暇学习脚本
作者: pigsss    时间: 2014-11-2 14:38
还是摆脱不了中国式教学法 看着都累
作者: 寒冷魔王    时间: 2014-11-2 15:12
taroxd 发表于 2014-11-2 12:55
RGSS参考不是用来学习的,是用来“参考”的。就和一本词典不是用来背的一样 ...


Ruby确实继承了Lisp

作者: 美丽晨露    时间: 2014-11-2 16:57
新手的话魔女建议转职为事件党
作者: RyanBern    时间: 2014-11-2 19:01
我第一次戳进来看到主楼上说各种什么等级啊,果断把Ruby:C++看成了Ruby以及C++
其实如果C/C++学多了或者是学深了反而对Ruby学习有阻碍作用,因为你完全要用另一个思路去看问题,会导致很多人难以接受Ruby:别说Ruby了,就连和C名字很像的C#都有人接受不了,C#中引入的“属性”和“索引器”是来打酱油的么,哥就不用'.Name=',就喜欢满屏幕写setXX,getXX,你不服来咬我啊~
不过Ruby确实比C/C++好上手,可能是因为代码可读性高和API使用方便的缘故?这也导致先接触Ruby的人对C/C++有抵触情绪:C++里面数组竟然TM只能存放一种元素,TMD竟然不能改变长度?C++定义类竟然不能定义属性,只能定义字段?C++连GC都没有,搞毛啊?你这样想的同时,运行效率君在默默哭泣……

其实我的重点不是这里,我的意思是说,可以有C语言基础也可以没有,不过一定要多问。
F1被很多人诟病,不过你要学会怎么使用它,里面的各种API参考和RGSS参考都很有用,正则表达式参考也很赞。不过,不要把它当教程玩。
最后一点建议,多到RMXP提问区玩,有卡还有糖~

作者: 墨凌羽    时间: 2014-11-2 20:30
Ruby Programming 看完功力嗖嗖涨我会乱说么{:2_270:}
作者: 火烧兔子    时间: 2014-11-2 21:08
新手开始学习的最大难点在于:短期之内看不到学习成果,容易产生放弃心理

不管学什么语言,一开始基本摆脱不了加减乘除
但是我们想要的是在游戏里面显示一个选项,显示一个界面,这与我们期待的不同。

看F1自学的时候,我看了几天就放弃了。
后来看了很多别人的脚本,发现自己也可以修改一点,于是现在也懂得一点语法。
虽然还是无法原创脚本,但是自己的需求基本能满足。

以我的角度来看,学RGSS最快的方法是多看别人的脚本,再尝试自己修改,不用从最基础的地方开始。
看多了自然就懂得格式是怎样的了。
作者: fanhang566    时间: 2020-1-29 20:36
马克一下




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1