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

Project1

 找回密码
 注册会员
搜索

能不能自动判断事件和主角的方位与距离呢?

查看数: 3349 | 评论数: 14 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2012-4-21 19:52

正文摘要:

本帖最后由 835494264 于 2012-4-21 20:07 编辑 就是自动对比本事件和主角的X、Y坐标,大致分为8个方位, 然后可以用脚本带入并行事件的条件判断, 就可以做主角和事件相对8个方位不同的反应? 嗯,我知道变量就 ...

回复

MeowSnow 发表于 2012-4-24 13:47:35
hk0768 发表于 2012-4-24 03:45
知道能做,但我知道你不会做,就算会做也没这样,因为你连下载都没有吧,一个事件弄两个变量一个公共事件? ...

嗯嗯,引起你的不快对不起了,
不过纯事件我自己能做的,看了你的截图我就发现我的思路和你差不多,
我设置过纯事件,知道多麻烦,所以我才下2V的血本求脚本,
嗯嗯,最后还是,引起你的不快真是对不起了,没有任何不尊重的意思。
hk0768 发表于 2012-4-24 03:45:34
本帖最后由 hk0768 于 2012-4-24 04:08 编辑

知道能做,但我知道你不会做,就算会做也没这样,因为你连下载都没有吧,一个事件弄两个变量一个公共事件?我第一张图里面7个人物甚至可以更多只用一个事件判断,你知道?脚本不需要代入事件号?或者你是觉得事件的是没什么本事的,连下都懒得下的,我告诉你,脚本比事件简单,当做事件比脚本麻烦!!脚本固然简单,我也技不如人,但请你尊重每一个回复过你的人,不管你信不信我是在回复后才知道你悬赏了2V,我测试了修改了下工夫,但你连下载都没有就来评论我?
MeowSnow 发表于 2012-4-23 13:46:26
piaoy 发表于 2012-4-22 11:27
楼上的几位都是正解,我把详细的脚本写一下巴:
判断1号事件的x和主角x的差是否小于等于7:用这个脚本可以 ...

貌似可以用了,谢谢呢。


‘‘──835494264于2012-4-23 13:47补充以下内容

{:4_148:}
关于12楼和11楼……那个表示感谢的vip该给谁呢……
’’
piaoy 发表于 2012-4-22 11:27:27
楼上的几位都是正解,我把详细的脚本写一下巴:
判断1号事件的x和主角x的差是否小于等于7:
  1. ($game_map.events[1].x -
  2. $game_player.x).ab <= 7
复制代码
用这个脚本可以举一反三写出你要的效果。
下面这个是判断1号事件的x是否大于主角的x
  1. $game_map.events[1].x >=
  2. $game_player.x
复制代码
用这个脚本也可以举一反三
这些脚本可以写在条件分歧的脚本里。


‘‘──piaoy于2012-4-22 12:13补充以下内容

举例:
1号事件与主角的x举例是否小于7
  1. ($game_map.events[1].x -
  2. $game_player.x).abs
复制代码
1号事件的x与主角的x是否相等(把等号换成>= <= > <      可实现比较大小)
  1. $game_map.events[1].x ==$game_player.x
复制代码
把上面的脚本更具你的需要举一反三现在条件分歧的脚本里就可以了。
’’
hys111111 发表于 2012-4-22 10:46:19
本帖最后由 hys111111 于 2012-4-22 10:57 编辑
  1. e = $game_map.events[@event_id]
  2. p = $game_player
  3. x = e.x - p.x
  4. y = e.y - p.y
复制代码
  1. if x == 0 and y == 0
  2.   p "该事件与角色重合"
  3. end
  4. if x== 0 and y > 0
  5. p "该事件在北部距角色"+(y.abs).to_s
  6. end
  7. if x==0 and y < 0
  8. p "该事件在南部距角色"+(y.abs).to_s
  9. end
  10. if y==0 and x > 0
  11. p "该事件在东部距角色"+(x.abs).to_s
  12. end
  13. if y==0 and x < 0
  14. p "该事件在西部距角色"+(x.abs).to_s
  15. end
复制代码
  1. if x > 0 and y > 0
  2. a = (x*x)+(y*y)
  3. for b in 0...999
  4.   c = b*b
  5.   if a == c
  6.    break
  7.   end
  8. end
  9. p "该事件位于东北部距角色"+b.to_s
  10. end
复制代码
就这样,以此类推

点评

路過學習  发表于 2012-4-24 04:53
可以用呢,谢谢了,不用调试大量变量了,实在感谢。  发表于 2012-4-23 13:46
我的意思是c = b²  发表于 2012-4-22 11:20
c = b ** 0.5  发表于 2012-4-22 11:06
Sonic1997 发表于 2012-4-22 06:49:31
本帖最后由 Sonic1997 于 2012-4-23 13:40 编辑

如果真的是8方向的话就很容易解决了。
假设距离是2,主角在坐标(5,7)
那么事件有可能出现在
(3,5) (5,5) (7,5)
(3,7) (5,7) (7,7)
(3,9) (5,9) (7,9)
经过减法运算(主角坐标减去事件坐标)
(-2,-2) (0,-2) (2,-2)
(-2,0)- (2,0)
(-2,2) (0,2)(2,2)
那么条件分歧就是:



范例工程- -

8 Direction.rar (187.22 KB, 下载次数: 37)

点评

就是这个意思呢,谢谢了,实在期待成品。  发表于 2012-4-23 13:41
hk0768 发表于 2012-4-22 02:46:10
本帖最后由 hk0768 于 2012-4-24 03:47 编辑

话说要保留10个字,违规了就扣分吧

点评

谢谢呢,其实我知道变量能做,但是我要插入的事件有点多,一个事件俩变量,俩变量一个公共事件……会累死的……  发表于 2012-4-23 13:39
piaoy 发表于 2012-4-21 23:05:10
我写在沙发上的脚本有错误,请把最后两行那段脚本中的“=”去掉

点评

实在对不起,我之不惠甚矣,给个设置好的图示吧。  发表于 2012-4-23 13:41
MeowSnow 发表于 2012-4-21 22:05:07
piaoy 发表于 2012-4-21 21:17
脚本编辑器左侧game_character1里有应该attr_reader:x,把reader改成accessor

是说以accessor和reader做关键词都什么也搜不到……全盘搜的……
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-30 12:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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