幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3255|回复: 1

[个人创意] 大家画地图,想把部分地图左右颠倒会很麻烦吧?简单方法

[复制链接]

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-10-15 20:50:25 | 显示全部楼层 |阅读模式
def _map_(index,ox,oy,width,height,kind = 0,p = false)
  if p
    width = width - ox + 1
    height = height - oy + 1
  end
  s_index = index.to_s
  for i in 0...3-s_index.size
    s_index = "0"+s_index
  end
  f = load_data("Data/Map"+s_index+".rvdata")
  tmp = Table.new(ox+width,oy+height,3)
  for x in ox...ox+width
    for y in oy...oy+height
      for i in 0..3
        tmp[x,y,i] = f.data[x,y,i]
      end
    end
  end
  for x in 0...width
    for y in 0...height
      for i in 0..3
        case kind
        when 0 # 水平变换
          f.data[ox+x,oy+y,i] = tmp[ox+width-x-1,oy+y,i]
        when 1 # 垂直变换
          f.data[ox+x,oy+y,i] = tmp[ox+x,oy+height-y-1,i]
        when 2 # 旋转180度
          f.data[ox+x,oy+y,i] = tmp[ox+width-x-1,oy+height-y-1,i]
        when 3 # 逆时针旋转90度
          f.data[ox+x,oy+y,i] = tmp[ox+y,oy+x,i] if y < width && x < height
        end
      end
    end
  end
  save_data(f,"Data/Map"+s_index+".rvdata")
end
_map_(59,5,5,33,33,3,true)

贴到脚本的最前面 _map_(index,ox,oy,width,height,kind = 0,p = false)
是调用方法

index 地图编号
ox   oy  需要做变换地图的矩形的起始点的XY坐标
width  height  有两种。。。。一个是矩形的宽和高  当  最后一个参数p为true时,这两个参数是矩形最右下角点的XY坐标

kind     0   水平变换  1垂直变化   2   180度旋转    3   逆时针90度旋转
p   看  width  和height  的介绍那个吧
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
 楼主| 发表于 2009-10-15 20:53:55 | 显示全部楼层
另外,变换之后,把工程关了,再从新打开,看效果吧。。。。。MS改变之后,不能看到效果,只能这样重新的载入
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-26 21:18 , Processed in 0.018265 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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