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

Project1

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

[已经解决] 请问这个截图脚本怎么用

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4474
在线时间
1045 小时
注册时间
2016-5-19
帖子
262
跳转到指定楼层
1
发表于 2017-3-20 06:40:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

#******************************************************************************

#

#    * PNG 保存

#

#  --------------------------------------------------------------------------

#    バージョン :  1.0.0

#    対      応 :  RPGツクールVX Ace : RGSS3

#    制  作  者 :  CACAO

#    配  布  元 :  http://cacaosoft.web.fc2.com/

#  --------------------------------------------------------------------------

#   == 概    要 ==

#

#    : ピングファイルの出力機能を追加します。

#

#  --------------------------------------------------------------------------

#   == 使用方法 ==

#

#    ★ Bitmap#save_png(filename, alpha = false)

#     このビットマップをピングファイルで出力

#     filename : 保存するファイル名

#     alpha    : αチャンネルの有無

#

#

#******************************************************************************





#/////////////////////////////////////////////////////////////////////////////#

#                                                                             #

#                  このスクリプトに設定項目はありません。                     #

#                                                                             #

#/////////////////////////////////////////////////////////////////////////////#





class Bitmap

  #--------------------------------------------------------------------------

  # ● ピング画像として保存

  #     filename : ファイル名

  #     alpha    : アルファチャンネルの有無

  #--------------------------------------------------------------------------

  def save_png(filename, alpha = false)

    sgnt = "\x89PNG\r\n\x1a\n"

    ihdr = _chunk('IHDR', [width,height,8,(alpha ? 6 : 2),0,0,0].pack('N2C5'))

    data = []

    height.times do |y|

      data << 0

      width.times do |x|

        color = self.get_pixel(x, y)

        data << color.red << color.green << color.blue

        data << color.alpha if alpha

      end

    end

    idat = _chunk('IDAT', Zlib::Deflate.deflate(data.pack('C*')))

    iend = _chunk('IEND', "")

    File.open(filename, 'wb') do |file|

      file.write(sgnt)

      file.write(ihdr)

      file.write(idat)

      file.write(iend)

    end

  end

private

  #--------------------------------------------------------------------------

  # ● チャンクの作成

  #     name : チャンク名

  #     data : チャンクデータ

  #--------------------------------------------------------------------------

  def _chunk(name, data)

    return [data.size, name, data, Zlib.crc32(name + data)].pack('NA4A*N')

  end

end





#******************************************************************************

#

#    * マップ画像の保存

#

#  --------------------------------------------------------------------------

#    バージョン :  1.0.0

#    対      応 :  RPGツクールVX Ace : RGSS3

#    制  作  者 :  CACAO

#    配  布  元 :  http://cacaosoft.web.fc2.com/

#  --------------------------------------------------------------------------

#   == 概    要 ==

#

#    : マップを1枚の画像にして保存します。

#

#  --------------------------------------------------------------------------

#   == 注意事項 ==

#

#    ※ 画像保存に『PNG 保存』スクリプトが必要になります。

#    ※ ゲーム配布時には、削除してください。

#    ※ 撮影時にプレイヤーは非表示になります。

#

#  --------------------------------------------------------------------------

#   == 使用方法 ==

#

#    ★ マップ画像を保存する

#     マップ画面で F7 キーを押してください。

#     右下まで移動すると停止しますが、画像を保存しています。

#     画面が元に戻るまで、しばらくお持ちください。

#     画像は、ゲームフォルダに保存されます。

#

#    ※ キーを変更するには、:F7 で検索してください。

#       1箇所のみ引っかかるので、そこを変更してください。

#

#

#******************************************************************************





#/////////////////////////////////////////////////////////////////////////////#

#                                                                             #

#                下記のスクリプトを変更する必要はありません。                 #

#                                                                             #

#/////////////////////////////////////////////////////////////////////////////#





class Sprite_Character < Sprite_Base

  #--------------------------------------------------------------------------

  # ● フレーム更新

  #--------------------------------------------------------------------------

  def update_snap

    self.x = @character.screen_x

    self.y = @character.screen_y

    self.z = @character.screen_z

    self.visible = [email protected]



    if @balloon_duration > 0

      @balloon_sprite.x = x

      @balloon_sprite.y = y - height

      @balloon_sprite.z = z + 200

    end

  end

end



class Spriteset_Map

  #--------------------------------------------------------------------------

  # ●

  #--------------------------------------------------------------------------

  def update_snap

    @tilemap.ox = $game_map.display_x * 32

    @tilemap.oy = $game_map.display_y * 32



    @parallax.ox = $game_map.parallax_ox(@parallax.bitmap)

    @parallax.oy = $game_map.parallax_oy(@parallax.bitmap)



    @character_sprites.each {|sprite| sprite.update_snap }



    airship = $game_map.airship

    @shadow_sprite.x = airship.screen_x

    @shadow_sprite.y = airship.screen_y + airship.altitude

    @shadow_sprite.opacity = airship.altitude * 8



    Graphics.update

  end

end



class Scene_Map < Scene_Base

  #--------------------------------------------------------------------------

  # ● フレーム更新

  #--------------------------------------------------------------------------

  alias _cao_mapshot_update update

  def update

    _cao_mapshot_update

    map_shop if Input.press?(:F7)

  end

  #--------------------------------------------------------------------------

  # ●

  #--------------------------------------------------------------------------

  def map_shop

    # プレイヤーを非表示

    last_player_transparent = $game_player.transparent

    $game_player.transparent = true

    # マップの撮影

    bitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)

    screen_width = $game_map.screen_tile_x

    screen_height = $game_map.screen_tile_y

    ($game_map.width / screen_width.to_f).ceil.times do |x|

      ($game_map.height / screen_height.to_f).ceil.times do |y|

        $game_map.set_display_pos(screen_width * x, screen_height * y)

        @spriteset.update_snap

        dx = $game_map.display_x * 32

        dy = $game_map.display_y * 32

        snap = Graphics.snap_to_bitmap

        bitmap.blt(dx, dy, snap, snap.rect)

      end

    end

    # マップ画像の保存

    Graphics.update

    filename = sprintf('ground%03d-1.png', $game_map.map_id,$game_map.display_name)

    bitmap.save_png(filename)

    puts "`#{filename}' 保存完了!"

    # プレイヤーの状態を戻す

    $game_player.transparent = last_player_transparent

    $game_player.center($game_player.x, $game_player.y)

    $game_player.update

  end

end

点评

直接按F7  发表于 2017-3-20 08:36

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2017-3-20 08:11:50 | 只看该作者
本帖最后由 guoxiaomi 于 2017-3-20 10:26 编辑

看上去是
  1. $scene.map_shop
复制代码

(偷偷改了~)

评分

参与人数 1星屑 +100 收起 理由
RaidenInfinity + 100 不得不吐槽这脚本作者的英文….

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4474
在线时间
1045 小时
注册时间
2016-5-19
帖子
262
3
 楼主| 发表于 2017-3-20 09:28:20 | 只看该作者
弄好了,谢谢。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 07:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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