Project1

标题: 可爱的按钮 [打印本页]

作者: yangff    时间: 2008-5-31 01:12
标题: 可爱的按钮
http://rpg.blue/upload_program/files/Mac_92600706.png
http://rpg.blue/upload_program/files/MouseButton_92737790.rar
两个都要下Mac_92600706.png是外观文件!
看到了http://rpg.blue/viewthread.php?tid=87919
这个帖子就做出了这个玩意儿,mac按钮~~~
效果还是可以的。
鼠标用的是夏娜大人的dll鼠标。

图片是原创的。
另外在地图上按下Esc我准备了一个可爱的范例哦 {/hx}

截图没有
看这个去想象吧。
我是照着这个做的
http://www.chinasck.com/article/html/e_667.html
作者: 越前リョーマ    时间: 2008-5-31 02:03
话说按钮可以用鼠标响应图片然后用事件?
作者: yangff    时间: 2008-5-31 02:23
以下引用越前リョーマ于2008-5-30 18:03:05的发言:

话说按钮可以用鼠标响应图片然后用事件?

呵呵,这个会高级一些.
比如移动到后会变色.
而且使用母板结构,只需要制作一份素材16*16+(32*32)+16*16
作者: yangff    时间: 2008-5-31 02:26
号外~!!!号外!!!!从现在起赠送Mac外观一套,不限量供应。
欲下从速
http://rpg.blue/upload_program/files/Mac_92600706.png

核心脚本:
靠,没有注解
  1. =begin
  2.         感谢您使用本系统.
  3.         使用方法:
  4.                 变量=Button.new
  5.                 生成
  6.                 变量.init(x,y,ev,text)#(ev的意思是触发后所执行的脚本)
  7.                 设置
  8.                 变量.update
  9.                 刷新
  10.                 变量.dispose
  11.                 释放
  12. =end
  13. class Button
  14.   def init(x,y,ev,text="出错了 text 没有内容"+ev.to_s)
  15.     @x = x
  16.     @y = y
  17.     @click = false
  18.     @seltime = 0
  19.     @inli = false
  20.     @ev = ev
  21.     @text = text
  22.     @button = []
  23.     a = Bitmap.new(640,480)
  24.     @button[0] = Sprite.new
  25.     @button[0].x = @x+1
  26.     @button[0].y = @y
  27.     @button[0].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Nomove)1")
  28.     @n = 1
  29.     for i in 1..((a.text_size(@text).width) / 32)+1
  30.       @button.push(Sprite.new)
  31.       @button[i].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Nomove)2")
  32.       @button[i].y = @y
  33.       @button[i].x = @x+@button[0].bitmap.width+((i-1)*32)
  34.       @n = @n+1
  35.     end
  36.     @button.push(Sprite.new)
  37.     @button[@n].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Nomove)3")
  38.     @button[@n].y = @y
  39.     @button[@n].x = @x+@button[0].bitmap.width+((@n-1)*32)
  40.     @writetext = Sprite.new
  41.     @writetext.x = @x+@button[0].bitmap.width+8
  42.     @w = @x+@button[0].bitmap.width+((@n-1)*32) + @button[@n].bitmap.width
  43.     @writetext.y = @y-8
  44.     @writetext.bitmap = Bitmap.new(a.text_size(@text).width,64)
  45.     @writetext.bitmap.font.color = Color.new(0,0,0)
  46.     @writetext.bitmap.draw_text(1, 1, @w, 64, @text)
  47.     a.dispose
  48.     a = nil
  49.   end
  50.   #########################################################################
  51.   #########################################################################
  52.   #############################方法:updata#################################
  53.   ########################用处:鼠标移动后处理#############################
  54.   #########################################################################
  55.   #########################################################################
  56.   def update
  57.     @mousex,@mousey = Mouse.pos
  58.     if ((@mousex >= @x) and (@mousex <= @w))
  59.       if ((@mousey >= @y) and (@mousey <= @y+48))
  60.         if (@inli == false)
  61. #     if
  62.        for i in [email protected]
  63.          @button[i].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Hdmove)2")
  64.          if i == 1
  65.            @button[0].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Hdmove)1")
  66.          end
  67.          if i == @button.size-1
  68.            @button[@button.size-1].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Hdmove)3")
  69.          end
  70.          @inli = true
  71.        end
  72.      end
  73.      end
  74.      end
  75.    ######################
  76.        if ((@mousex <= @x) or (@mousex >= @w)) or
  77.         # p "x"
  78.        ((@mousey <= @y) or (@mousey >= @y+48))
  79.         #p "y"
  80.         if (@inli)
  81. #     if
  82.        for i in [email protected]
  83.          @button[i].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Nomove)2")
  84.          if i == 1
  85.            @button[0].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Nomove)1")
  86.          end
  87.          if i == @button.size-1
  88.            @button[@button.size-1].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Nomove)3")
  89.          end
  90.          @inli = false
  91.        end
  92.      end
  93.      #end
  94.      end
  95.    ###############
  96.     if @inli == true and Mouse.trigger?(0x01)
  97.        for i in [email protected]
  98.          @button[i].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Hdclick,Hdmove)2")
  99.          if i == 1
  100.            @button[0].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Hdclick,Hdmove)1")
  101.          end
  102.          if i == @button.size-1
  103.            @button[@button.size-1].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Hdclick,Hdmove)3")
  104.          end
  105.          @inli = false
  106.        end
  107.        Graphics.update
  108.        sleep(0.1)
  109.       @click = true
  110.       eval(@ev)
  111.     end
  112.     if @click
  113.       @seltime = @seltime+1
  114.       if @seltime >= 10
  115.         @click = false
  116.         @seltime = 0
  117.        for i in [email protected]
  118.          @button[i].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Nomove)2")
  119.          if i == 1
  120.            @button[0].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Nomove)1")
  121.          end
  122.          if i == @button.size-1
  123.            @button[@button.size-1].bitmap = Bitmap.new("Graphics/Buttons/Macbutton(Noclick,Nomove)3")
  124.          end
  125.         # @inli = false
  126.        end
  127.       end
  128.     end
  129.   end
  130.   def dispose
  131.     @x = nil
  132.     @y = nil
  133.     @click = nil
  134.     @seltime = nil
  135.     @inli = nil
  136.     @ev = nil
  137.     @text = nil
  138.     for i in [email protected]
  139.       @button[i].bitmap.dispose
  140.       @button[i].dispose
  141.       Graphics.update
  142.     end
  143.     @mousex = nil
  144.     @mousey = nil
  145. #    self = nil
  146.   end
  147. end
