Project1

标题: 老问题 了请问地图上显示文字脚本 怎么使用555 [打印本页]

作者: j296196585    时间: 2016-12-9 01:54
标题: 老问题 了请问地图上显示文字脚本 怎么使用555
RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================
  4.  
  5. # ————————————————————————————————————
  6. # 本脚本来自[url]www.66rpg.com[/url],转载请保留此信息
  7. # ————————————————————————————————————
  8. #
  9. # 脚本作者:JesseKiss    QQ:5624108     (脚本思想来自某ARPG脚本)
  10. #
  11. # ————————————————————————————————————
  12. $DE_FONT_NAME = "黑体"  #字体
  13. $DE_FONT_SIZE = 21      #字体大小
  14. $MT_ID        = 0       #头上显示文字的NPC ID
  15. $MT_TIME      = 200     #显示文字的时间
  16. #--------------------------------------------------------------------------
  17. class Map_Text_System
  18. #--------------------------------------------------------------------------
  19. attr_accessor :display
  20. #--------------------------------------------------------------------------
  21. def initialize
  22.    [url=home.php?mod=space&uid=502659]@DISPLAY[/url] = []
  23.    @display[0] = false
  24.    @display[1] = ""
  25. end
  26. end
  27. #-----------------------------------------------------------------------------
  28. class Sprite_Display < Sprite
  29. #--------------------------------------------------------------------------
  30. def initialize
  31.    super
  32.    self.bitmap = Bitmap.new(120, 48)
  33.    self.bitmap.font.name = $DE_FONT_NAME
  34.    self.bitmap.font.size = $DE_FONT_SIZE
  35.    self.bitmap.font.color.set(255, 255, 255)  #文字颜色定义
  36.    self.z = 500
  37.    update
  38. end
  39. #--------------------------------------------------------------------------
  40. def dispose
  41.    if self.bitmap != nil
  42.      self.bitmap.dispose
  43.    end
  44.    super
  45. end
  46. #--------------------------------------------------------------------------
  47.    def update
  48.     super
  49.     if $MT.display[0] == true
  50.       $counter += 1
  51.     else
  52.       $counter = 0
  53.     end
  54.     self.visible = $MT.display[0]
  55.     self.bitmap.clear
  56.     if $counter != $MT_TIME and $MT.display[0] == true
  57.       self.x = (-0.25 * $game_map.display_x) + ($game_map.events[$MT_ID].x * 32) - 40
  58.       self.y = (-0.25 * $game_map.display_y) + ($game_map.events[$MT_ID].y * 32) - 50
  59.       text = $MT.display[1]
  60.       self.bitmap.draw_text(self.bitmap.rect, text, 1)
  61.     else
  62.       self.visible = false
  63.       $counter = 0
  64.       self.bitmap.clear
  65.       $MT.display[0] = false
  66.     end
  67.   end
  68. end
  69.  
  70. #======================================
  71. # ■ Scene_Title
  72. #======================================
  73. class Scene_Title
  74. #--------------------------------------------------------------------------
  75. # ● 命令 : 新游戏
  76. #--------------------------------------------------------------------------
  77. def command_new_game
  78.    # 演奏确定 SE
  79.    $game_system.se_play($data_system.decision_se)
  80.    # 停止 BGM
  81.    Audio.bgm_stop
  82.    # 重置测量游戏时间用的画面计数器
  83.    Graphics.frame_count = 0
  84.    # 生成各种游戏对像
  85.    $game_temp          = Game_Temp.new
  86.    $game_system        = Game_System.new
  87.    $game_switches      = Game_Switches.new
  88.    $game_variables     = Game_Variables.new
  89.    $game_self_switches = Game_SelfSwitches.new
  90.    $game_screen        = Game_Screen.new
  91.    $game_actors        = Game_Actors.new
  92.    $game_party         = Game_Party.new
  93.    $game_troop         = Game_Troop.new
  94.    $game_map           = Game_Map.new
  95.    $game_player        = Game_Player.new
  96.    #添加了这个东西
  97.    $MT = Map_Text_System.new
  98.    # 设置初期同伴位置
  99.    $game_party.setup_starting_members
  100.    # 设置初期位置的地图
  101.    $game_map.setup($data_system.start_map_id)
  102.    # 主角向初期位置移动
  103.    $game_player.moveto($data_system.start_x, $data_system.start_y)
  104.    # 刷新主角
  105.    $game_player.refresh
  106.    # 执行地图设置的 BGM 与 BGS 的自动切换
  107.    $game_map.autoplay
  108.    # 刷新地图 (执行并行事件)
  109.    $game_map.update
  110.    # 切换地图画面
  111.    $scene = Scene_Map.new
  112. end
  113. end
  114. #==============================================================================
  115. # ■ Spriteset_Map
  116. #------------------------------------------------------------------------------
  117. #  处理地图画面活动块和元件的类。本类在
  118. # Scene_Map 类的内部使用。
  119. #==============================================================================
  120.  
  121. class Spriteset_Map
  122. #--------------------------------------------------------------------------
  123. # ● 初始化对像
  124. #--------------------------------------------------------------------------
  125. def initialize
  126.    # 生成显示端口
  127.    @viewport1 = Viewport.new(0, 0, 640, 480)
  128.    @viewport2 = Viewport.new(0, 0, 640, 480)
  129.    @viewport3 = Viewport.new(0, 0, 640, 480)
  130.    @viewport2.z = 200
  131.    @viewport3.z = 5000
  132.    # 生成元件地图
  133.    @tilemap = Tilemap.new(@viewport1)
  134.    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
  135.    for i in 0..6
  136.      autotile_name = $game_map.autotile_names[i]
  137.      @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
  138.    end
  139.    @tilemap.map_data = $game_map.data
  140.    @tilemap.priorities = $game_map.priorities
  141.    # 生成远景平面
  142.    [url=home.php?mod=space&uid=2658185]@Panorama[/url] = Plane.new(@viewport1)
  143.    @panorama.z = -1000
  144.    # 生成雾平面
  145.    [url=home.php?mod=space&uid=14217]@fog[/url] = Plane.new(@viewport1)
  146.    @fog.z = 3000
  147.    # 生成角色活动块
  148.    @character_sprites = []
  149.    for i in $game_map.events.keys.sort
  150.      sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  151.      @character_sprites.push(sprite)
  152.    end
  153.    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  154.    # 生成天气
  155.    @weather = RPG::Weather.new(@viewport1)
  156.    # 生成图片
  157.    @picture_sprites = []
  158.    for i in 1..50
  159.      @picture_sprites.push(Sprite_Picture.new(@viewport2,
  160.        $game_screen.pictures[i]))
  161.    end
  162.    # 生成计时器块
  163.    @timer_sprite = Sprite_Timer.new
  164.    @display = Sprite_Display.new
  165.    # 刷新画面
  166.    update
  167. end
  168. #--------------------------------------------------------------------------
  169. # ● 释放
  170. #--------------------------------------------------------------------------
  171. def dispose
  172.    # 释放元件地图
  173.    @tilemap.tileset.dispose
  174.    for i in 0..6
  175.      @tilemap.autotiles[i].dispose
  176.    end
  177.    @tilemap.dispose
  178.    # 释放远景平面
  179.    @panorama.dispose
  180.    # 释放雾平面
  181.    @fog.dispose
  182.    # 释放角色活动块
  183.    for sprite in @character_sprites
  184.      sprite.dispose
  185.    end
  186.    # 释放天候
  187.    @weather.dispose
  188.    # 释放图片
  189.    for sprite in @picture_sprites
  190.      sprite.dispose
  191.    end
  192.    # 释放计时器块
  193.    @timer_sprite.dispose
  194.    # 释放显示端口
  195.    @viewport1.dispose
  196.    @viewport2.dispose
  197.    @viewport3.dispose
  198.    @display.dispose
  199. end
  200. #--------------------------------------------------------------------------
  201. # ● 刷新画面
  202. #--------------------------------------------------------------------------
  203. def update
  204.    # 远景与现在的情况有差异发情况下
  205.    if @panorama_name != $game_map.panorama_name or
  206.       @panorama_hue != $game_map.panorama_hue
  207.      @panorama_name = $game_map.panorama_name
  208.      @panorama_hue = $game_map.panorama_hue
  209.      if @panorama.bitmap != nil
  210.        @panorama.bitmap.dispose
  211.        @panorama.bitmap = nil
  212.      end
  213.      if @panorama_name != ""
  214.        @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
  215.      end
  216.      Graphics.frame_reset
  217.    end
  218.    # 雾与现在的情况有差异的情况下
  219.    if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
  220.      @fog_name = $game_map.fog_name
  221.      @fog_hue = $game_map.fog_hue
  222.      if @fog.bitmap != nil
  223.        @fog.bitmap.dispose
  224.        @fog.bitmap = nil
  225.      end
  226.      if @fog_name != ""
  227.        @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
  228.      end
  229.      Graphics.frame_reset
  230.    end
  231.    # 刷新元件地图
  232.    @tilemap.ox = $game_map.display_x / 4
  233.    @tilemap.oy = $game_map.display_y / 4
  234.    @tilemap.update
  235.    # 刷新远景平面
  236.    @panorama.ox = $game_map.display_x / 8
  237.    @panorama.oy = $game_map.display_y / 8
  238.    # 刷新雾平面
  239.    @fog.zoom_x = $game_map.fog_zoom / 100.0
  240.    @fog.zoom_y = $game_map.fog_zoom / 100.0
  241.    @fog.opacity = $game_map.fog_opacity
  242.    @fog.blend_type = $game_map.fog_blend_type
  243.    @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
  244.    @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
  245.    @fog.tone = $game_map.fog_tone
  246.    # 刷新角色活动块
  247.    for sprite in @character_sprites
  248.      sprite.update
  249.    end
  250.    # 刷新天候图形
  251.    @weather.type = $game_screen.weather_type
  252.    @weather.max = $game_screen.weather_max
  253.    @weather.ox = $game_map.display_x / 4
  254.    @weather.oy = $game_map.display_y / 4
  255.    @weather.update
  256.    # 刷新图片
  257.    for sprite in @picture_sprites
  258.      sprite.update
  259.    end
  260.    # 刷新计时器块
  261.    @timer_sprite.update
  262.    # 设置画面的色调与震动位置
  263.    @viewport1.tone = $game_screen.tone
  264.    @viewport1.ox = $game_screen.shake
  265.    # 设置画面的闪烁色
  266.    @viewport3.color = $game_screen.flash_color
  267.    # 刷新显示端口
  268.    @viewport1.update
  269.    @viewport3.update
  270.    @display.update
  271. end
  272. end
  273.  
  274. #==============================================================================
  275. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  276. #==============================================================================





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