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

Project1

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

[已经过期] 关于修改攻击范围~

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
13 小时
注册时间
2010-6-22
帖子
7
跳转到指定楼层
1
发表于 2013-3-30 21:11:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
#==============================================================================
# ■ ARPG_Bullet
#------------------------------------------------------------------------------
#  处理ARPG中范围攻击的东西`-____-``用了超级烂的方法。
# 例如  陨石,3,false,25   
# 这样就是陨石这个技能```范围编号是3 不需要分歧方向 延迟为25
# 改動了攻擊判定的範圍,加大許多,變的更好打中
#==============================================================================
class ARPG_Rangs
  attr_accessor :rangs
  def initialize(obj, type)
    @rangs = []
    get_rang(obj,type)
  end
  def get_rang(obj,type)
    x = obj.x
    y = obj.y
    d = obj.direction
    # 技能的范围种类就是这里````0为前后一格..1为上下左右```汗``-___-`||
    case type
    # 前后一格
    when 0
     if d == 2
        @rangs =  [[x,y+1],[x,y-1]]
    end
      if d == 4
        @rangs =  [[x-1,y],[x+1,y]]
      end
      if d == 6
        @rangs =  [[x+1,y],[x-1,y]]
      end
      if d == 8
        @rangs =  [[x,y-1],[x,y+1]]
      end
    # 上下左右
    when 1
      @rangs =  [[x,y+1],[x,y-1],[x+1,y],[x-1,y]]
     #直线8格(魔神斩用)
    when 5
      if d == 2
        @rangs =  [[x,y+1],[x,y+2],[x,y+3],[x,y+4],[x,y+5],[x,y+6],[x,y+7],[x,y+8],[x+1,y+1],[x-1,y+1],[x+1,y+2],[x-1,y+2],[x+1,y+3],[x-1,y+3],[x+1,y+4],[x-1,y+4],[x+1,y+5],[x-1,y+5],[x+1,y+6],[x-1,y+6],]
      end
      if d == 4
        @rangs =  [[x-1,y],[x-2,y],[x-3,y],[x-4,y],[x-5,y],[x-6,y],[x-7,y],[x-8,y],[x-1,y+1],[x-1,y-1],[x-2,y+1],[x-2,y-1],[x-3,y+1],[x-3,y-1],[x-4,y+1],[x-4,y-1],[x-5,y+1],[x-5,y-1],[x-6,y+1],[x-6,y-1],]
      end
      if d == 6
        @rangs =  [[x+1,y],[x+2,y],[x+3,y],[x+4,y],[x+5,y],[x+6,y],[x+7,y],[x+8,y],[x+1,y+1],[x+1,y-1],[x+2,y+1],[x+2,y-1],[x+3,y+1],[x+3,y-1],[x+4,y+1],[x+4,y-1],[x+5,y+1],[x+5,y-1],[x+6,y+1],[x+6,y-1],]
      end
      if d == 8
        @rangs =  [[x,y-1],[x,y-2],[x,y-3],[x,y-4],[x,y-5],[x,y-6],[x,y-7],[x,y-8],[x+1,y-1],[x-1,y-1],[x+1,y-2],[x-1,y-2],[x+1,y-3],[x-1,y-3],[x+1,y-4],[x-1,y-4],[x+1,y-5],[x-1,y-5],[x+1,y-6],[x-1,y-6],]
      end
   
                  
   
    # 直线10格(激光用)
    when 6
      if d == 2
        @rangs =  [[x,y+1],[x,y+2],[x,y+3],[x,y+4],[x,y+5],[x,y+6],[x,y+7],[x,y+8],[x,y+9],[x,y+10],[x,y+11]]
      end
      if d == 4
        @rangs =  [[x-1,y],[x-2,y],[x-3,y],[x-4,y],[x-5,y],[x-6,y],[x-7,y],[x-8,y],[x-9,y],[x-10,y],[x-11,y]]
      end
      if d == 6
        @rangs =  [[x+1,y],[x+2,y],[x+3,y],[x+4,y],[x+5,y],[x+6,y],[x+7,y],[x+8,y],[x+9,y],[x+10,y],[x+11,y]]
      end
      if d == 8
        @rangs =  [[x,y-1],[x,y-2],[x,y-3],[x,y-4],[x,y-5],[x,y-6],[x,y-7],[x,y-8],[x,y-9],[x,y-10],[x,y-11]]
      end
    # 直线2格(枪用)
    when 2
      if d == 2
        @rangs =  [[x,y+1],[x,y+2]]
      end
      if d == 4
        @rangs =  [[x-1,y],[x-2,y]]
      end
      if d == 6
        @rangs =  [[x+1,y],[x+2,y]]
      end
      if d == 8
        @rangs =  [[x,y-1],[x,y-2]]
      end
      # 面向的3个敌人
    when 4
      case d
      when 2
        @rangs = [[x-1,y+1],[x,y+1],[x+1,y+1],[x-1,y+2],[x,y+2],[x+1,y+2],[x+1,y],[x-1,y]]
      when 4
        @rangs = [[x-1,y-1],[x-1,y],[x-1,y+1],[x-2,y-1],[x-2,y],[x-2,y+1],[x,y+1],[x,y-1]]
      when 6
        @rangs = [[x+1,y+1],[x+1,y],[x+1,y-1],[x+2,y+1],[x+2,y],[x+2,y-1],[x,y+1],[x,y-1]]
      when 8
        @rangs = [[x-1,y-1],[x,y-1],[x+1,y-1],[x-1,y-2],[x,y-2],[x+1,y-2],[x+1,y],[x-1,y]]
       when 1
        @rangs = [[x+1,y+1],[x+1,y+2],[x-1,y-1],[x-1,y+1],[x-1,y+2],[x-2,y+1],[x-2,y-1],[x-2,y-2],[x,y]]
         when 3
        @rangs = [[x+1,y-1],[x+2,y-1],[x-1,y+1],[x-1,y+2],[x+1,y+1],[x+1,y+2],[x+2,y+1],[x+2,y+2],[x,y]]
         when 7
        @rangs = [[x+1,y-1],[x+1,y-2],[x-1,y-1],[x-1,y-2],[x-2,y-1],[x-2,y-2],[x-1,y+1],[x-2,y+1],[x,y]]
       when 9
        @rangs = [[x+1,y+1],[x+2,y+1],[x+1,y-1],[x+2,y-1],[x+1,y-2],[x+2,y-2],[x-1,y-1],[x-1,y-2],[x,y]]   
      end
    # 以角色为中心的6X6格
    when 3
      t = []
      for ex in x-2..x+2
        for ey in y-2..y+2
          t.push([ex,ey])
        end
      end
      @rangs =  t
    end
  end
end


怎么在修改出跟大的来
其实义角色为中心的6x6格子在游戏中是3x3的 求高手帮忙 在后面加个更大的。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
13 小时
注册时间
2010-6-22
帖子
7
2
 楼主| 发表于 2013-3-31 22:27:28 | 只看该作者
没人回答吗?

点评

请不要连帖  发表于 2013-4-28 13:21
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
帖子
448
3
发表于 2013-4-1 00:06:16 | 只看该作者
在when 3前面插入
  1. when 100    #範圍編號100,可改
  2.       t = []
  3.       for ex in x-10..x+10   # 範圍10*10 夠大了吧
  4.         for ey in y-10..y+10  #如果要更大,請改數字
  5.           t.push([ex,ey])
  6.         end
  7.       end
  8.       @rangs =  t
  9.     end
复制代码

评分

参与人数 1星屑 +100 收起 理由
hys111111 + 100 感谢回答

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 14:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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