楼主: taeckle

[已经解决] 请教用脚本将一个png图像文件显示到游戏界面的最简单方法

[复制链接]
梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
 楼主| 发表于 2021-8-6 03:33:14 | 显示全部楼层
本帖最后由 taeckle 于 2021-8-6 04:45 编辑

@guoxiaomi

大神这是我自己看过F1帮助后的代码,虽说跟上面提到方法不一样,但也能达到目的,请问下咱这个代码(尤其是dispose那部分)还有哪些不足呢:

第一步: 首先在任意一张地图上创建一个事件,设置决定键开启事件,然后插入指令脚本,在里面输入代码:

$scene = Scene_Storage.new

第二步: 把一张名为"狗不理.png"的图片放到Graphics/Pictures文件夹下。

第三步: 在脚本编辑器main上面插入个新脚本页,然后在其输入这些代码:

class Scene_Storage
  def main
    @menu_com = Sprite.new
    @menu_com.bitmap = RPG::Cache.picture("狗不理.png")

   Graphics.transition
   # 主循环
   loop do
     # 刷新游戏画面
     Graphics.update
     # 刷新输入信息
     Input.update
     # 刷新画面
     update
     # 如果画面切换的话就中断循环
     if $scene != self
       break
     end
   end     
   
    # 准备过渡
    Graphics.freeze   
    @menu_com.bitmap.dispose
    @menu_com.dispose   
  end

  def update
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换的地图画面
      $scene = Scene_Map.new
      return
    end         
  end
  
end

以上就是实现把一张名叫"狗不理.png"的图片(640X480)显示在游戏界面上(想达到的效果就好像数据库事件指令里的显示图片一样), 初始位置为(0,0),按下esc键后可令其消失然后释放内存的方法,大家可以进入工程用回车键点击上面创建的事件自行测试

点评

现代计算机内存是够用的  发表于 2021-8-7 01:08
你这个bitmap是从RPG::Cache里读的,不释放的话,下次如果还要读就可以命中缓存,否则就又要从硬盘里加载一次  发表于 2021-8-7 01:07
为何bitmap不需要dispose啊?难道bitmap不占内存吗?  发表于 2021-8-6 23:31
bitmap不需要dispose  发表于 2021-8-6 11:48
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部