Project1

标题: 如何做一个注释系统 [打印本页]

作者: gejhfls    时间: 2010-10-3 19:12
标题: 如何做一个注释系统
就是鼠标放在某张图上的时候下面会出现解释,移开就没了
作者: 429259591    时间: 2010-10-3 19:13
这个的前提是LZ的游戏必须有鼠标脚本系统
作者: gejhfls    时间: 2010-10-3 19:58
有鼠标系统
作者: Wind2010    时间: 2010-10-3 20:10
变量1操作:鼠标的屏幕X坐标(能实现么?)
变量2操作:鼠标的屏幕Y坐标(能实现么?)
条件分歧: 变量1在a~b范围
    条件分歧: 变量2在c~d范围
           显示图片(注释) X坐标为变量1 Y坐标为变量2
        除此以外
           图片消失
    结束
    除此以外
        图片消失
结束

这样可以么XD
作者: zhangbanxian    时间: 2010-10-3 20:13
在scene里update中加个鼠标坐标的判断吧,- -b不过这蛮难说清楚,lz先得对脚本有一定的了解...
作者: gejhfls    时间: 2010-10-3 23:38
懂了,应该可以,虽然脚本不怎么会,但是有了思路写一下应该可以
作者: fux2    时间: 2010-10-4 09:24
回复 Wind2010 的帖子


    鼠标脚本只是直接给索引号赋值,只要在windows_item刷新光标的位置加判断就可以了,但是有可能出现未考虑到的问题........
作者: 逸豫    时间: 2010-10-4 11:33
  1. module TIP
  2.   COUNT = 10
  3. end
  4. class Sprite_Tip < Sprite
  5.   attr :tip,true
  6.   def initialize
  7.     super
  8.     @tip = ""
  9.     @old_tip = @tip
  10.     @tip_count = TIP::COUNT
  11.     self.z = 99998
  12.     self.bitmap = Bitmap.new(640,480)
  13.     self.visible = false
  14.   end
  15.   def update
  16.     super
  17.     xy = Mouse.get_mouse_pos
  18.     if @old_tip != @tip
  19.       @old_tip = @tip
  20.       self.bitmap.clear
  21.       r = self.bitmap.text_size(@tip)
  22.       self.bitmap.fill_rect(r, Color.new(0,0,0,128))
  23.       self.bitmap.draw_text(0,0,r.width,r.height,@tip)
  24.     end
  25.     @tip_count -= 1
  26.     if @tip_count <= 0
  27.       self.visible = true
  28.     else
  29.       self.visible = false
  30.     end
  31.     if self.x != xy[0] or self.y != xy[1]
  32.       self.x = xy[0]
  33.       self.y = xy[1]
  34.       @tip_count = TIP::COUNT
  35.     end
  36.   end
  37. end
  38. class Sprite
  39.   alias diyrpg_initialize initialize
  40.   def initialize(vp = nil,tip = false)
  41.     diyrpg_initialize(vp)
  42.     if tip
  43.       @tip_sprite = Sprite_Tip.new
  44.     end
  45.   end
  46.   def tip
  47.     return @tip_sprite.tip
  48.   end
  49.   def tip=(v)
  50.     @tip_sprite.tip = v
  51.   end
  52.   alias diyrpg_update update
  53.   def update
  54.     diyrpg_update
  55.     @tip_sprite.update if on? && @tip_sprite.is_a?(Sprite_Tip)
  56.   end
  57.   def on?
  58.     unless self.bitmap.is_a?(Bitmap)
  59.       return false
  60.     end
  61.     xy = Mouse.get_mouse_pos
  62.     return xy[0] >= self.x &&xy[0] <= self.x+self.bitmap.width && xy[1] >= self.y && xy[1] <= self.y + self.bitmap.height
  63.   end
  64. end
  65. class Sprite_Picture
  66.   def initialize(viewport, picture)
  67.     super(viewport,true)
  68.     @picture = picture
  69.     update
  70.   end
  71.   alias diyrpg_update_s update
  72.   def update
  73.     diyrpg_update_s
  74.     self.tip = @picture.tip
  75.   end
  76. end
  77. class Game_Picture
  78.   attr :tip,true
  79.   alias diyrpg_initialize initialize
  80.   def initialize(*arg)
  81.     diyrpg_initialize(*arg)
  82.     @tip = ""
  83.   end
  84. end
复制代码
需要有注释的图片在事件中写:
a = "TEST中文测试"
$game_screen.pictures[图片编号].tip = a
作者: gg041760    时间: 2010-10-4 17:43
我记得在6R里看过这样的脚本,楼主搜索吧




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1