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

Project1

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

[已经过期] 请问为什么我用draw_text绘制的文字隔一段时间会消失又重现

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1957
在线时间
410 小时
注册时间
2018-9-25
帖子
38
跳转到指定楼层
1
发表于 2020-3-25 16:44:16 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 adahs 于 2020-3-25 16:52 编辑

在学习脚本中,最近就在试着修改别人写的脚本练习一下,在我修改一个标题界面显示指令的脚本的时候出了点问题,那个脚本原本只能显示图片,自己试着修改补充了一个用draw_text写开始游戏,继续游戏这些功能,但是不知道为什么draw_text出来的这些字隔大概二十多秒就会突然消失一瞬间,然后又重新出现,实在是搞不懂是哪里出了问题,希望有大佬能指点一下。


这是我修改的部分
  1.   def update_ts_picture_cm
  2. @command_window.visible = false ; @command_window.x = -2000      
  3.       for i in 0...@command_window.list.size
  4.           if i == @command_window.index
  5.             @com_pictures[2][i]=1
  6.             if !@com_pictures[1][i]
  7.               rect = Rect.new(316, 0, 316, 26)
  8.               bitmap2=Bitmap.new(316,26)
  9.               bitmap2.blt(0, 0, @bitmap1, rect, 255)
  10.               @com_pictures[0][i].bitmap =bitmap2
  11.               draw_text(i)
  12.             else
  13.               rect = Rect.new(632, 0, 316, 26)
  14.               bitmap2=Bitmap.new(316,26)
  15.               bitmap2.blt(0, 0, @bitmap1, rect, 255)
  16.               @com_pictures[0][i].bitmap =bitmap2
  17.               draw_text(i)
  18.             end
  19.           else
  20.             if @com_pictures[2][i]=1
  21.               rect = Rect.new(0, 0, 316, 26)
  22.               bitmap2=Bitmap.new(316,26)
  23.               bitmap2.blt(0, 0, @bitmap1, rect, 255)
  24.               @com_pictures[0][i].bitmap =bitmap2
  25.               draw_text(i)
  26.               @com_pictures[2][i]=1
  27.             end
  28.           end
  29.       end
  30.       update_tsprite_cursor
  31.   end
  32.    
  33.   def draw_text(i)
  34.       @com_pictures[0][i].bitmap.font.size=16
  35.       @com_pictures[0][i].bitmap.font.outline=false
  36.       @com_pictures[0][i].bitmap.font.name="黑体"
  37.       @com_pictures[0][i].bitmap.font.color=Color.new(0,0,0)
  38.       @com_pictures[0][i].bitmap.draw_text(0,0,316,26,MOG_TITLE_PICTURE_COMMANDS::TITLENAME[i],1)
  39.   end