复制代码

再送一个使用范例:
class Scene_Button #定义一个 Scene_Button 类
  def main #定义main方法
    # 生成活动块
    @spriteset = Spriteset_Map.new
    # 生成按钮
    @button = [] #arry
    @button[0] = Button.new
    @button[0].init(64,64,"print('你好')","单击后出现你好")
    @button[1] = Button.new
    @button[1].init(64,64+64,"print('再见')","单击后出现再见")
    @button[2] = Button.new
    @button[2].init(64,64+64+64,"$scene = Scene_Menu.new","召唤菜单")
    @button[3] = Button.new
    @button[3].init(64,64+64+64+64,"$scene = Scene_Map.new","返回地图")
    ########################################################
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      for i in 0..3
        @button.update
      end
      # 如果画面被切换的话就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    for i in 0..3
      @button.dispose
      @button = nil
    end
    @button = nil
  end
end
作者: yangff    时间: 2008-5-31 04:48
主题:《一个延伸物》 原帖[LINE]1,#dddddd[/LINE]从http://rpg.blue/viewthread.php?tid=88346
延伸的一个菜单,
也许你会问为什么不接着发?
因为在发就是3炼铁了 {/hx}
外观文件
http://rpg.blue/upload_program/files/Mac_92600706.png
另外不是很好看的.
至少即插即用
必须和http://rpg.blue/viewthread.php?tid=88346配套使用!!!!!
  1. class Scene_Menu
  2.   def initialize(index=1)
  3.     ###
  4.   end
  5.   def main
  6.     # 生成活动块
  7.     @spriteset = Spriteset_Map.new
  8.     # 生成按钮
  9.     # 生成按钮
  10.     @button = [] #arry
  11.     @button[0] = Button.new
  12.     @button[0].init(64,32,"$scene=Scene_Item.new",$data_system.words.item)
  13.     @button[1] = Button.new
  14.     @button[1].init(64,32+64,"$scene.show_pop(1)",$data_system.words.skill)#doid = 1
  15.     @button[2] = Button.new
  16.     @button[2].init(64,64+32+64,"$scene.show_pop(2)",$data_system.words.equip)#doid=2
  17.     @button[3] = Button.new
  18.     @button[3].init(64,64+32+64+64,"$scene.show_pop(3)","状态")#doid=3
  19.     @button[4] = Button.new
  20.     @button[4].init(64,64+32+64+64+64,"$scene = Scene_Save.new","存档")
  21.     @button[5] = Button.new
  22.     @button[5].init(64,64+32+64+64+64+64,"$scene = Scene_End.new","结束")
  23.     @button[6] = Button.new
  24.     @button[6].init(64,64+32+64+64+64+64+64,"$scene = Scene_Map.new","返回")
  25.     # 生成状态窗口
  26.     @status_window = Window_MenuStatus.new
  27.     @status_window.x = 160
  28.     @status_window.y = 0
  29.     @status_window.active = false
  30.     @status_window.opacity = 0
  31.     @status_window.contents_opacity = 0
  32.    
  33.     ########################################################
  34.     Graphics.transition
  35.     # 主循环
  36.     loop do
  37.       # 刷新游戏画面
  38.       Graphics.update
  39.       # 刷新输入信息
  40.       Input.update
  41.       # 刷新画面
  42.       for i in 0..6
  43.         @button[i].update
  44.       end
  45.       @status_window.update
  46.       if @status_window.active
  47.          if @status_window.opacity == 0
  48.                @status_window.opacity = 255
  49.          end
  50.          if  @status_window.contents_opacity == 0
  51.            @status_window.contents_opacity = 255
  52.          end
  53.         up_status_window
  54.       end

  55.       # 如果画面被切换的话就中断循环
  56.       if $scene != self
  57.         break
  58.       end
  59.     end
  60.     # 准备过渡
  61.     Graphics.freeze
  62.     # 释放窗口
  63.     for i in 0..6
  64.       @button[i].dispose
  65.       @button[i] = nil
  66.     end
  67.     @button = nil
  68.     @status_window.dispose
  69.   end
  70.   def show_pop(id)
  71.     @status_window.active = true
  72.     for i in 0..6
  73.       @button[i].action(false)
  74.     end
  75.     @doid = id
  76.   end
  77.   def up_status_window
  78.     if Mouse.trigger?(0x01)
  79.       case @doid
  80.       when 1
  81.         if $game_party.actors[@status_window.index].restriction >= 2
  82.           # 演奏冻结 SE
  83.           $game_system.se_play($data_system.buzzer_se)
  84.           return
  85.         end
  86.         # 演奏确定 SE
  87.         $game_system.se_play($data_system.decision_se)
  88.         # 切换到特技画面
  89.         $scene = Scene_Skill.new(@status_window.index)
  90.         @status_window.opacity = 0
  91.         @status_window.contents_opacity = 0
  92.       when 2  # 装备
  93.         # 演奏确定 SE
  94.         $game_system.se_play($data_system.decision_se)
  95.         # 切换的装备画面
  96.         $scene = Scene_Equip.new(@status_window.index)
  97.         @status_window.opacity = 0
  98.         @status_window.contents_opacity = 0
  99.       when 3  # 状态
  100.         # 演奏确定 SE
  101.         $game_system.se_play($data_system.decision_se)
  102.         # 切换到状态画面
  103.         $scene = Scene_Status.new(@status_window.index)
  104.         @status_window.opacity = 0
  105.         @status_window.contents_opacity = 0
  106.       end
  107.     end
  108.     if Mouse.trigger?(0x02)
  109.       @status_window.active = false
  110.       for i in 0..5
  111.         @button[i].action(true)
  112.       end
  113.       @doid = 0
  114.       @status_window.opacity = 0
  115.       @status_window.contents_opacity = 0
  116.       return
  117.     end
  118.   end
  119. end
