设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2564|回复: 4
打印 上一主题 下一主题

[已经解决] 萌新提问【点灯游戏】

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2010-7-14
帖子
6
跳转到指定楼层
1
发表于 2017-1-1 18:49:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
萌新一只,长话短说
RPGMaker基础教程中有一篇叫事件进阶篇:点灯游戏
其中的实现方法感觉并不是简单易懂啊 ,所以我换了种方法

1、将4盏灯赋值为1                                                                                                            (x,y+1)
2、每次触发一盏灯时,将当前事件与其相邻两事件的变量*-1                             (x+1,y)(x,y)(x-1,y)
3、当变量和为-4时,触发奖励                                                                                            (x,y-1)

现在问题如下:
1、我已经取得了当前事件的xy值,如何实现通过坐标值或事件id触发该事件?
2、如何实现变量相加?

{:4_96:}

评分

参与人数 1星屑 +50 收起 理由
VIPArcher + 50 结帖

查看全部评分

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

2
发表于 2017-1-1 20:03:49 | 只看该作者
本帖最后由 RaidenInfinity 于 2017-1-1 20:05 编辑

在这里附上一个以非常猥琐的方式达成效果的点灯游戏范例。

主要原理是用事件脚本指令反转独立开关的原理来达成效果。
在范例里有16盏灯,ID是1到16。在脚本内会有判定ID范围的部分,改成对应的就行了。
如果你想要更进一步地学习,我可以追加详细的原理解释。
还有就是,坐标的判定和地图配置有关,如果你无法成功在你的工程里实现,那请提供谜题配置的截图(如果不想破梗剧透可以私信)。

事件的所有指令毕竟最终还是得靠脚本来处理的。脚本指令如果能学会的话,可以免去很多很多的麻烦。
如果出现找不到VLGothic字体而无法运行的问题,请先储存一下工程才运行游戏。

点灯范例.rar

1.42 MB, 下载次数: 662

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复 支持 0 反对 1

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2010-7-14
帖子
6
3
 楼主| 发表于 2017-1-1 20:43:40 | 只看该作者
RaidenInfinity 发表于 2017-1-1 20:03
在这里附上一个以非常猥琐的方式达成效果的点灯游戏范例。

主要原理是用事件脚本指令和反转独立开关的原理 ...

脚本意思明白了,简单粗暴。
唯一的问题就是不明白其中的|k,v|,include?(k)是什么东西。这个是ruby么?
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

4
发表于 2017-1-1 20:54:55 | 只看该作者
本帖最后由 RaidenInfinity 于 2017-1-1 20:57 编辑

$game_map.events.each{|k,v|   }

$game_map.events就是当前地图内的事件.它是一个Hash(哈希表/键值表),就像每层(值)都有写名字(键)的柜子。
each是“每个”的意思,就是把这个“柜子”的每一层(键值配对)都拿出来一个个处理
|k,v| 的话,就是指键值配对的键(key)与值(value),将它们代入变量。一般我的习惯是用 |k, v|,当然用什么 |i, j| 也是行的,只要有2个就对了。
那么{ |k,v| 和 }之间的 就是要循环的内容了。

next if !(1..16).include?(k)
这句的意思是,如果(if) 1到16(包含16)之间的数字中(1..16) 包括(include?)k这个变量的值,那就直接跳到下一个循环(next)。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2010-7-14
帖子
6
5
 楼主| 发表于 2017-1-1 21:10:40 | 只看该作者
RaidenInfinity 发表于 2017-1-1 20:54
$game_map.events.each{|k,v|   }

$game_map.events就是当前地图内的事件.它是一个Hash(哈希表/键值表) ...

明白了,非常感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 01:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表