Project1

标题: 【RGSS3 入门教程大家写 第二弹】活动开始! [打印本页]

作者: taroxd    时间: 2014-6-21 20:22
标题: 【RGSS3 入门教程大家写 第二弹】活动开始!
本帖最后由 taroxd 于 2014-7-1 09:25 编辑

https://rpg.blue/thread-367517-1-1.html

看着6R现在的人气,感觉堪忧啊……不过既然预告贴都发了,那就干脆发出来吧。

暂时没想到什么面向新手的活动呢~ 总之就这样吧

作者: 余烬之中    时间: 2014-6-21 20:42
本帖最后由 余烬之中 于 2014-6-21 20:45 编辑

求指导~
1
2
3

作者: moy    时间: 2014-6-21 20:47
围观一帮大触们卖萌
作者: DeathKing    时间: 2014-6-21 21:47
本帖最后由 DeathKing 于 2014-6-21 22:13 编辑

1. Ruby和RGSS3一定要分开!!!讲Ruby的时候一定专心讲Ruby,不要跟RGSS3搅在一起,把Ruby打扎实了再继续RGSS3。我之前写URG3的时候,就想找个靠谱的人先写一份Ruby教程。

2. 讲Ruby的时候,只需要讲部分子集(尽量越少越好),够写个普通的RGSS脚本就行了。WIN32API之类的暂时不需要,像什么for和each的区别之类的,也不要过分纠结,给一个一般性的导向就行了。

3. 逻辑一定要清楚,整个流程是怎么回事,一定要交代清楚。RGSS3是一个框架,要理解它的工作流程。最好要制作一些示意图,帮助读者理解,但这个的前提是作者对问题本身有着很深刻的理解!

4. 一定要坚持……还要合理更新。想想URG3和RGSS3小探的报告,一拖就是三年,我真感觉有点对不起读者啊………………




后来看到有题……贴代码的话又会被认为是在装逼吧

第一题,简单来说的话用了函数式编程的高阶语义,reduce是所谓的归约。Ruby的Range类支持reduce感觉有点奇怪,最初我用.to_a让Range变为Array,结果还多花了“几个字符”。
A1.
RUBY 代码复制下载
  1. (1..100).reduce(&:*)


顺便说一下,这个问题你如果知道了原理,可以写成各种花样的,就是一些函数式编程爱好者(比如我)喜欢玩的把戏而已(注意这不是什么很本质的东西,只是高阶语义的抽象)。
RUBY 代码复制下载
  1. (1..100).reduce {|x, y| x * y}
  2. (1..100).reduce &->(i, j) {i * j}
  3.  
  4. (1..100).to_a.reduce(&:*)


一个自底向上计算的斐波那契数列,通常的解法是递归地求解。
RUBY 代码复制下载
  1. fib = [0, 1, 1]
  2. 3.upto 100 do |i|
  3.   fib[i] = fib[i - 1] + fib[i - 2]
  4. end


第三个,作弊吧……要是老老实实做,筛一遍还是可以的。
RUBY 代码复制下载
  1. require 'prime'
  2. Prime.first 100


第一题是函数式,第二题有动规的思想(就是所谓的做记忆,先解子问题),第三题就是个算法(我们偷用了Ruby的库)。

看着上面代码写得爽哈?其实对做游戏没多大帮助。

因为RGSS3就只需要你给几个变量赋值,实例化几个窗口啊,喂!
作者: IamI    时间: 2014-6-22 00:24
本帖最后由 IamI 于 2014-6-22 00:48 编辑
To 教程编写者
  本次教程的重点在于OOP概念迭代器、内建类介绍。不会弄得很深。元编程一点都不会涉及。
  如果你认为新人在学习脚本中会遇到什么疑难问题(包括但不限于上面提到的重点),可以在本帖回复。如果问题提得好,我会收录在活动的问题中。
  希望大家踊跃参与编写。

最近流行装逼么。
这里不培养程序员,更不培养某些程序员,做个游戏而已啊!

另@DeathKing,第二题不来点奇怪的操作怎么行呢。
RUBY 代码复制
  1. a = (0..99).to_a
  2. ans = [1] + a[2..100].map{|i| a[i] = a[i-1] + a[i-2]}

这才是DP的精髓啊
作者: moy    时间: 2014-6-22 00:59
IamI 发表于 2014-6-22 00:24
最近流行装逼么。
这里不培养程序员,更不培养某些程序员,做个游戏而已啊!

