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

Project1

 找回密码
 注册会员
搜索
楼主: 趙雲
打印 上一主题 下一主题

申请VX区版主

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-10-22
帖子
500
31
发表于 2008-2-1 08:48:39 | 只看该作者
猫人好久不见……我一直认为你神隐了
绝对异位面领域
回复 支持 反对

使用道具 举报

Lv1.梦旅人

NewS-

梦石
0
星屑
50
在线时间
5 小时
注册时间
2005-10-23
帖子
3651

贵宾

32
发表于 2008-2-1 08:51:18 | 只看该作者
以下引用超级无敌小白于2008-2-1 0:48:39的发言:

猫人好久不见……我一直认为你神隐了


你也好久不见了{/hx}

过年了,大家都蹦出来了 -______-||||
66RPG,这几个简单字符,之于我代表了什么?泪泪博客:http://hi.baidu.com/rpgmakerxp
回复 支持 反对

使用道具 举报

Lv1.梦旅人

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
帖子
4085

第1届短篇游戏比赛亚军

33
发表于 2008-2-1 08:54:10 | 只看该作者
呵呵,清平世界,安居乐业,一片大好,岂不快哉。

以下引用趙雲于2008-2-1 0:25:08的发言:

彩色那句是说 当角色的XY和目标XY都不一致的话就return false 么?
那不是只能找竖线或横线的跳跃了么?


第一个判断是重合,第二个你可以无视,当时对方只要直线,我放宽了条件。


纵然千里外,我等雁归来。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

綾川司の姫様<

梦石
0
星屑
50
在线时间
796 小时
注册时间
2007-12-20
帖子
4520

贵宾第3届短篇游戏大赛R剧及RMTV组亚军

34
发表于 2008-2-1 10:43:09 | 只看该作者
强手迭出,如沐春风,幸甚至哉,回帖咏志。

生命即是责任。自己即是世界。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

