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

Project1

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

[已经解决] 如何事件面向事件?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
115
在线时间
247 小时
注册时间
2005-12-28
帖子
164
跳转到指定楼层
1
发表于 2010-11-8 08:48:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 277297575 于 2010-11-9 12:58 编辑

要一个事件面向另一个事件,下面是参照面向主角在Game_Character里写的,但是出错了,请教指点。
  def turn_toward_event(event_id)
   sx = @x - $game_map.events[event_id].x
   sy = @y - $game_map.events[event_id].y
    if sx.abs > sy.abs                    # 横向距离更长?
      sx > 0 ? turn_left : turn_right
    elsif sx.abs < sy.abs                 # 纵向距离更长?
      sy > 0 ? turn_up : turn_down
    end
  end

Lv1.梦旅人

梦石
0
星屑
50
在线时间
66 小时
注册时间
2009-2-13
帖子
382
2
发表于 2010-11-8 19:16:16 | 只看该作者
本帖最后由 38571240 于 2010-11-8 19:18 编辑

看LZ的写法,是想在脚本里实现这个方法,只要稍作修改即可,请在脚本区Main之前插入以下:
  1.   #--------------------------------------------------------------------------
  2.   # 用法:在某处触发【$game_map.events[A事件ID].turn_toward_event(B事件ID)】
  3.   # 这样A事件将朝向B事件
  4.   #--------------------------------------------------------------------------
  5. class Game_Event < Game_Character
  6.   #--------------------------------------------------------------------------
  7.   # ● 定义实例变量
  8.   #--------------------------------------------------------------------------
  9.   attr_reader   :x                        # 地图逻辑 X 座标
  10.   attr_reader   :y                        # 地图逻辑 Y 座标
  11.   attr_reader   :direction                # 面向
  12.   attr_reader   :id                       # ID
  13.   
  14.   def turn_toward_event(id)
  15.    sx = @x - $game_map.events[id].x
  16.    sy = @y - $game_map.events[id].y
  17.     if sx.abs > sy.abs                    # 横向距离更长?
  18.       @direction = sx > 0 ? 4 : 6
  19.     elsif sx.abs < sy.abs                 # 纵向距离更长?
  20.       @direction = sy > 0 ? 8 : 2
  21.     end
  22.   end
  23. end
复制代码
用法:假如地图上有两个事件,如事件ID分别为1和2,只要触发$game_map.events[2].turn_toward_event(1)
那么2号事件将根据坐标差朝向1号事件的方向。
范例: 朝向.exe (406.09 KB, 下载次数: 57)

评分

参与人数 1星屑 +700 收起 理由
夕阳武士 + 700 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
115
在线时间
247 小时
注册时间
2005-12-28
帖子
164
3
 楼主| 发表于 2010-11-8 19:46:54 | 只看该作者
原来要添加实例变量........
还有范例,感谢,感谢了。

点评

如果认为问题已经解决,请修改主楼标签为“已经解决”,便于vx区管理,谢谢  发表于 2010-11-8 22:22
刚才又看了一下,X、Y的实例变量不用定义也可以。  发表于 2010-11-8 20:11
应感谢LZ,让我也学到有趣的用法  发表于 2010-11-8 20:03
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 07:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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