Project1

标题: 求助!如何让显示的图片消失?(非事件) [打印本页]

作者: 小徐    时间: 2013-5-4 15:00
标题: 求助!如何让显示的图片消失?(非事件)
本帖最后由 小徐 于 2013-5-5 12:57 编辑

做了个浏览CG的界面,问题是这样的:

用代码:
  1. cg = Sprite.new
  2. cg.bitmap = Bitmap.new("Graphics/CG/#{$game_variables[50]}") #显示图片的编号
复制代码
显示的图片无法消失,释放图片(.dispose)试过了,悲剧地无效……

目前的情况是,随着切换,图片会一张一张重叠,帧数下降到卡死,求助QAQ

全代码如下:(因为各种释放图片都试过了无效,所以把释放的代码去掉了……哪位大神帮我看下把释放放在哪里能把图片关掉QAQ)
PS:$game_screen.pictures[z].show('XXX', 0,x,y , 100, 100, 255, 0)也试过了,然后用事件的消除($game_screen.pictures[number].erase
)也无效……QAQ
  1. class Scene_YC_CG
  2. #--------------------------------------------------------------------------
  3. # ● 初始化对像
  4. # menu_index : 命令光标的初期位置
  5. #--------------------------------------------------------------------------
  6. def initialize(menu_index = 0)
  7. @menu_index = menu_index
  8. @parameter = []
  9. @cg=0
  10. @cg_index=[]

  11. end
  12. #--------------------------------------------------------------------------
  13. # ● 主处理
  14. #--------------------------------------------------------------------------
  15. def main
  16. # 生成命令窗口
  17. s1 = "CG1"
  18. s2 = "CG2"
  19. s3 = "CG3"
  20. s4 = "CG4"
  21. s5 = "CG5"
  22. s6 = "CG6"
  23. s7 = "CG7"
  24. s8 = "CG8"
  25. s9 = "CG9"
  26. s10 = "CG10"
  27. s11 = "CG11"
  28. s12 = "CG12"
  29. s13 = "CG13"
  30. s14 = "CG14"
  31. @command_window = Window_Command.new(192, [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14])
  32. @command_window.index = @menu_index
  33. @command_window.x = 0
  34. @command_window.y = 0
  35. # @cg_show_window=Window_Cg_Show.new
  36. # 执行过渡
  37. Graphics.transition
  38. # 主循环
  39. loop do
  40. # 刷新游戏画面
  41. Graphics.update
  42. # 刷新输入情报
  43. Input.update
  44. # 刷新画面
  45. update
  46. # 如果画面切换的话就中断循环
  47. if $scene != self
  48. break
  49. end
  50. end
  51. # 准备过渡
  52. Graphics.freeze
  53. # 执行过度
  54. Graphics.transition(40)
  55. # 准备过渡
  56. Graphics.freeze
  57. # 释放窗口
  58. @command_window.dispose
  59. # 如果在标题画面切换中的情况下
  60. if $scene.is_a?(Scene_Title)
  61. # 淡入淡出画面
  62. Graphics.transition
  63. Graphics.freeze
  64. end
  65. end
  66. #--------------------------------------------------------------------------
  67. # ● 刷新画面
  68. #--------------------------------------------------------------------------
  69. def update
  70. # 刷新命令窗口
  71. @command_window.update
  72. case @command_window.index
  73. when 0 # Cg1
  74. $game_variables[50]=1
  75. cg_update
  76. when 1 # Cg2
  77. $game_variables[50]=2
  78. cg_update
  79. when 2 # 取消
  80. $game_variables[50]=3
  81. cg_update
  82. when 3 # 取消
  83. $game_variables[50]=4
  84. cg_update
  85. end

  86. # 按下 B 键的情况下
  87. if Input.trigger?(Input::B)
  88. # 演奏取消 SE
  89. $game_system.se_play($data_system.cancel_se)
  90. # 切换到菜单画面
  91. $scene = Scene_YC_Menu.new(1)
  92. return
  93. end
  94. end
  95. #--------------------------------------------------------------------------
  96. # ● 刷新CG画面时的处理
  97. #--------------------------------------------------------------------------
  98. def cg_update
  99. cg = Sprite.new
  100. cg.bitmap = Bitmap.new("Graphics/CG/#{$game_variables[50]}")
  101. end
  102. #--------------------------------------------------------------------------
  103. # ● 选择命令 [取消] 时的处理
  104. #--------------------------------------------------------------------------
  105. def command_cancel
  106. # 演奏确定 SE
  107. $game_system.se_play($data_system.decision_se)
  108. # 切换到菜单画面
  109. $scene = Scene_YC_Menu.new(1)
  110. end
  111. end
复制代码


看这要命的帧数呀QAQ!!!
作者: 灼眼的夏娜    时间: 2013-5-4 16:13
cg = Sprite.new 改为 @cg = Sprite.new
在释放的地方
@cg.bitmap.dispose
@cg.dispose
作者: 小徐    时间: 2013-5-5 12:57
灼眼的夏娜 发表于 2013-5-4 16:13
cg = Sprite.new 改为 @cg = Sprite.new
在释放的地方
@cg.bitmap.dispose

可用!谢谢夏娜姐!!




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