不管是不是装逼,OOP的思维方式确实有利于进行工程管理……
抛开那些逼格奇高的专业术语,模块化思想是我认为我学习编程以来最大的收获。至少在重复劳动较多的游戏制作中,如果对此善加利用,绝对能省不少事情。
至于后几个,233,我啥也不知道,编译原理都丢给老师了,至于迭代,还是那句话,饶了我吧!
作者: 后知后觉    时间: 2014-6-22 01:16
基础这种东西...一人发一本 RMXP F1 文档.
把脚本入门基础篇发福读个几遍有个了解有个印象就行了.
要多引导动手能力,并且不要把什么东西都直接放出来.
除了脚本本身以外的东西.学会搜索也是很重要的.
重点应该是引导学习者去运用这些基础知识到对RGSS的改造里去
引导他们去改造RGSS 让他们看到学习成果 或许只是微不足道的修改.但那是继续下去的动力.


以前柳柳写过一篇教程
【RGSS教学】自己动手打造任务系统
我就非常推崇那样的教程.年代久远.现在的这垃圾搜索引擎估计搜不出来= =b
作者: moy    时间: 2014-6-22 01:35
后知后觉 发表于 2014-6-22 01:16
基础这种东西...一人发一本 RMXP F1 文档.
把脚本入门基础篇发福读个几遍有个了解有个印象就行了.
要多引导 ...