SB們大家好<

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-1-7
帖子
457
35
 楼主| 发表于 2008-2-1 11:06:31 | 只看该作者

  1. #==============================================================================
  2. # ■ Window_Command2
  3. #------------------------------------------------------------------------------
  4. #  横向选择行窗口。
  5. #==============================================================================

  6. class Window_Command2 < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 定义实例变量
  9.   #--------------------------------------------------------------------------  
  10.   attr_reader   :commands                 # 命令  
  11.   #--------------------------------------------------------------------------
  12.   # ● 初始化对象
  13.   #     width      : 窗口的宽
  14.   #     commands   : 命令字符串序列
  15.   #     column_max : 行数 (2 行以上时选择)
  16.   #     row_max    : 列数 (0:列数加起来)
  17.   #     spacing : 选项横向排列时间隔空白宽度
  18.   #--------------------------------------------------------------------------
  19.   def initialize(width, commands,  row_max, spacing = 32)
  20.     super(0, 0, width , row_max * WLH + 32 , spacing)
  21.     @commands = commands
  22.     @item_max = commands.size
  23.     @column_max = 1
  24.     @row_max = row_max
  25.     @t = @item_max % page_row_max == 0 ? 0 : 1
  26.     create_contents
  27.     refresh
  28.     self.index = 0
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 刷新
  32.   #--------------------------------------------------------------------------
  33.   def refresh
  34.     self.contents.clear
  35.     for i in 0...@item_max
  36.       draw_item(i)
  37.     end
  38.   end
  39.   
  40.   
  41.   #--------------------------------------------------------------------------
  42.   # ● 窗口内容生成
  43.   #--------------------------------------------------------------------------
  44.   def create_contents
  45.     self.contents.dispose
  46.     @t = 0 if @t.nil?
  47.     self.contents = Bitmap.new([width - 32 , (@item_max / page_row_max + @t) * width - 32].max , height - 32)
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 设置光标的位置
  51.   #     index : 新的光标位置
  52.   #--------------------------------------------------------------------------
  53.   def index=(index)
  54.     @index = index
  55.     update_cursor
  56.     call_update_help
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 获取行数
  60.   #--------------------------------------------------------------------------
  61.   def row_max
  62.     return (@item_max + @column_max - 1) / @column_max
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 获取开头行
  66.   #--------------------------------------------------------------------------
  67.   def top_row
  68.     return self.oy / WLH
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 设置开头行
  72.   #     row : 显示开头的行
  73.   #--------------------------------------------------------------------------
  74.   def top_row=(row)
  75. #~     row = 0 if row < 0
  76.     self.ox = row / page_row_max * width
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 获取 1 页可以显示的行数
  80.   #--------------------------------------------------------------------------
  81.   def page_row_max
  82.     return (self.height - 32) / WLH
  83.   end

  84.   #--------------------------------------------------------------------------
  85.   # ● 获取 1 页可以显示的项目数
  86.   #--------------------------------------------------------------------------
  87.   def page_item_max
  88.     return page_row_max * @column_max
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 获取末尾行
  92.   #--------------------------------------------------------------------------
  93.   def bottom_row
  94.     return top_row + page_row_max - 1
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 设置末尾行
  98.   #     row : 显示末尾的行
  99.   #--------------------------------------------------------------------------
  100.   def bottom_row=(row)
  101.     self.top_row = row - (page_row_max - 1)
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 获取项目描画矩形
  105.   #     index : 项目编号
  106.   #--------------------------------------------------------------------------
  107.   def item_rect(index)
  108.     rect = Rect.new(0, 0, 0, 0)
  109.     rect.width = (contents.width + @spacing) / (@item_max / page_row_max + @t) - @spacing - 16
  110.     rect.height = WLH
  111.     rect.x = index / page_row_max * width
  112.     rect.y = index % page_row_max * WLH
  113.     return rect
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 帮助窗口的设置
  117.   #     help_window : 新的帮助窗口
  118.   #--------------------------------------------------------------------------
  119.   def help_window=(help_window)
  120.     @help_window = help_window
  121.     call_update_help
  122.   end
  123.   #--------------------------------------------------------------------------
  124.   # ● 光标移动可能判定
  125.   #--------------------------------------------------------------------------
  126.   def cursor_movable?
  127.     return false if (not visible or not active)
  128.     return false if (index < 0 or index > @item_max or @item_max == 0)
  129.     return false if (@opening or @closing)
  130.     return true
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 光标下移动
  134.   #     wrap : 滚动移动许可
  135.   #--------------------------------------------------------------------------
  136.   def cursor_down(wrap = false)
  137.     if wrap
  138.       if @index % page_row_max == page_row_max - 1
  139.        @index = @index / page_row_max
  140.       elsif @index == @item_max - 1
  141.        @index = @index / page_row_max * page_row_max
  142.       else
  143.       @index = @index + 1
  144.       end
  145.     end
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● 光标上移动
  149.   #     wrap : 滚动移动许可
  150.   #--------------------------------------------------------------------------
  151.   def cursor_up(wrap = false)
  152.     if wrap
  153.       if @index % page_row_max == 0
  154.         if @index / page_row_max != @item_max / page_row_max
  155.          @index = page_row_max - 1
  156.         else
  157.          @index = @item_max - 1
  158.         end
  159.       else
  160.       @index = @index - 1
  161.       end
  162.     end
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● 光标右移动
  166.   #     wrap : 滚动移动许可
  167.   #--------------------------------------------------------------------------
  168.   def cursor_right(wrap = false)
  169.     if wrap
  170.       cursor_pagedown
  171.     end
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● 光标左移动
  175.   #     wrap : 滚动移动许可
  176.   #--------------------------------------------------------------------------
  177.   def cursor_left(wrap = false)
  178.     if wrap
  179.       cursor_pageup
  180.     end
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● 光标移动到1页后
  184.   #--------------------------------------------------------------------------
  185.   def cursor_pagedown
  186.     if @t == 0
  187.     if @index / page_row_max < @item_max / page_row_max - 1
  188.      @index = @index + page_row_max > @item_max - 1?  (@index / page_row_max + 1) * page_row_max : @index + page_row_max
  189.       self.top_row += @index
  190.     end
  191.     else
  192.     if @index / page_row_max < @item_max / page_row_max
  193.      @index = @index + page_row_max > @item_max - 1?  (@index / page_row_max + 1) * page_row_max : @index + page_row_max
  194.       self.top_row += @index
  195.     end
  196.     end
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ● 光标移动到1页前
  200.   #--------------------------------------------------------------------------
  201.   def cursor_pageup
  202.     if @index >= page_row_max
  203.       @index -= page_row_max
  204.       self.top_row += @index
  205.     end
  206.   end

  207.   #--------------------------------------------------------------------------
  208.   # ● 更新光标矩形
  209.   #--------------------------------------------------------------------------
  210.   def update_cursor
  211.     if @index < 0                   # 光标位置不满 0 的情况下
  212.       self.cursor_rect.empty        # 光标无效
  213.     else                            # 光标位 0 以上的情况下
  214.       row = @index / @column_max    # 获取当前的行
  215.       rect = item_rect(@index)      # 获取选择项的矩形
  216.       rect.y -= self.oy             # 矩形滚动的位置加起来
  217.       rect.x = 0
  218.       self.cursor_rect = rect       # 更新光标矩形
  219.     end
  220.   end

  221.   
  222.   #--------------------------------------------------------------------------
  223.   # ● 描绘项目
  224.   #     index : 项目编号
  225.   #     enabled : 有效标记录。是false 的时候半透明绘画
  226.   #--------------------------------------------------------------------------
  227.   def draw_item(index, enabled = true)
  228.     rect = item_rect(index)
  229.     rect.x += 4
  230.     rect.width -= 8
  231.     self.contents.clear_rect(rect)
  232.     self.contents.font.color = normal_color
  233.     self.contents.font.color.alpha = enabled ? 255 : 128
  234.     self.contents.draw_text(rect, @commands[index])
  235.   end
  236. end
复制代码

横向选择菜单
@command_window = Window_Command2.new(174, [s1,s2] ,1)
参数分别是 宽度,命令数组,每页的行数
写得仓促 很多无意义东西没有删掉
若有bug我会尽快修正.
这不是6R,我对自己说。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

Mars-火星机械

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2713
36
发表于 2008-2-1 17:05:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Dancer-

梦石
0
星屑
55
在线时间
76 小时
注册时间
2006-11-9
帖子
3551

开拓者贵宾

37
发表于 2008-2-1 17:11:06 | 只看该作者
飘过……支持下{/hx}
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-1
帖子
98
38
发表于 2008-2-2 04:59:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

小真的猫耳娘

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-22
帖子
477
39
发表于 2008-2-2 05:35:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-26
帖子
1544
40
发表于 2008-2-2 06:45:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 11:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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