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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: taeckle
打印 上一主题 下一主题

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
11
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 13:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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