复制代码
完整的脚本
  1. if true
  2. #==============================================================================
  3. # +++ MOG - 标题图片指令 - [独立版] (V1.1) +++
  4. #==============================================================================
  5. # By Moghunter
  6. # https://atelierrgss.wordpress.com/
  7. #==============================================================================
  8. # 添加指令图片
  9. #==============================================================================

  10. #==============================================================================
  11. # 命名格式:
  12. #
  13. # Com_0.png
  14. # Com_1.png
  15. # Com_2.png
  16. # Com_3.png...Com_999.png (最大值)
  17. #
  18. #==============================================================================

  19. #==============================================================================
  20. # 你需要把以上图片放在 /Graphics/Title1/
  21. #==============================================================================
  22. module MOG_TITLE_PICTURE_COMMANDS
  23.   #--------------------------------------------------------------------------
  24.   # 是否开启横向模式
  25.   #--------------------------------------------------------------------------
  26.   HORIZONTAL_MODE = false
  27.   #--------------------------------------------------------------------------
  28.   # 指令位置
  29.   #--------------------------------------------------------------------------
  30.   X_POS = 242
  31.   Y_POS = 404
  32.   #--------------------------------------------------------------------------
  33.   # 指令间距
  34.   #--------------------------------------------------------------------------
  35.   X_SPACE = 0
  36.   Y_SPACE = 13
  37.   #--------------------------------------------------------------------------
  38.   # 指令Z坐标
  39.   #--------------------------------------------------------------------------
  40.   SCREEN_Z = 90
  41.   #--------------------------------------------------------------------------
  42.   # 是否显示缩放效果  
  43.   #--------------------------------------------------------------------------
  44.   ZOOM_EFFECT = false
  45.   #--------------------------------------------------------------------------
  46.   # 输入模式
  47.   # 0 - 垂直   1 - 水平  2 - 垂直和水平
  48.   #--------------------------------------------------------------------------
  49.   INPUT_TYPE = 0
  50.   #--------------------------------------------------------------------------
  51.   # 是否显示指针. (需要图片 "Cursor.png")
  52.   #--------------------------------------------------------------------------
  53.   SPRITE_CURSOR = true
  54.   #--------------------------------------------------------------------------
  55.   # 指针位置
  56.   #--------------------------------------------------------------------------
  57.   SPRITE_CURSOR_X = -32
  58.   SPRITE_CURSOR_Y = -16
  59.   #--------------------------------------------------------------------------
  60.   # 设置文件名
  61.   #--------------------------------------------------------------------------
  62.   FILE_NAME = "Com_"  
  63.   CURSOR_FILE_NAME = "Cursor"
  64.   
  65.   TITLENAME = [:开始游戏,:继续游戏,:成就,:结束游戏]
  66. end

  67. $imported = {} if $imported.nil?
  68. $imported[:mog_title_screen_picture_commands] = true

  69. #==============================================================================
  70. # ■ Window TittleCommand
  71. #==============================================================================
  72. class Window_TitleCommand < Window_Command
  73.   
  74.   #--------------------------------------------------------------------------
  75.   # ● Down
  76.   #--------------------------------------------------------------------------
  77.   def cursor_down(wrap = false)
  78.       return if !MOG_TITLE_PICTURE_COMMANDS::INPUT_TYPE == 0
  79.       select((index + col_max) % item_max)
  80.   end
  81.   
  82.   #--------------------------------------------------------------------------
  83.   # ● Cursor Up
  84.   #--------------------------------------------------------------------------
  85.   def cursor_up(wrap = false)
  86.       return if !MOG_TITLE_PICTURE_COMMANDS::INPUT_TYPE == 0
  87.       select((index - col_max + item_max) % item_max)
  88.   end
  89.   
  90.   #--------------------------------------------------------------------------
  91.   # ● Cursor Right
  92.   #--------------------------------------------------------------------------
  93.   def cursor_right(wrap = false)
  94.       return if !MOG_TITLE_PICTURE_COMMANDS::INPUT_TYPE == 1
  95.       select((index + 1) % item_max)
  96.   end
  97.   
  98.   #--------------------------------------------------------------------------
  99.   # ● Cursor Left
  100.   #--------------------------------------------------------------------------
  101.   def cursor_left(wrap = false)
  102.       return if !MOG_TITLE_PICTURE_COMMANDS::INPUT_TYPE == 1
  103.       select((index - 1 + item_max) % item_max)
  104.   end
  105.   
  106. end  

  107. #==============================================================================
  108. # ■ Scene Tittle
  109. #==============================================================================
  110. class Scene_Title < Scene_Base  
  111.   include MOG_TITLE_PICTURE_COMMANDS

  112. #--------------------------------------------------------------------------
  113. # ● Create Command Window
  114. #--------------------------------------------------------------------------            
  115.   alias mog_ts_picture_cm_create_command_window create_command_window
  116.   def create_command_window
  117.       mog_ts_picture_cm_create_command_window
  118.       create_ts_picture_cm
  119.   end
  120.   
  121. #--------------------------------------------------------------------------
  122. # ● Terminate
  123. #--------------------------------------------------------------------------            
  124.   alias mog_ts_picture_cm_terminate terminate
  125.   def terminate
  126.       mog_ts_picture_cm_terminate
  127.       dispose_ts_picture_cm
  128.   end
  129.   
  130. #--------------------------------------------------------------------------
  131. # ● Update
  132. #--------------------------------------------------------------------------            
  133.   alias mog_ts_picture_cm_update update
  134.   def update
  135.       mog_ts_picture_cm_update
  136.       update_ts_picture_cm
  137.   end
  138.   
  139. #--------------------------------------------------------------------------
  140. # ● Create TS Picture CM
  141. #--------------------------------------------------------------------------            
  142.   def create_ts_picture_cm
  143.       @command_window.visible = false ; @com_pictures = [[],[],[],[],[]]
  144.       @command_window.list.each_with_index do |l, i|
  145.       @com_pictures[0].push(Sprite.new)
  146.       @bitmap1=Cache.title1(MOG_TITLE_PICTURE_COMMANDS::FILE_NAME.to_s)# + i.to_s)
  147.       bitmap2 = Bitmap.new(316,26)
  148.       rect = Rect.new(0, 0, 316, 26)
  149.       bitmap2.blt(0, 0, @bitmap1, rect, 255)
  150.       @com_pictures[0][i].bitmap =bitmap2
  151.       draw_text(i)
  152.       @com_pictures[0][i].ox = @com_pictures[0][i].bitmap.width / 2
  153.       @com_pictures[0][i].oy = @com_pictures[0][i].bitmap.height / 2
  154.       @com_pictures[0][i].z = MOG_TITLE_PICTURE_COMMANDS::SCREEN_Z
  155.       sp = [MOG_TITLE_PICTURE_COMMANDS::X_SPACE * i, MOG_TITLE_PICTURE_COMMANDS::Y_SPACE * i]
  156.       if MOG_TITLE_PICTURE_COMMANDS::HORIZONTAL_MODE
  157.          @com_pictures[0][i].x = sp[0] + MOG_TITLE_PICTURE_COMMANDS::X_POS - @com_pictures[0][i].ox + (@com_pictures[0][i].bitmap.width * i)
  158.          @com_pictures[0][i].y = sp[1] + MOG_TITLE_PICTURE_COMMANDS::Y_POS + @com_pictures[0][i].oy
  159.       else
  160.          @com_pictures[0][i].x = sp[0] + MOG_TITLE_PICTURE_COMMANDS::X_POS + @com_pictures[0][i].ox
  161.          @com_pictures[0][i].y = sp[1] + MOG_TITLE_PICTURE_COMMANDS::Y_POS + @com_pictures[0][i].oy + (@com_pictures[0][i].bitmap.height * i)
  162.       end  
  163.       @com_pictures[3][i] = [@com_pictures[0][i].x - @com_pictures[0][i].ox,@com_pictures[0][i].y - @com_pictures[0][i].oy]
  164.       @com_pictures[1][i] = l[:enabled]
  165.       @com_pictures[2][i] = 0
  166.       end
  167.       @npc = [-64,-64] ; create_tsprite_cursor
  168. end
  169.    
  170. #--------------------------------------------------------------------------
  171. # ● Create Tsprite Cursor
  172. #--------------------------------------------------------------------------            
  173.   def create_tsprite_cursor
  174.       return if !MOG_TITLE_PICTURE_COMMANDS::SPRITE_CURSOR
  175.       @sprite_cursor = Sprite.new
  176.       @sprite_cursor.bitmap = Cache.title1(MOG_TITLE_PICTURE_COMMANDS::CURSOR_FILE_NAME.to_s)
  177.       @sprite_cursor.z = MOG_TITLE_PICTURE_COMMANDS::SCREEN_Z + 10
  178.       @sprite_cursor.x = @com_pictures[3][0][0]
  179.       @sprite_cursor.y = @com_pictures[3][0][1]
  180.       @sprite_cursor.opacity = 0
  181.   end
  182.   
  183. #--------------------------------------------------------------------------
  184. # ● Update Sprite Cursor
  185. #--------------------------------------------------------------------------            
  186.   def update_tsprite_cursor
  187.       return if !MOG_TITLE_PICTURE_COMMANDS::SPRITE_CURSOR
  188.       @npc = [@com_pictures[3][@command_window.index][0] + MOG_TITLE_PICTURE_COMMANDS::SPRITE_CURSOR_X,
  189.       @com_pictures[3][@command_window.index][1] + MOG_TITLE_PICTURE_COMMANDS::SPRITE_CURSOR_Y]
  190.       execute_move_t_sprite(0,@sprite_cursor.x,@npc[0])
  191.       execute_move_t_sprite(1,@sprite_cursor.y,@npc[1])
  192.       @sprite_cursor.opacity += 15
  193.   end
  194.    
  195. #--------------------------------------------------------------------------
  196. # ● Execute Move T Sprite
  197. #--------------------------------------------------------------------------            
  198.   def execute_move_t_sprite(type,cp,np)
  199.       sp = 5 + ((cp - np).abs / 5)
  200.       if cp > np ;    cp -= sp ; cp = np if cp < np
  201.       elsif cp < np ; cp += sp ; cp = np if cp > np
  202.       end     
  203.       @sprite_cursor.x = cp if type == 0 ; @sprite_cursor.y = cp if type == 1
  204.   end  

  205. #--------------------------------------------------------------------------
  206. # ● Dispose TS Picture CM
  207. #--------------------------------------------------------------------------            
  208.   def dispose_ts_picture_cm
  209.       @com_pictures[0].each {|sprite| sprite.dispose }
  210.       return if @sprite_cursor == nil
  211.       @sprite_cursor.bitmap.dispose ; @sprite_cursor.dispose
  212.   end
  213.   
  214. #--------------------------------------------------------------------------
  215. # ● Update TS Picture CM
  216. #--------------------------------------------------------------------------            
  217.   def update_ts_picture_cm
  218.       @command_window.visible = false ; @command_window.x = -2000      
  219.       for i in 0...@command_window.list.size
  220.           if i == @command_window.index
  221.             @com_pictures[2][i]=1
  222.             if !@com_pictures[1][i]
  223.               rect = Rect.new(316, 0, 316, 26)
  224.               bitmap2=Bitmap.new(316,26)
  225.               bitmap2.blt(0, 0, @bitmap1, rect, 255)
  226.               @com_pictures[0][i].bitmap =bitmap2
  227.               draw_text(i)
  228.             else
  229.               rect = Rect.new(632, 0, 316, 26)
  230.               bitmap2=Bitmap.new(316,26)
  231.               bitmap2.blt(0, 0, @bitmap1, rect, 255)
  232.               @com_pictures[0][i].bitmap =bitmap2
  233.               draw_text(i)
  234.             end
  235.           else
  236.             if @com_pictures[2][i]=1
  237.               rect = Rect.new(0, 0, 316, 26)
  238.               bitmap2=Bitmap.new(316,26)
  239.               bitmap2.blt(0, 0, @bitmap1, rect, 255)
  240.               @com_pictures[0][i].bitmap =bitmap2
  241.               draw_text(i)
  242.               @com_pictures[2][i]=1
  243.             end
  244.           end
  245.       end
  246.       update_tsprite_cursor
  247.   end
  248.    
  249.   def draw_text(i)
  250.       @com_pictures[0][i].bitmap.font.size=16
  251.       @com_pictures[0][i].bitmap.font.outline=false
  252.       @com_pictures[0][i].bitmap.font.name="黑体"
  253.       @com_pictures[0][i].bitmap.font.color=Color.new(0,0,0)
  254.       @com_pictures[0][i].bitmap.draw_text(0,0,316,26,MOG_TITLE_PICTURE_COMMANDS::TITLENAME[i],1)
  255.   end
  256.    
  257. #--------------------------------------------------------------------------
  258. # ● Com Zoom Effect
  259. #--------------------------------------------------------------------------            
  260. #~   def com_zoom_effect(i,type)
  261. #~       return if !MOG_TITLE_PICTURE_COMMANDS::ZOOM_EFFECT
  262. #~       if type == 0
  263. #~          if @com_pictures[2][i] == 0
  264. #~             @com_pictures[0][i].zoom_x += 0.01
  265. #~             @com_pictures[2][i] = 1 if @com_pictures[0][i].zoom_x >= 1.2
  266. #~          else
  267. #~             @com_pictures[0][i].zoom_x -= 0.01
  268. #~             @com_pictures[2][i] = 0 if @com_pictures[0][i].zoom_x <= 1.0         
  269. #~          end  
  270. #~       else
  271. #~          @com_pictures[2][i] = 0 ; @com_pictures[0][i].zoom_x -= 0.01
  272. #~          @com_pictures[0][i].zoom_x = 1.00 if @com_pictures[0][i].zoom_x < 1.00
  273. #~       end
  274. #~       @com_pictures[0][i].zoom_y = @com_pictures[0][i].zoom_x
  275. #~   end
  276.   
  277. end

  278. #==============================================================================
  279. # ■ Window Command
  280. #==============================================================================
  281. class Window_Command < Window_Selectable
  282.   attr_reader   :list
  283. end

  284. end
复制代码




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

本版积分规则

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

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

GMT+8, 2024-11-16 13:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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