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

Project1

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

【应求脚本】事件以某点为中心随机移动

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

跳转到指定楼层
1
发表于 2008-7-27 23:20:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
#==============================================================================
# ■ Game_Character
#------------------------------------------------------------------------------
# 事件以某点为中心,随机移动。 
# 080727 by 柳之一
# 使用方法:本脚本粘贴在main之上,Game_Character之下。
#           在事件的移动规则类型选择自定义
#           移动路线里面,用脚本写上:
#            move_type_toward(w,r)
#            w,r就是你设定的中心
#例如: move_type_toward(10,10)就是npc在10,10这个点附近移动,开始的时候你的
#       事件可以是任意位置,但是一定确保能走到,你要是走到不能移动的点,
#        我就不说什么了
#==============================================================================

class Game_Character
  
  #--------------------------------------------------------------------------
  # ● 移动类型 : 接近x,y这一点
  #--------------------------------------------------------------------------
  def move_type_toward(w,r)
    sx = @x - w
    sy = @y - r
    if sx.abs + sy.abs >= 20
      move_random
    else
      case rand(6)
      when 0..3;  move_toward(w,r)
      when 4;     move_random
      when 5;     move_forward
      end
    end
  end
  
  def move_toward(wx,wy)
    sx = distance_x_from(wx)
    sy = distance_y_from(wy)
    if sx != 0 or sy != 0
      if sx.abs > sy.abs                  # 如果横向距离长
        sx > 0 ? move_left : move_right   # 左右方向优先
        if @move_failed and sy != 0
          sy > 0 ? move_up : move_down
        end
      else                                # 如果纵向距离等长
        sy > 0 ? move_up : move_down      # 上下方向优先
        if @move_failed and sx != 0
          sx > 0 ? move_left : move_right
        end
      end
    end
  end
  #--------------------------------------------------------------------------  #--------------------------------------------------------------------------
  def distance_x_from(r)
    sx = @x - r
    if $game_map.loop_horizontal?         # 是否横向循环
      if sx.abs > $game_map.width / 2     # 绝对值是否大于地图的一半?
        sx -= $game_map.width             # 引用地图的宽度
      end
    end
    return sx
  end
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  def distance_y_from(w)
    sy = @y - w
    if $game_map.loop_vertical?           # 是否纵向循环
      if sy.abs > $game_map.height / 2    # 绝对值是否大于地图的一半?
        sy -= $game_map.height            # 引用地图的高度
      end
    end
    return sy
  end

end
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
2
发表于 2008-7-28 04:28:18 | 只看该作者
还不错……
好久没看到你出没了……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

3
 楼主| 发表于 2008-7-28 05:13:07 | 只看该作者
以下引用火鸡三毛老大于2008-7-27 20:28:18的发言:

还不错……
好久没看到你出没了……


一直忙着做网游呢,加上期末,比较忙的说{/gg}
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
609
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

4
发表于 2008-7-31 15:19:59 | 只看该作者
以下引用柳之一于2008-7-27 21:13:07的发言:
一直忙着做网游呢,加上期末,比较忙的说
你上面那位也在做网游{/bz}
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
40
在线时间
0 小时
注册时间
2008-5-28
帖子
3
5
发表于 2008-8-3 16:26:19 | 只看该作者
XP里怎么实现呀……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

雷欧纳德的宠物

梦石
0
星屑
50
在线时间
769 小时
注册时间
2006-8-6
帖子
3778

贵宾

6
发表于 2008-8-8 02:41:02 | 只看该作者
打酱油的- -b
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 12:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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