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

Project1

 找回密码
 注册会员
搜索
查看: 1884|回复: 7
打印 上一主题 下一主题

[已经解决] 如何將透明選框改成小三角形箭頭

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2014-6-1
帖子
6
跳转到指定楼层
1
发表于 2014-6-1 23:54:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 沒有牙齒的我 于 2014-6-2 16:13 编辑

在下剛接觸RPG MAKER
想請問如何將透明選框改成前面一個小三角形鍵頭呢??
雖然我附上的圖片是標題畫面的
但希望遊戲中的選項也能改成小三角形箭頭

之前有爬到相關文章 但那篇是XP適用的
在此求VA教程.........感激不盡!!!!!

123.jpg (268.15 KB, 下载次数: 25)

選框

選框

Lv4.逐梦者 (版主)

梦石
1
星屑
6691
在线时间
2650 小时
注册时间
2013-8-23
帖子
2315

开拓者

2
发表于 2014-6-2 02:03:03 | 只看该作者
RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - Animated Cursor (V1.1) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # [url=http://www.atelier-rgss.com/]http://www.atelier-rgss.com/[/url]
  6. #==============================================================================
  7. # Adiciona um cursor animado nos menus de comandos.
  8. #==============================================================================
  9. # Será necessário ter a imagem
  10. #
  11. # Menu_Cursor.png
  12. #
  13. # gravado na pasta GRAPHICS/SYSTEM/
  14. #==============================================================================
  15. # Ativando a animação do cursor
  16. #
  17. # Basta criar uma imagem que tenha a largura com no minimo o dobro de altura da
  18. # imagem do cursor.
  19. #
  20. # EX
  21. # largura 32 pixel (width) altura 32 pixel = 1 frames de animação.(Sem animação)
  22. # largura 64 pixel (width) altura 32 pixel = 2 frames de animação.
  23. # largura 128 pixel (width) altura 32 pixel = 4 frames de animação.
  24. # largura 256 pixel (width) altura 32 pixel = 8 frames de animação
  25. # Etc...
  26. #
  27. # NOTA
  28. # Não há limite para quantidade de frames de animação, se não quiser a animação
  29. # basta criar uma imagem com a altura proporcional a largura da imagem.
  30. #
  31. #==============================================================================
  32. # ● Histórico (Version History)
  33. #==============================================================================
  34. # v 1.1 - Correção da posição do cursor no cena de batalha.
  35. #==============================================================================
  36.  
  37. module MOG_MENU_CURSOR
  38.   #Ativar animação do cursor se movimentando para os lados.
  39.   SIDE_ANIMATION = true
  40.   #Definição da posição do cursor. (Ajustes na posição)
  41.   CURSOR_POSITION = [0,0]
  42.   #Definição da velocidade da animação de frames.
  43.   CURSOR_ANIMATION_SPEED = 6
  44. end
  45.  
  46. #==============================================================================
  47. # ■ Game_System
  48. #==============================================================================
  49. class Game_System
  50.  
  51.   attr_accessor :menu_cursor_name
  52.  
  53.   #--------------------------------------------------------------------------
  54.   # ● Initialize
  55.   #--------------------------------------------------------------------------      
  56.   alias mog_menu_cursor_initialize initialize
  57.   def initialize
  58.       mog_menu_cursor_initialize
  59.       @menu_cursor_name = "Menu_Cursor"
  60.   end  
  61.  
  62. end  
  63.  
  64. #==============================================================================
  65. # ■ Game_Temp
  66. #==============================================================================
  67. class Game_Temp
  68.  
  69.   attr_accessor :menu_cursor   
  70.  
  71.   #--------------------------------------------------------------------------
  72.   # ● Initialize
  73.   #--------------------------------------------------------------------------      
  74.   alias mog_cursor_sprite_initialize initialize
  75.   def initialize
  76.       mog_cursor_sprite_initialize
  77.       @menu_cursor = [false,0,0,0]
  78.   end  
  79.  
  80. end  
  81.  
  82. #==============================================================================
  83. # ■ Sprite Cursor
  84. #==============================================================================
  85. class Sprite_Cursor < Sprite
  86.  
  87.   include MOG_MENU_CURSOR
  88.  
  89.   #--------------------------------------------------------------------------
  90.   # ● Initialize
  91.   #--------------------------------------------------------------------------   
  92.   def initialize(viewport = nil , x , y)
  93.       super(viewport)
  94.       @cursor_image = Cache.system($game_system.menu_cursor_name.to_s)
  95.       @frame_max = (@cursor_image.width / @cursor_image.height) rescue 1
  96.       @frame_range = @frame_max > 0 ? (@cursor_image.width  / @frame_max) : 1
  97.       @frame = 0
  98.       @ca_speed = CURSOR_ANIMATION_SPEED
  99.       self.bitmap = Bitmap.new(@frame_range,@frame_range)
  100.       self.z = 10000
  101.       self.opacity = 0
  102.       @cw = self.bitmap.width / 2
  103.       @c_p = [-@cw + CURSOR_POSITION[0],CURSOR_POSITION[1]]
  104.       [url=home.php?mod=space&uid=287812]@mx[/url] = [0,0,0]
  105.       refresh_animation(true)
  106.       update_move
  107.   end
  108.  
  109.   #--------------------------------------------------------------------------
  110.   # ● Dispose
  111.   #--------------------------------------------------------------------------   
  112.   def dispose
  113.       self.bitmap.dispose
  114.       self.bitmap = nil
  115.       @cursor_image.dispose
  116.   end  
  117.  
  118.   #--------------------------------------------------------------------------
  119.   # ● Update
  120.   #--------------------------------------------------------------------------  
  121.   def update
  122.       if cursor_visible?
  123.          self.visible = true
  124.          update_move
  125.          refresh_animation(false)
  126.       else   
  127.          self.visible = false
  128.       end  
  129.   end
  130.  
  131.   #--------------------------------------------------------------------------
  132.   # ● Initialize
  133.   #--------------------------------------------------------------------------      
  134.   def refresh_animation(start = false)
  135.       @ca_speed += 1
  136.       return if @frame_max == 1 and !start
  137.       return if @ca_speed < CURSOR_ANIMATION_SPEED
  138.       @ca_speed = 0
  139.       self.bitmap.clear
  140.       scr_rect = Rect.new(@frame_range * @frame,0,@frame_range,@frame_range)
  141.       self.bitmap.blt(0,0,@cursor_image, scr_rect)
  142.       @frame += 1
  143.       @frame = 0 if @frame >= @frame_max
  144.   end  
  145.  
  146.   #--------------------------------------------------------------------------
  147.   # ● Cursor Visible?
  148.   #--------------------------------------------------------------------------   
  149.   def cursor_visible?
  150.       px = $game_temp.menu_cursor[2]
  151.       py = $game_temp.menu_cursor[3]
  152.       return false if $game_temp.menu_cursor[1] == 0
  153.       return false if px < 0 or py < 0 or (px == 0 and py == 0)
  154.       return true
  155.   end  
  156.  
  157.   #--------------------------------------------------------------------------
  158.   # ● Update Move
  159.   #--------------------------------------------------------------------------   
  160.   def update_move
  161.       self.opacity += 25
  162.       @new_pos = [$game_temp.menu_cursor[2],$game_temp.menu_cursor[3]]
  163.       execute_animation_s
  164.       execute_move(0,self.x, @new_pos[0] + @mx[1] + @c_p[0])
  165.       execute_move(1,self.y, @new_pos[1] + @c_p[1])
  166.   end  
  167.  
  168.   #--------------------------------------------------------------------------
  169.   # ● Execute Animation S
  170.   #--------------------------------------------------------------------------      
  171.   def execute_animation_s
  172.       return if !SIDE_ANIMATION
  173.       @mx[2] += 1
  174.       return if @mx[2] < 4
  175.       @mx[2] = 0
  176.       @mx[0] += 1
  177.       case @mx[0]
  178.          when 1..7;  @mx[1] += 1            
  179.          when 8..14; @mx[1] -= 1
  180.          else
  181.            @mx[0] = 0
  182.            @mx[1] = 0
  183.       end
  184.   end
  185.  
  186.   #--------------------------------------------------------------------------
  187.   # ● Execute Move
  188.   #--------------------------------------------------------------------------      
  189.   def execute_move(type,cp,np)
  190.       sp = 5 + ((cp - np).abs / 5)
  191.       if cp > np
  192.          cp -= sp
  193.          cp = np if cp < np
  194.       elsif cp < np
  195.          cp += sp
  196.          cp = np if cp > np
  197.       end     
  198.       self.x = cp if type == 0
  199.       self.y = cp if type == 1
  200.   end  
  201.  
  202. end
  203.  
  204. #==============================================================================
  205. # ■ CURSOR_MENU SPRITE
  206. #==============================================================================
  207. module CURSOR_MENU_SPRITE
  208.  
  209.   #--------------------------------------------------------------------------
  210.   # ● Cursor Sprite Enable
  211.   #--------------------------------------------------------------------------      
  212.   def cursor_sprite_enable
  213.       return if self.index == nil rescue return
  214.       create_cursor_sprite
  215.       update_cursor_sprite
  216.       update_cusor_position
  217.       if !self.active
  218.          $game_temp.menu_cursor[1] -= 1 if $game_temp.menu_cursor[1] > 0
  219.       end
  220.   end
  221.  
  222.   #--------------------------------------------------------------------------
  223.   # ● Create Cursor Sprite
  224.   #--------------------------------------------------------------------------   
  225.   def create_cursor_sprite
  226.       return if @cursor != nil
  227.       return if $game_temp.menu_cursor[0]
  228.       $game_temp.menu_cursor[0] = true
  229.       reset_cursor_position
  230.       @cursor = Sprite_Cursor.new(nil,x,y)
  231.       @cursor_name = $game_system.menu_cursor_name
  232.   end   
  233.  
  234.   #--------------------------------------------------------------------------
  235.   # ● Dispose Cursor Sprite
  236.   #--------------------------------------------------------------------------      
  237.   def dispose_cursor_sprite
  238.       return if @cursor == nil
  239.       $game_temp.menu_cursor[0] = false
  240.       reset_cursor_position
  241.       @cursor.dispose
  242.       @cursor = nil
  243.   end  
  244.  
  245.   #--------------------------------------------------------------------------
  246.   # ● Reset Cursor Position
  247.   #--------------------------------------------------------------------------        
  248.   def reset_cursor_position
  249.       $game_temp.menu_cursor[1] = 0
  250.       $game_temp.menu_cursor[2] = -32
  251.       $game_temp.menu_cursor[3] = -32
  252.   end  
  253.  
  254.   #--------------------------------------------------------------------------
  255.   # ● Update Cursor
  256.   #--------------------------------------------------------------------------         
  257.   def update_cursor_sprite
  258.       return if @cursor == nil
  259.       @cursor.update
  260.       refresh_cursor_sprite if @cursor_name != $game_system.menu_cursor_name
  261.   end
  262.  
  263.   #--------------------------------------------------------------------------
  264.   # ● Refresh Cursor Sprite
  265.   #--------------------------------------------------------------------------            
  266.   def refresh_cursor_sprite
  267.       @cursor_name = $game_system.menu_cursor_name
  268.       dispose_cursor_sprite
  269.       create_cursor_sprite
  270.   end  
  271.  
  272.   #--------------------------------------------------------------------------
  273.   # ● Update Cursor Position
  274.   #--------------------------------------------------------------------------         
  275.   def update_cusor_position
  276.       return if !can_update_cursor_position?
  277.       x_v = [0,0]
  278.       if self.viewport != nil and SceneManager.scene_is?(Scene_Battle)
  279.         x_v = [-self.viewport.ox, self.viewport.rect.y]
  280.       end
  281.       x_e = (self.cursor_rect.x + self.x) - self.ox
  282.       $game_temp.menu_cursor[2] = x_e + x_v[0]
  283.       y_e = (self.cursor_rect.y + self.y + self.cursor_rect.height / 2) - self.oy
  284.       $game_temp.menu_cursor[3] = y_e + x_v[1]
  285.       $game_temp.menu_cursor[1] = 13
  286.    end
  287.  
  288.   #--------------------------------------------------------------------------
  289.   # ● Can Update Cursor
  290.   #--------------------------------------------------------------------------            
  291.    def can_update_cursor_position?
  292.        return false if !self.active     
  293.        return false if self.index < 0
  294.        return false if !self.visible
  295.        return true
  296.    end  
  297.  
  298. end
  299.  
  300. #==============================================================================
  301. # ■ Window Base
  302. #==============================================================================
  303. class Window_Base < Window
  304.   include CURSOR_MENU_SPRITE
  305.  
  306.   #--------------------------------------------------------------------------
  307.   # ● Dispose
  308.   #--------------------------------------------------------------------------              
  309.   alias mog_menu_cursor_base_dispose dispose
  310.   def dispose
  311.       mog_menu_cursor_base_dispose
  312.       dispose_cursor_sprite
  313.   end  
  314.  
  315.   #--------------------------------------------------------------------------
  316.   # ● Update
  317.   #--------------------------------------------------------------------------              
  318.   alias mog_cursor_update update
  319.   def update
  320.       mog_cursor_update
  321.       cursor_sprite_enable
  322.   end   
  323.  
  324. end
  325.  
  326. $mog_rgss3_animated_cursor = true