前一段话挺赞同,不过后面那一段……已经遗失的就别提了吧(另外能搜到3个结果,两个是求助,一个是已经缺失主楼的06年的帖……
作者: IamI    时间: 2014-6-22 01:54
moy 发表于 2014-6-22 00:59
不管是不是装逼,OOP的思维方式确实有利于进行工程管理……
抛开那些逼格奇高的专业术语,模块 ...

OOP 概念是正常成长过程中要转过的最大一个弯。
函数范式是习惯了OOP之后要转过的第二个大弯。
君不见多少人轻轻松松考过C++以后依然一问三不知,亦不见多少码农辛苦数载不知块为何物。

能够正常理解、应用OOP:那么你已经点燃了火花了,但是绝大多数人都死在这里。
教程,我从06年起看到14年,最大的问题就是理论多实用少,OOP登堂入室,没有问题——但是绝大多数人不需要这些东西,他们只关心怎么做出一个能用的界面。掌握怎么使用p不如掌握怎么使用$game_variables,知道class是什么含义不如知道$game_party的含义。顺带一提,当年K’的教程还知道类这个字眼要用比喻来说明,淡化类这一术语,现在的教程都直接操起板砖就上了。
作者: taroxd    时间: 2014-6-22 05:50
本帖最后由 taroxd 于 2014-6-22 06:37 编辑
DeathKing 发表于 2014-6-21 21:47
1. Ruby和RGSS3一定要分开!!!讲Ruby的时候一定专心讲Ruby,不要跟RGSS3搅在一起,把Ruby打扎实了再继续R ...



1. 十分赞同,因此我几乎没有碰RGSS3,而把这块交给了你的URG3
2. 讲得多少,要看讲的人了。
3. 你不是写了么,URG3。我想要的OOP部分就是想为理解这个打下基础。OOP名字起得很大,但里面的东西很浅。用这个名字只是为了概括而已。
4. 快去填坑!




那些题目本意只是测试循环和条件分歧,还有运算符的使用而已。并不要求写出 (1..100).inject :* 这种东西。
虽然我也很喜欢用这些。
作者: taroxd    时间: 2014-6-22 06:03
本帖最后由 taroxd 于 2014-6-22 06:54 编辑
IamI 发表于 2014-6-22 01:54
OOP 概念是正常成长过程中要转过的最大一个弯。
函数范式是习惯了OOP之后要转过的第二个大弯。
君不见多 ...


防止你们说我装逼,我先把下面的题目也去掉得了。

我的标题是 “OOP概念” 而不是 “OOP思想”,你觉得很装逼么? 可否给我想一个不装逼的标题?为了更好的概括,本帖下面所有的OOP均指这个意思。
我想不出什么标题可以更好地概括“类、对象、方法”这些东西了。
很多人只求一个能用的界面,可是当你不知道Scene和Window是什么的时候,你怎么写出能用的界面?
正是因为OOP这个弯很难转,在RGSS中又不得不转,我才会在这里重点提及。
不求OOP登堂入室,只求能懂什么是类,什么是实例,什么是实例变量,什么是方法。

至于块和迭代器,我也不觉得是什么很装逼的东西。
标题有迭代器,但我不会提到怎么制作自己的迭代器。
但 block 这种东西,还是知道一下比较好吧。只算 each 这个单词的出现次数,RGSS3的默认脚本中已经有近百次了。
为了再简化一点,防止引起误解,我把标题中的“迭代器”删掉得了。我本来指的迭代器,是指 Ruby 中 each 这类的方法!


“不会弄得很深”你加上了红字,我不懂这是为什么。可能是我的语文水平不好吧。比如迭代器,不求编写只求使用。OOP部分不需要登堂入室,但是至少之后要可以理解RGSS的框架吧?当然,

我的想法是:分支循环这种东西,上一次有写,也没什么理解的难度。而OOP和block是理解起来不容易,却恰恰是在写脚本的时候十分常用的东西

我自认为我编程水平不高,因此才会想要弄这样一个活动。否则我要装逼,我为什么不自己写教程?

到时候希望你能来看看,看看我的问题,再看看我是不是在装逼。如果愿意的话,再来写点什么东西吧
作者: 3106345123    时间: 2014-6-22 07:54
我觉得将va帮助手册汉化完全 比一群人发教程要好 毕竟帮助是va本人写的而且较客观 教程是一群人发的所以会掺杂着各种各样的个人理解
作者: taroxd    时间: 2014-6-22 08:09
本帖最后由 taroxd 于 2014-6-22 08:13 编辑
3106345123 发表于 2014-6-22 07:54
我觉得将va帮助手册汉化完全 比一群人发教程要好 毕竟帮助是va本人写的而且较客观 教程是一群人发的所以会 ...


脚本部分已经有完整汉化。我去技术区发个帖转载一下吧
作者: taroxd    时间: 2014-6-22 08:16
3106345123 发表于 2014-6-22 07:54
我觉得将va帮助手册汉化完全 比一群人发教程要好 毕竟帮助是va本人写的而且较客观 教程是一群人发的所以会 ...

事件的话,把鼠标悬停在事件框上,那些说明已经够用了。

VA图书馆里,S叔的教程也十分优秀
作者: 克莉丝    时间: 2014-6-22 08:17
这个时候把雪姐姐挖出来不就行了
作者: DeathKing    时间: 2014-6-22 09:07
本帖最后由 DeathKing 于 2014-6-22 09:09 编辑

无论是OOP还是FP,都是对于解决某一问题的思维建模。思维角度不一样,看问题的方面也不一样,自然解决问题的办法也不一样。

二者殊途同归,都是用于解决问题。OOP重在黑盒抽象,FP也有这个用途,不过更在乎“高阶语义”。像什么map、inject都是Ruby从FP那边抄来的(在SICP中,要求读者实现map、for-each、filter、reduce这几个高阶过程,实际上其它几个过程都可以通过reduce来实现。Ruby中的map、select、filter、inject、each也都是类似的可以由reduce来实现),它们都只是高阶语义而已,并不是什么很本质的东西。

Block正是Ruby从Lisp那里面抄坏的东西,Lisp中函数是一等公民,直接可以当做变量去传递。Ruby不行(Ruby里面Block、Proc、lambda还有方法对象等等,概念很混乱),需要用一些魔法,比如传递代表方法的符号(比如你上面的:*)等等。这是因为Matz想让Block“看起来像控制结构”,结果反而让问题变得更糟。

下面就给出了一个对表做map操作的实现,它用到的全是基本过程,而且你会发现它就是课普普通通的递归函数而已(没有写成尾递归调用或者CPS)

SCHEME 代码复制
  1. (define (map proc lst)
  2.   (if (null? lst)
  3.     '()
  4.     (cons (proc (car lst)) (map proc (cdr lst))))))


结论就是,像迭代器这种东西,不用讲得太细,让大家知道是这么回事,并且会使用就行了。迭代器本身的实现非常复杂而精细,仔细考察的话都足够写几篇Paper了。
作者: taroxd    时间: 2014-6-22 09:08
本帖最后由 taroxd 于 2014-6-22 09:20 编辑
DeathKing 发表于 2014-6-22 09:07
无论是OOP还是FP,都是对于解决某一问题的思维建模。思维角度不一样,看问题的方面也不一样,自然解决问题 ...

结论就是,像迭代器这种东西,不用讲得太细,让大家知道是这么回事,并且会使用就行了。迭代器本身的实现非常复杂而精细,自习考察的话都足够写几篇Paper了。


本来就是这个打算啊喂 都是你们这群大触带坏的!!害得我11L还用了红字!