复制代码


作者: 越前リョーマ    时间: 2008-5-31 04:58
re:主题:《一个延伸物》 [LINE]1,#dddddd[/LINE]什么东西啊……
作者: yangff    时间: 2008-5-31 05:07
re:主题:《一个延伸物》 [LINE]1,#dddddd[/LINE]菜单,简陋的
作者: 嫁衣    时间: 2008-5-31 06:13
re:主题:《一个延伸物》 [LINE]1,#dddddd[/LINE]无论是不是简陋都支持一下{/hx}
作者: 禾西    时间: 2008-6-1 12:13
這個東西不錯。但是沒有注釋,沒有注釋....沒有注釋....爲甚麼鼠標腳本都沒有注釋 Orz
圖片的路徑單獨提取出來吧,這樣子太難修改
作者: yangff    时间: 2008-6-1 16:14
以下引用禾西于2008-6-1 4:13:38的发言:

這個東西不錯。但是沒有注釋,沒有注釋....沒有注釋....爲甚麼鼠標腳本都沒有注釋 Orz
圖片的路徑單獨提取出來吧,這樣子太難修改

更新完毕
作者: 禾西    时间: 2008-6-6 21:40
我想說,如果發布這個東東究竟是發布哪個啊
Orz
作者: yangff    时间: 2008-6-7 01:58
以下引用禾西于2008-6-6 13:40:09的发言:

我想說,如果發布這個東東究竟是發布哪個啊
Orz

http://rpg.blue/upload_program/files/Mac_92600706.png
http://rpg.blue/upload_program/files/MouseButton_92737790.rar
PS:
http://rpg.blue/upload_program/files/Mac_92600706.png
下载后更名为
Mac.png放在外观文件夹

作者: Jeyitaly    时间: 2008-6-8 02:04
很好很强大...
作者: 禾西    时间: 2008-6-8 18:45
唔...發布完畢..不過有沒有人氣就不知道了
yangff.VIP += 4
作者: 乐魂    时间: 2009-1-4 14:44
提示: 作者被禁止或删除 内容自动屏蔽




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