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

Project1

 找回密码
 注册会员
搜索
楼主: 八云紫
打印 上一主题 下一主题

[重金悬赏]窗口中 Sprite 的刷新问题

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

41
发表于 2008-9-19 19:50:29 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

42
发表于 2008-9-19 20:34:45 | 只看该作者
这个效果?
  1. class Bitmap1 < Bitmap
  2.   def draw_text(x, y, w, h, s)
  3.     @cb = Bitmap.new("Graphics/system/src.png") if @cb == nil
  4.     blt(x,y,@cb,Rect.new(s.to_i*32,0,[[w,32].min,0].max,[[h,32].min,0].max))
  5.   end
  6. end
  7. #==============================================================================
  8. # ■ Window_NumberInput
  9. #------------------------------------------------------------------------------
  10. #  信息窗口内部使用、输入数值的窗口。
  11. #==============================================================================

  12. class Window_NumberInput < Window_Base
  13.   #--------------------------------------------------------------------------
  14.   # ● 生成窗口内容
  15.   #--------------------------------------------------------------------------
  16.   def create_contents
  17.     self.contents.dispose
  18.     self.contents = Bitmap1.new(width - 32, height - 32)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 初始化对像
  22.   #     digits_max : 位数
  23.   #--------------------------------------------------------------------------
  24.   def initialize
  25.     super(0, 0, 544, 64)
  26.     @number = []
  27.     @digits_max = 6
  28.     @index = 0
  29.     self.opacity = 0
  30.     self.active = false
  31.     self.z += 9999
  32.     refresh
  33.     update_cursor
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 取得数值
  37.   #--------------------------------------------------------------------------
  38.   def number
  39.     return @number.to_s.to_i
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 设置数值
  43.   #     number : 新的数值
  44.   #--------------------------------------------------------------------------
  45.   def number=(number)
  46.     number = number.to_s.scan(/./)
  47.     @number = number
  48.     for i in 0...@digits_max
  49.       @number[i] = 0 if @number[i].to_s == ""
  50.     end
  51.     @index = 0
  52.     refresh
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 获取位数
  56.   #--------------------------------------------------------------------------
  57.   def digits_max
  58.     return @digits_max
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 设置位数
  62.   #     digits_max : 新位数
  63.   #--------------------------------------------------------------------------
  64.   def digits_max=(digits_max)
  65.     @digits_max = digits_max
  66.     for i in 0...digits_max
  67.       @number[i] = 0 if @number[i].to_s == ""
  68.     end
  69.     refresh
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 光标右移
  73.   #     wrap : 允许循环
  74.   #--------------------------------------------------------------------------
  75.   def cursor_right(wrap)
  76.     if @index < @digits_max - 1 or wrap
  77.       @index = (@index + 1) % @digits_max
  78.     end
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 光标左移
  82.   #     wrap : 允许循环
  83.   #--------------------------------------------------------------------------
  84.   def cursor_left(wrap)
  85.     if @index > 0 or wrap
  86.       @index = (@index + @digits_max - 1) % @digits_max
  87.     end
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 更新画面
  91.   #--------------------------------------------------------------------------
  92.   def update
  93.     super
  94.     if self.active
  95.       if Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN)
  96.         Sound.play_cursor
  97.         n = @number[@index]
  98.         if Input.repeat?(Input::UP)
  99.           n = (n.to_i)+1
  100.           n = 0 if n > 9
  101.         end
  102.         if Input.repeat?(Input::DOWN)
  103.           n = (n.to_i) -1
  104.           n = 9 if n < 0
  105.         end
  106.         c = @number[@index]
  107.         @number[@index] = n
  108.         ch_no(@index,c,n)
  109.         refresh
  110.       end
  111.       last_index = @index
  112.       if Input.repeat?(Input::RIGHT)
  113.         cursor_right(Input.trigger?(Input::RIGHT))
  114.       end
  115.       if Input.repeat?(Input::LEFT)
  116.         cursor_left(Input.trigger?(Input::LEFT))
  117.       end
  118.       if @index != last_index
  119.         Sound.play_cursor
  120.       end
  121.       update_cursor
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 刷新
  126.   #--------------------------------------------------------------------------
  127.   def refresh
  128.     self.contents.clear
  129.     self.contents.font.color = normal_color
  130.     x = 0
  131.     y = 0
  132.     for i in @number
  133.       self.contents.draw_text(24+x,y,32,64,i.to_s)
  134.       x += 32
  135.     end
  136.   end
  137.   def base_update
  138.     last_index = @index
  139.     if self.active
  140.       if Input.repeat?(Input::RIGHT)
  141.         cursor_right(Input.trigger?(Input::RIGHT))
  142.       end
  143.       if Input.repeat?(Input::LEFT)
  144.         cursor_left(Input.trigger?(Input::LEFT))
  145.       end
  146.       if @index != last_index
  147.         Sound.play_cursor
  148.       end
  149.       update_cursor
  150.     end
  151.    
  152.     Graphics.update
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● 刷新光标
  156.   #--------------------------------------------------------------------------
  157.   def update_cursor
  158.     self.cursor_rect.set(24 + @index * 32, 0, 32, 32)
  159.   end
  160.   def ch_no(i,s,n)
  161.     for ii in 1..40
  162.       self.contents.clear_rect(24+i*32, 0, 32, 32)
  163.       self.contents.draw_text(24+i*32,0-ii,32,32,s)
  164.       self.contents.draw_text(24+i*32,41-ii,32,32,n)
  165.       base_update
  166.     end
  167.   end
  168. end
复制代码
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

43
 楼主| 发表于 2008-9-19 21:28:15 | 只看该作者
嘛,好多版本的。 不过问题解决了。 要VIP的就说吧{/hx}。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv3.寻梦者

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

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

44
发表于 2008-9-19 21:58:51 | 只看该作者
以下引用八云紫于2008-9-19 13:28:15的发言:

嘛,好多版本的。 不过问题解决了。 要VIP的就说吧。

天生脚本必有用,vip散尽还复来
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-8-23
帖子
539
45
发表于 2008-9-19 23:07:46 | 只看该作者
“VIP”....
好囧。
类似问题找我研究(被T飞)
横版卷轴ARPG制作中... 系统80% 素材95% 剧情1%.... 有脚本问题随时吼我- -(被T出)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-1 22:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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