还有一个很重要的问题……URG3不能坑啊……
作者: IamI    时间: 2014-6-22 10:01
不需要。
写一个Scene一个Window,只要知道class、Start、Terminate是一个固定格式,$data_*,$game_* 是什么含义就可以了,这本身就是OOP黑箱的意义。
我真的不用 Block,除非只有一行。在生产环境写 reduce:* 的话 Review 的时候一定会被人爆扁一顿。
这是我的观点:使用 for,语义清晰可辩。对初学者去讲each,map,collect这种本来就是发明用来装逼高深的方法没有意义。
迭代器很多时候特指使用yield的自定义迭代器。

简单而言:如果这是一篇RGSS的语法说明,几千字可以他很快解决问题。
如果是一篇新手向的教程——你必须先考虑对方有多蠢,没错是那些十几岁就想着要做一个网游的家伙们有多蠢,如果不考虑请参见上一条。毕竟了解什么是OOP无助于他立即写出什么看起来很厉害的玩意或者某腾讯游戏升上一级。
作者: taroxd    时间: 2014-6-22 10:22
本帖最后由 taroxd 于 2014-6-22 11:17 编辑
IamI 发表于 2014-6-22 10:01
不需要。
写一个Scene一个Window,只要知道class、Start、Terminate是一个固定格式,$data_*,$game_* 是什 ...


感谢你的认真回复。

写一个Scene一个Window,只要知道class、Start、Terminate是一个固定格式,$data_*,$game_* 是什么含义就可以了,这本身就是OOP黑箱的意义。

原来你是这么看待RGSS的……好吧你赢了。这样确实没有什么问题。
但我坚信,对OOP一定程度的理解是有好处的。

我真的不用 Block,除非只有一行。在生产环境写 reduce:* 的话 Review 的时候一定会被人爆扁一顿。
这是我的观点:使用 for,语义清晰可辩。对初学者去讲each,map,collect这种本来就是发明用来装逼高深的方法没有意义。

RGSS3默认脚本装逼我有什么办法……Ruby就是这样一个装逼的语言。
但是就我个人而言,我认为 each、map、inject、select 这种方法,无论是写起来还是理解起来都比 for 来的容易

迭代器很多时候特指使用yield的自定义迭代器。

是的。你也可以看到,yield这个词除了Fiber.yield之外,在RGSS3默认脚本中也有所应用。
Game_Pictures 和 Game_Followers 都定义了 each 方法,在 Game_Interpreter 中也有自定义迭代器。

简单而言:如果这是一篇RGSS的语法说明,几千字可以他很快解决问题。
如果是一篇新手向的教程——你必须先考虑对方有多蠢,没错是那些十几岁就想着要做一个网游的家伙们有多蠢,如果不考虑请参见上一条。毕竟了解什么是OOP无助于他立即写出什么看起来很厉害的玩意或者某腾讯游戏升上一级。

我没有说这是新手向的教程。我已经很明确,这个教程是面向学习过“第一届RGSS3入门教程大家写”,或者对脚本有初步了解的人。

作者: DeathKing    时间: 2014-6-22 11:22
IamI 发表于 2014-6-22 10:01
不需要。
写一个Scene一个Window,只要知道class、Start、Terminate是一个固定格式,$data_*,$game_* 是什 ...

我反而觉得在Ruby里面使用for反而应该被暴扁啊!而且for还是each等迭代方法的语法糖……像for这种东西,还在外层环境引入了一个新的变量,用迭代器的话,直接就在闭包里,安全无毒。

reduce、map、select之类的语义明显比for强啊!

Ruby Style Guide: https://github.com/bbatsov/ruby-style-guide

