Project1
标题:
【教程】+【范例】简易多背包系统(超萌的范例)
[打印本页]
作者:
怪蜀黍
时间:
2011-9-23 13:59
标题:
【教程】+【范例】简易多背包系统(超萌的范例)
本帖最后由 protosssonny 于 2011-11-4 09:11 编辑
今天给大家发一个“简易多背包系统”。
首先声明:
1、如果您是(新手+伸手党),请无须看我这些废话,直接把范例工程拿去用;
2、如果您是(新手+非伸手党),请看完我这罗罗嗦嗦几百字,再下范例工程,对您会有很大帮助的;
3、如果您是高手,请无视本帖子。
(新手+非伸手党的)正文部分:
自定义的全局变量($asd等以$开头的变量)是无法被存档的,即下次载入游戏存档时,上次运行有数值的全局变量将变成nil。所以自定义的全局变量只能随时计算随时使用。
而有些特殊的全局变量是可以被存档的,例如开关($game_swicthes[m])、变量($game_variables[n])、独立开关($game_self_switches[[m,n,"A"]])等等。于是我们可以利用他们能被存档的特性来储存我们的背包物品。
不要以为$game_variables[n]只是一个变量,其实$game_variables[n]还可以当一个开关、甚至一个数组。
例如当数组使用的情况:
$game_variables[1]=[1,3,nil,"等等"]
p $game_variables[1]
复制代码
运行结果就是:[1,3,nil,"等等"]
于是我们把很大的变量1000号以上用来制作简易多背包系统的储存数组的想法是可行的,毕竟做一个正常的游戏用到1000+的变量几乎是不可能的,退一万步,实在发生了可能,我们可以2000+甚至3000+以上的变量,无所谓。
思路是,我们把数组$game_variables[1001]的元素定义为999个,每一个元素对应一个武器的数量、比如,当某武器3号数量为0时,数组$game_variables[1001]的3号元素元素就为0;武器5号数量为2时,数组$game_variables[1001]的5号元素元素就为2。作了这样的一一对应,再加上$game_variables[1001]是可以存档的,以后要调用某武器数量,就有调用数据的依据了。
我们把所有的物品、武器、防具都作了这样的一一对应以后,就可以做成一个简易的多背包系统了。
怎样定义一个999个元素的数组?很简单,比如1000号变量定义为含999个元素的数组:
$game_variables[1000]=[]
for i in 1..999
$game_variables[1000][i] = 0
end
#如此一来,$game_variables[1000]就是这样一个数组:
#[nil,0,0,0,0,0,0,0,……,0,0]
复制代码
有同学可能会问,为什么要用数组来储存数据,直接用1号变量对应1号武器,2号对应2号难道不可以吗?当然可以,可是假如我们有300个武器、400个防具、900个物品,那么将消耗1600个变量,浪费了很多很多变量,而且管理起来也不方便。如果用数组来处理,只消耗3个变量,即1001至1003号,非常精简。所以我们选择了数组来储存数据。
最后总结一下,
本教程提供了一个储存数据的思路——利用变量可以存档,可以定义为数组。同样的道理,我们还可以使用开关、独立开关形成数组来储存数据,方法是一样的。利用这个思路,我们可以储存大量繁多的数据列表,简单方便。写脚本也思路清晰,简单明了。
(新手+伸手党的)正文部分:
请直接下载范例工程:
简易多背包系统.rar
(247.82 KB, 下载次数: 8820)
2011-9-23 13:56 上传
点击文件名下载附件
高手的正文部分:
请无视本帖子,谢谢。
作者:
RPGmaster
时间:
2011-9-23 22:29
比起脚本,这个范例更萌=w=
我突然有灵感了啊XD
作者:
各种压力的猫君
时间:
2011-9-24 03:24
思路/脚本很不错 =W= 抱走
其实能不能存档这个问题,重定义一下Scene_File的write_save_data(file)和read_save_data(file)不就好了?
嘛……一般变量用不到那么多倒是真的。况且的确大大简化代码 =W= ~
作者:
xbjinxilong
时间:
2011-10-10 13:05
非常感谢 楼主对新人的照顾~~ 作为时间不多 又想做游戏的人 楼主的 范例工程 非常实用
作者:
怪蜀黍
时间:
2011-11-3 22:12
花了一天做出的超萌的范例,决不能就这样沉了!
作者:
精灵使者
时间:
2011-11-5 22:34
自定义的全局变量($asd等以$开头的变量)是无法被存档的,即下次载入游戏存档时,上次运行有数值的全局变量将变成nil。所以自定义的全局变量只能随时计算随时使用。
这个其实很容易解决,只要改动Scene_Save和Scene_Load里相应保存的地方就好
作者:
502592591
时间:
2011-11-6 12:59
小弟初来咋到
作者:
1341469131
时间:
2011-12-11 09:35
新手在伸手中~~
作者:
zc2628666
时间:
2012-1-10 13:34
LZ....在你的范例里是好使的.....可是我用到我的游戏里面就......
只要切换背包就
作者:
忧雪の伤
时间:
2012-1-11 21:07
本帖最后由 忧雪の伤 于 2012-1-11 21:07 编辑
首先,动用
RGSS
的
Game_Variable
到底有什么好处?
其次,
ary = Array.new(9999) {}
复制代码
我什么都不知道哦~
作者:
lxgame99
时间:
2012-9-1 13:15
下了运行游戏出错 提示找不到RGSS200J.DLL 倒是可以进去齿轮
作者:
chd114
时间:
2012-9-2 17:10
思路不错,但是···这样不卡吗?
作者:
风雪优游
时间:
2012-9-3 12:49
非常可爱的范例,很有用的小系统。不过看了前面的解说。到底储存之后有用么?
不过可惜的是最近转VA党了,VX的系统都用不上
作者:
吸血鬼之妻
时间:
2012-9-3 19:11
很奇异的系统
能将切换背包的选择加入到菜单内吗
作者:
qq986160352
时间:
2012-9-8 22:31
楼主是好人
作者:
tjjlb
时间:
2012-10-25 21:16
为何下载到39.6KB是就停下了(试了好多次)
作者:
彭格列第XI代
时间:
2012-10-28 21:54
好东西~难的有那么详细的教程=w=已下载~
P叔好人~
幕后指使→_→P叔
作者:
zwjj
时间:
2013-3-21 12:48
求 逝去的回忆 战斗系统
作者:
diypojub9
时间:
2013-3-22 22:55
提示:
作者被禁止或删除 内容自动屏蔽
作者:
a2445606444
时间:
2013-7-9 17:14
我想问下改VA怎么改
作者:
Fakmab
时间:
2014-2-12 23:08
本帖最后由 Fakmab 于 2014-2-12 23:09 编辑
[@protosssonny]
你成功得到250糖
作者:
火之克里斯
时间:
2014-4-26 10:39
努力学习中........
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1