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

Project1

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

[已经解决] 请教一句脚本的写法,就一句

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-6-23
帖子
275
跳转到指定楼层
1
发表于 2014-12-5 11:52:20 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
如果1号事件的右边不能通行,而且不是被其它不可穿透的事件挡住。写在并行事件的条件分歧里,怎么写?

评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

HзO

Lv1.梦旅人

梦石
0
星屑
155
在线时间
332 小时
注册时间
2013-7-6
帖子
356
15
发表于 2014-12-11 12:04:33 | 只看该作者
HзO 发表于 2014-12-11 10:16
能否说一下具体的用法?谢谢

比如在脚本编辑器里新建一页写
  1. class ABC
  2. def de
  3. if $game_map.passable?($game_map.events[1].x+1, $game_map.events[1].y, 6)
  4.   for i in 1 .. $game_map.events.size
  5.     unless $game_map.events[i].x==$game_map.events[1].x+1 && $game_map.events[i].y==$game_map.events[1].y && $game_map.events[i].through == false
  6.         事件
  7.     end
  8.   end
  9. end
  10. end
  11. end
复制代码
调用的时候用
  1. alex=ABC.new
  2. alex.de
复制代码

点评

(其实我 class << ABC = Object.new 习惯了……)  发表于 2014-12-11 17:16
这么用习惯了OTL  发表于 2014-12-11 13:02
同样没有看出生成实例的用处  发表于 2014-12-11 12:39
不要去这么麻烦吧,直接定义在Kernel模块或者Game_Interpreter事件解释器下,就可以在任何地方直接调用,就不用生成实例了。  发表于 2014-12-11 12:19

评分

参与人数 1星屑 +200 收起 理由
︶ㄣ牛排ぶ + 200 认可答案

查看全部评分

偶是熬夜学编程的傻子
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-6-23
帖子
275
14
 楼主| 发表于 2014-12-11 10:16:38 | 只看该作者
wolves 发表于 2014-12-9 21:18
可以用调用类的方法的方法判定

能否说一下具体的用法?谢谢
HзO
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
332 小时
注册时间
2013-7-6
帖子
356
13
发表于 2014-12-9 21:18:31 | 只看该作者
HзO 发表于 2014-12-9 15:57
可以直接写在事件的条件分歧里吗?

可以用调用类的方法的方法判定
偶是熬夜学编程的傻子
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-6-23
帖子
275
12
 楼主| 发表于 2014-12-9 15:57:56 | 只看该作者
wolves 发表于 2014-12-8 13:04

可以直接写在事件的条件分歧里吗?
HзO
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
332 小时
注册时间
2013-7-6
帖子
356
11
发表于 2014-12-8 13:04:56 | 只看该作者
本帖最后由 wolves 于 2014-12-8 13:07 编辑
  1. if $game_map.passable?($game_map.events[1].x+1, $game_map.events[1].y, 6)
  2.   for i in 1 .. $game_map.events.size
  3.     unless $game_map.events[i].x==$game_map.events[1].x+1 && $game_map.events[i].y==$game_map.events[1].y && $game_map.events[i].through == false
  4.         事件
  5.     end
  6.   end
  7. end
复制代码
偶是熬夜学编程的傻子
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-6-23
帖子
275
10
 楼主| 发表于 2014-12-8 11:22:05 | 只看该作者
myownroc 发表于 2014-12-6 16:30
那这样应该是$game_map.events[7].x+1==$game_map.events[6].x && $game_map.events[7].y == $game_map.e ...

这个写法我知道,我要求的是能判断出:如果1号事件右方不可通行的原因是被不可通行图块挡住,而不是被任何事件挡住。用一句脚本写在事件的条件分歧里

换一句话说:如果1号事件右方不可通行,并且右方没有被其它事件挡住
HзO
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2749
在线时间
2630 小时
注册时间
2013-1-16
帖子
5657

贵宾

9
发表于 2014-12-6 16:30:15 | 只看该作者
HзO 发表于 2014-12-6 15:38
比如说,判断7号事件的右边有没有6号事件挡住是写成下面这样?但是不管右方是不是有6号事件挡住,用这种 ...

那这样应该是$game_map.events[7].x+1==$game_map.events[6].x && $game_map.events[7].y == $game_map.events[6].y
在这之前还要判断7的右边是否超出地图
(Created by @喵kano)


施工现场:hotege.github.io
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-6-23
帖子
275
8
 楼主| 发表于 2014-12-6 15:38:25 | 只看该作者
本帖最后由 HзO 于 2014-12-6 15:39 编辑
myownroc 发表于 2014-12-5 23:11
实在抱歉,应该这么写


比如说,判断7号事件的右边有没有6号事件挡住是写成下面这样?但是不管右方是不是有6号事件挡住,用这种方法判断出来的结果总是:右方可以通行


$game_map.events[7].passable?($game_map.events[6].x+1,$game_map.events[6].y,6)
HзO
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2749
在线时间
2630 小时
注册时间
2013-1-16
帖子
5657

贵宾

7
发表于 2014-12-5 23:11:42 | 只看该作者
HзO 发表于 2014-12-5 22:43
不管1号事件右方是不是有2号事件挡住,用这种方法判断出来的结果总是:右方可以通行

...

实在抱歉,应该这么写
  1. $game_map.events[2].passable?($game_map.events[3].x+1,$game_map.events[3].y,0)
复制代码

点评

最后一位表示方向,可由2 4 6 8代替  发表于 2014-12-5 23:13
(Created by @喵kano)


施工现场:hotege.github.io
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 02:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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