素材: 请放进\Graphics\System









评分

参与人数 1星屑 +222 收起 理由
taroxd + 222 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2014-6-1
帖子
6
3
 楼主| 发表于 2014-6-2 09:37:47 | 只看该作者
鑫晴 发表于 2014-6-2 02:03
#==============================================================================
# +++ MOG - Animated ...

是直接新增一個腳本然後貼上去嗎?
可是我貼了以後一直出現這個 是為什麼呢?
也有把素材放進\Graphics\System了呀...
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
600
在线时间
1118 小时
注册时间
2012-12-24
帖子
831
4
发表于 2014-6-2 09:39:41 | 只看该作者
本帖最后由 江户川洛奇 于 2014-6-2 09:43 编辑
沒有牙齒的我 发表于 2014-6-2 09:37
是直接新增一個腳本然後貼上去嗎?
可是我貼了以後一直出現這個 是為什麼呢?
也有把素材放進\Graphics\Sys ...


那一连串是论坛的自动加的地址,你只要把104行的地址删掉就行了

点评

发帖被坑了,编辑一下吧  发表于 2014-6-2 09:43

点击签名档去一个神奇的地方
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2014-6-1
帖子
6
5
 楼主| 发表于 2014-6-2 10:28:58 | 只看该作者
江户川洛奇 发表于 2014-6-2 09:39
那一连串是论坛的自动加的地址,你只要把104行的地址删掉就行了


我把104行刪減到剩下@mx[/url] = [0,0,0]
但又變成190行發生問題了...
如果整行刪除也還是會出問題
求解...
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

6
发表于 2014-6-2 10:46:16 | 只看该作者
沒有牙齒的我 发表于 2014-6-2 10:28
我把104行刪減到剩下@mx[/url] = [0,0,0]
但又變成190行發生問題了...
如果整行刪除也還是會出問題

把“[/url]"也删除
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
214 小时
注册时间
2014-1-23
帖子
197
7
发表于 2014-6-2 12:20:04 | 只看该作者
……越看越晕了@ @
要是只想改菜单的话,似乎改改menu_base还有窗口,然后把系统图片改改就行;如果想省点事儿的话……直接把系统里面那张图片边框改一下就行了……但是这样缺点就是所有带框的都会变……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2014-6-1
帖子
6
8
 楼主| 发表于 2014-6-2 16:16:47 | 只看该作者
已經解決了
感謝熱心替我解決問題的各位
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 07:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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