Never use for, unless you know exactly why. Most of the time iterators should be used instead. for is implemented in terms of each (so you're adding a level of indirection), but with a twist - for doesn't introduce a new scope (unlike each) and variables defined in its block will be visible outside it.


反正都不是什么很本质上的东西,工程上的实践啦~
作者: moy    时间: 2014-6-22 11:31
DeathKing 发表于 2014-6-22 11:22
我反而觉得在Ruby里面使用for反而应该被暴扁啊!而且for还是each等迭代方法的语法糖……像for这种东西, ...

each确实安全无毒…
而且for写起来太丧气了(让你懒
用for我还不如去用loop+break,起码在控制上更占优势。或者用times来代替那些卧槽的i++
感觉for只是为了方便那些C语言起步的初学者使用些基本功能才弄的吧,起码我确实看不到优势。
作者: 后知后觉    时间: 2014-6-22 11:32
moy 发表于 2014-6-22 01:35
前一段话挺赞同,不过后面那一段……已经遗失的就别提了吧(另外能搜到3个结果,两个是求助,一个是已经 ...

额.应该是论坛改用dz的时候被斩首了...
自己动手打造任务系统.rar (517.13 KB, 下载次数: 56)


作者: IamI    时间: 2014-6-22 11:45
DeathKing 发表于 2014-6-22 11:22
我反而觉得在Ruby里面使用for反而应该被暴扁啊!而且for还是each等迭代方法的语法糖……像for这种东西, ...

是。
说的都对。
但是——对新手来说太难了。绝大多数人拥有的是 pascal 或者 C 基础,不是Lisp。
不过说实在的,看到定位目标人群,我觉得我没有必要花费时间下去。
作者: 鑫晴    时间: 2014-6-22 12:27
本帖最后由 鑫晴 于 2014-6-22 12:44 编辑

(╯‵□′)╯︵┴─┴  LS看不懂啊!!!!

能不能写一写脚本废看得懂的东西

比如,教一下怎么写脚本,也就是【实践篇】

基础的语法教程,论坛已经有很多了

写一些实践类的教程吧

就像天干宝典里面那样

举例:

RM大师天干宝典--壬卷(6R技术版)-->理论教程-->跟我从头读脚本(2)

跟我从头读脚本(2)



举例:

癫疯侠客的《脚本不是高手的专利》



现在的情况就是,基础语法看得懂,但是自己写得时候却无从下手...


作者: kuerlulu    时间: 2014-6-22 14:29
自己动手打造任务系统

打开之后啥也没有
本来我以为是打开姿势不对,于是用代码编辑器打开看看
结果直接把我吓尿了

作者: 芙蕾娅    时间: 2014-6-22 18:16
来说个感觉很羞耻的事情,这里是个RGSS2&RGSS3脚本断断续续摸了三年多却从未深入,自己动手能力1的偷懒渣渣,
所以脚本水平也只停留在新手以上熟练未满的程度,
但感觉以制作一个普通的RM游戏来说,已经足够了,还要多高端是指柳柳的格斗纹章还是少侠一炷香的那种水平那我就还真不够能力
更羞耻的是,帖子里所提到的"OOP概念","模块化思想","迭代器","block"我其实根本不知道这是什么……
要不是11L的taroxd前辈"迭代器,是指 Ruby 中 each"我才发现迭代器是什么233(话说迭代器真的只是这意思吗?理解能力0.1)
还有18L II前辈提到的each,map,collect的发明是用来装逼我才不会发现我一直在装逼(不对,我貌似经常都在装逼吧)
而且在知道each之前我还真的一直用for和i++来读取数组变量这呆子方式来写脚本
之后知道了each真的很兴奋(然后把自己写的脚本一个个for更改成each然后感觉累不爱变成了一半for一半each的鬼畜脚本)
VA推出后进一步知道了times,map,collect(暂时还不熟练= =)
写起脚本时明明是在写VA的脚本,但我还是会翻回XP和VX的F1或者脚本库看看那些简单的脚本写法,VA的脚本库看着实在太像装逼了渣渣看得头疼(
但之后看回XP的脚本时却感觉容易理解又是另个故事了……
而且我只是一个普通的单纯地想做自己的游戏的白痴的RMer而已~(绕口
因为数学烂,连tan sin cos都不明白,写脚本什么的新手时期我可从来可没想过(当人们幻想起了屈服在脚本下的那个恐惧(离题了
然后忘了哪个大大(貌似是国外RM站的帖子我忘了)写了个Vx教程从更改window_gold后自己动手我感觉酸爽欢乐无比,
就像后知后觉前辈提到的自己动手打造任务系统教程一样,自己动手解决问题是很开心的事情,
之后我有点过渡沉溺在自己动手解决问题所带来的优越感,但回过神来发觉我就是不想深入研究脚本,因为我是来做自己的故事而不是来当程序员的丫!
RM不就是个让不会程序的人制作游戏的工具嘛,搞得如此牛逼还不逼死我这渣渣的存活可能性吗!(一巴掌扇死前面说的话)
题外话:之前貌似看见某报道指某RMer脚本员冲进EB扇了RGSS程序员几巴掌(胡扯)
比起写个让人看得清楚,看得明白的教程,现在应该先从扶起一个RMer了解自己动手改脚本是件多么好玩的事情为优先,他们才会去看脚本教程吧?(竖起食指放在脸前

以上文章只是想到什么写什么(请准备砖头)

作者: taroxd    时间: 2014-6-22 18:28
芙蕾娅 发表于 2014-6-22 18:16
来说个感觉很羞耻的事情,这里是个RGSS2&RGSS3脚本断断续续摸了三年多却从未深入,自己动手能力1的偷懒渣渣 ...

你知道class是什么意思吗?你知道@hp是什么意思吗?这就是OOP概念
你知道 [1,2,3].each {|x| p x} 是什么意思吗?这就是一个迭代器后面跟个block
怎么样,没什么难的吧?你最多只是不知道这些名词而已
话说迭代器真的只是这意思吗?

参考 Game_Interpreter#iterate_actor_id
在 Ruby 中所指的“迭代器”就是这么简单。
但回过神来发觉我就是不想深入研究脚本

不会深入的请放心。这个教程你应该来编写而不是学习。
RM不就是个让不会程序的人制作游戏的工具嘛,搞得如此牛逼还不逼死我这渣渣的存活可能性吗!

RM的广告就是简单和专业的结合啊……
比起写个让人看得清楚,看得明白的教程,现在应该先从扶起一个RMer了解自己动手改脚本是件多么好玩的事情为优先,他们才会去看脚本教程吧?(竖起食指放在脸前

https://rpg.blue/thread-367118-1-1.html
https://rpg.blue/thread-367122-1-1.html
改脚本确实是一件好玩的事情
作者: Mic_洛洛    时间: 2014-6-22 18:38
这看着怎么这么眼熟?貌似我在任VA区版的时候也曾搞过这活动……= =||
我想说,6R真心不是培养程序员的地方~将帮助文档讲一遍或从RUBY教起都不实际……

其实,我觉得将图书馆中简单实用的脚本拿出来,通过讲解实例来让有需要的人学习就好了。
至于基本语句、数据结构、算法设计之类的就别说了。真正想深入的,自然会去恶补基础和拓展相关知识的……
作者: satgo1546    时间: 2014-6-22 20:24
我想来灌水
话说我好想念HAR君、洛洛、还有那个谁谁谁、那个谁谁谁、那个谁谁谁……
作者: 正太君    时间: 2014-6-22 20:47
会改脚本慢慢就会写脚本了...
作者: taroxd    时间: 2014-6-22 20:52
正太君 发表于 2014-6-22 20:47
会改脚本慢慢就会写脚本了...

是。这一点我很赞同。

也许之后我会发个“我是如何改脚本的”之类的帖子,就像moy发的那个一样。

但有的时候,基础就是硬伤呢~

作者: 无脑之人    时间: 2014-6-22 21:44
本帖最后由 无脑之人 于 2014-6-22 22:36 编辑

http://qzone.haoduoge.com/music/90CCA4L43W6C233006CCE5F344DAB5D997A0C.mp3
说奇怪的话一定要放BGM  //《無間の鐘 ~ Infinite Nightmare 》
-----------------------------------------------------------------分割线nia
说真的,如果只是为了上了一天课的学生发泄一下做个小游戏的话不需要这些,但是我觉得这个帖子不是面向他们的,面向他们的教程早已满大街都是了,而且里面的Bug可能和教程数差不多233
然而让一个从脚本渣变成脚本触的教程却很难看到,只能从脚本触们随口提一提的东西里面提取精华
如果说什么参考文档什么的,我相信最开始的时候还意识不到【如果无意识中发现了则是一件极为高兴的事情呢,不是么?
虽然这个帖子最终注定要成为脚本触们乱舞的地方,但是起码是给想要学习成为程序猿的孩纸们【比如咱】一个学习的空间呢
-----------------------------------------------------------------分割线呢
至于OOP/GP/FP什么乱七八糟的,不要明确的提出来就好了啦,这些装B的名词不就是学脚本最好的奖励么【笑
又想起了自己学ruby的时候,满6R的找教程,追踪大触们的足迹,试图寻找新的姿势,哪怕是发现一点点内容,也会一脸激动的记载笔记本上
现在有了这么一个极好的空间,帮助了那些有求知欲的好孩纸们,何乐而不为呢?
通过这个帖子,可以筛选出那些有毅力有求知欲又有自主学习能力的好孩纸们,然后就可以加以辅导与帮助
通过这个帖子,可以拉近脚本渣与脚本触的距离,见贤思齐嘛【我也很想成为DK大大那么厉害的人呢
通过这个帖子,也可以让脚本触们和咱这样的脚本渣们想起以前的时光,跑得快了,回头看一看走过的路不是很有趣么233
-----------------------------------------------------------------分割线喵呜
每次说完奇怪的话就觉得自己前言不搭后语毫无逻辑,哎呀呀不管了呢,反正自己本来就是baka呢,bakabaka~☆
作者: taroxd    时间: 2014-6-23 16:07
本帖最后由 taroxd 于 2014-6-23 20:07 编辑
无脑之人 发表于 2014-6-22 21:44
说奇怪的话一定要放BGM  //《無間の鐘 ~ Infinite Nightmare 》
------------------------------------- ...


为了自顶我就来回复你一下吧。

这个帖子绝不是面向一点都不懂脚本的新人(那是第一届),但也不会搞到触手的等级。我的目标,只是让大家有能力去认识RGSS3这个庞大的体系罢了。

你真的想要在脚本水平上有所提高的话,去翻一些国外的经典教程,去从头到尾翻几遍Ruby文档,去找DK大大学一学元编程都是不错的选择。这次的活动,说到底,也就是如标题所言的,“入门”而已。

-----------------------------------------------------

那位说我装逼的,感谢你的热心参与,但我实在是不知道你为什么要这么说。

6R的所有版主都能看到我对这次活动所做的准备。特别是 @喵呜喵5 @余烬之中 给了我很大支持与帮助。

我相信他们,包括看过我提的问题的所有人都知道,这虽然不是一个“零基础教程”,但确实是一个不折不扣的“入门教程”。
至于他们的写得多深入我就不知道啦~

很多人都知道我有“代码强迫症”的习惯。我会把这个习惯发挥到这个活动里面,尽量确保教程里面没有什么Bug。

预祝活动的圆满成功。尽管我脚本技术不是很过关,但如果我有时间的话,我自己也会参加,为这个活动献出一份力量。

-----------------------------------------------------

活动奖励是泛滥的好人卡哦~ 泛滥成灾~

我也是一样不知所云,感觉自己萌萌哒~
作者: taroxd    时间: 2014-6-24 20:56
本帖最后由 taroxd 于 2014-6-24 21:02 编辑
正太君 发表于 2014-6-22 20:47
会改脚本慢慢就会写脚本了...


既然沉到水区第二页了,我又要自顶一次。但是我不会像某活动一样无节操地纯自顶,我总会写一点东西233

「会改脚本慢慢就会写脚本了...」这句话说得很对。事实上,我第一次接触的RM脚本正是RGSS3。里面没有 for 循环,因此,在改脚本的过程中,渐渐地我便明白了 each 的含义。是的,each 真的非常易于理解。block 什么的,在 ruby 中,也确实没什么特别难的地方。
我写代码到现在,应该一次 for 都没有用过吧……
times,upto,step,each,map,select,find,index,inject,each_with_index……有这么多可爱的东西,我为什么还要去玩 for 呢?

我曾改过错误百出的代码。在 Game_Actor 方法的定义中,我曾经纠结过多次,是写 @hp 还是 hp ?为什么我打 hp = mhp 无效,非得 @hp = mhp 才行?(当然,更久以后才知道,正确的做法是 self.hp = mhp)@hp 到底是谁的 hp ?我都不理解,只是对着默认脚本依样画葫芦。也许我走运得到了正确的代码,也就这么混混过去了。事后看来,代码依旧破绽百出。
我想要明白 RGSS3 这个庞然大物是怎样工作的,可是我做不到。
理解“类、实例、实例变量”,是多久以后的事情了呢……这,不是6R论坛里的教程教给我的。

于是,这便成为我搞这场活动的契机。
F1 帮助文档?讲得实在太快太简略,新人很难理解。
零基础学脚本?这种的论坛里多了去了,就和在书店里找《xx天精通xxx》差不多。可是能讲解到让我们能够阅读 RGSS3 代码水平的却少之又少。
Ruby 教程?中文的太少太老,更无法期待大家都读得懂英文。
我不愿意其他人和我一样再走弯路,因此,我极端注重 OOP 这一部分。OOP 的思想有也罢,没有也罢。但是 Ruby 中,有关对象的二三事,还真是非知道不可。
我的希望是,通过这个活动,能引领大家自己去读懂 RGSS3。我知道这不现实,这种并非面向零基础的教程可能没多少人去看,但是,总有一些和我一样求知欲旺盛的人,会想要这样的东西。

从有这个活动的想法到现在,我得到了许多人的大力支持。

@喵呜喵5 告诉我,我原来的思路太过偏重于理论。于是,我把 F1 帮助文档的实践篇转载了过来,并在教程中添加了一些简单的实际问题。
从活动策划开始,就一直鼎力相助。
他自己,也在这篇帖子里,把理论完全丢在一边把实践的精神付诸到底。

@余烬之中 我已经看到了他写的大段大段的教程。他写得很好、很卖力,给了我这次活动或许可以成功的信心。
不失时机地卖萌,在关键点却十分严肃。我喜欢这样的风格。

@moy 在此写出了编写脚本的过程。尽管他对概念的解释不够准确,但“编写脚本的步骤”,这一点确实很有借鉴意义。
对我不留情面的吐槽,也能有槽必回,十分感谢。

@各位版主们,放任我这样乱来。管理员也默许了我这种一定可能会滥发卡的行为。但我相信,愿意、有能力参加这个活动的人,一定不是为了那几张好人卡,而是和我一样,因为对论坛满满的爱。

@所有支持这个活动的人。我会尽全力把这个教程弄好。即使参与者寥寥,我也会自己把坑全部填上!这个活动一定有结束的一天!

写了这么多不知所云的东西,其根本目的就在于:自顶!
作者: kuerlulu    时间: 2014-6-25 22:42
渣渣在下也就把你们的帖子做成帮助文档(.chm)好了,其他的我不会•﹏•
作者: taroxd    时间: 2014-6-26 05:59
本帖最后由 taroxd 于 2014-6-26 06:02 编辑
kuerlulu 发表于 2014-6-25 22:42
渣渣在下也就把你们的帖子做成帮助文档(.chm)好了,其他的我不会•﹏•


十分感谢!不知可不可以先做起第一届的入门教程呢?(https://rpg.blue/thread-249826-1-1.html
因为这个教程毕竟不是零起点。
最后那个过程抽象千万不要放进去~

再次感谢~
作者: 鑫晴    时间: 2014-6-27 23:51
To 脚本学习者
  这个教程是面向学习过“第一届RGSS3入门教程大家写”,或者对脚本有初步了解的人。
  所谓“初步了解”,请参考下方的脚本自测题


脚本自测题呢?

沙发?还是在4楼?
作者: taroxd    时间: 2014-6-28 06:14
鑫晴 发表于 2014-6-27 23:51
脚本自测题呢?

在沙发?还是在4楼?

能把沙发的脚本用正常的代码写出来就行了

会点循环、分支应该就没有问题
作者: 鑫晴    时间: 2014-6-28 15:51
本帖最后由 鑫晴 于 2014-6-28 16:01 编辑

第一题:



F1帮助文档->脚本入门->基础->循环->for ~ in ~ end


RUBY 代码复制
  1. a = 1
  2. for i in 1..100
  3.   a *= i
  4. end
  5. print  a
  6. rgss_stop




第二题:

F1帮助文档->脚本入门->基础->循环->for ~ in ~ end

刚开始看不懂,然后百度了一下才知道,这玩意原来叫斐波那契数列

这个数列从第二项开始,每一项都等于前两项之和。
F1=1
F2=1
Fn=F(n-1)+F(n-2)(n>=2,n∈N*)

RUBY 代码复制
  1. def Fibonacci(n)
  2.   a,b=1,1
  3.   print a,",",b,","
  4.   for i in 3..n-1
  5.     b=a+b
  6.     a=b
  7.     print b,','
  8.   end
  9.   print a+b,"\n"
  10. end
  11. print Fibonacci(18)
  12. rgss_stop



第三题:

  呵呵,难怪这么眼熟,原来是质数
一个大于1的自然数,如果除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数);否则称为合数。

然后...呵呵 我不会告诉你我是照搬DeathKing的

RUBY 代码复制
  1. require 'prime'
  2. Prime.first 100






作者: kuerlulu    时间: 2014-6-28 18:56
因为眼前正好有RMXP的css就直接拿来用了[噗@taroxd @无脑之人
先看看行不行, 可以的话我就继续弄


期末终于考完了..
作者: taroxd    时间: 2014-6-28 18:58
本帖最后由 taroxd 于 2014-6-28 19:20 编辑
kuerlulu 发表于 2014-6-28 18:56
因为眼前正好有RMXP的css就直接拿来用了[噗@taroxd @无脑之人
先看看行不行, 可以的话我就继续弄



@kuerlulu
爪机上了电脑版论坛看了一下,ok~ 谢谢
作者: taroxd    时间: 2014-7-1 09:25
ゲームスタート!
作者: VIPArcher    时间: 2014-7-2 02:08
虽然能解决一些简单的问题,但是对写教程表示无力啊。




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