查看: 2048|回复: 0

[已经过期] 老问题 了请问地图上显示文字脚本 怎么使用555

[复制链接]
梦石
0
星屑
2457
在线时间
912 小时
注册时间
2014-10-14
回帖
1155

开拓者

发表于 2016-12-9 01:54:38 | 显示全部楼层 |阅读模式

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

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

×
[pre lang="ruby"]#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

# ————————————————————————————————————
# 本脚本来自www.66rpg.com,转载请保留此信息
# ————————————————————————————————————
#
# 脚本作者:JesseKiss    QQ:5624108     (脚本思想来自某ARPG脚本)
#
# ————————————————————————————————————
$DE_FONT_NAME = "黑体"  #字体
$DE_FONT_SIZE = 21      #字体大小
$MT_ID        = 0       #头上显示文字的NPC ID
$MT_TIME      = 200     #显示文字的时间
#--------------------------------------------------------------------------
class Map_Text_System
#--------------------------------------------------------------------------
attr_accessor :display
#--------------------------------------------------------------------------
def initialize
   @DISPLAY = []
   @display[0] = false
   @display[1] = ""
end
end
#-----------------------------------------------------------------------------
class Sprite_Display < Sprite
#--------------------------------------------------------------------------
def initialize
   super
   self.bitmap = Bitmap.new(120, 48)
   self.bitmap.font.name = $DE_FONT_NAME
   self.bitmap.font.size = $DE_FONT_SIZE
   self.bitmap.font.color.set(255, 255, 255)  #文字颜色定义
   self.z = 500
   update
end
#--------------------------------------------------------------------------
def dispose
   if self.bitmap != nil
     self.bitmap.dispose
   end
   super
end
#--------------------------------------------------------------------------
   def update
    super
    if $MT.display[0] == true
      $counter += 1
    else
      $counter = 0
    end
    self.visible = $MT.display[0]
    self.bitmap.clear
    if $counter != $MT_TIME and $MT.display[0] == true
      self.x = (-0.25 * $game_map.display_x) + ($game_map.events[$MT_ID].x * 32) - 40
      self.y = (-0.25 * $game_map.display_y) + ($game_map.events[$MT_ID].y * 32) - 50
      text = $MT.display[1]
      self.bitmap.draw_text(self.bitmap.rect, text, 1)
    else
      self.visible = false
      $counter = 0
      self.bitmap.clear
      $MT.display[0] = false
    end
  end
end

#======================================
# ■ Scene_Title
#======================================
class Scene_Title
#--------------------------------------------------------------------------
# ● 命令 : 新游戏
#--------------------------------------------------------------------------
def command_new_game
   # 演奏确定 SE
   $game_system.se_play($data_system.decision_se)
   # 停止 BGM
   Audio.bgm_stop
   # 重置测量游戏时间用的画面计数器
   Graphics.frame_count = 0
   # 生成各种游戏对像
   $game_temp          = Game_Temp.new
   $game_system        = Game_System.new
   $game_switches      = Game_Switches.new
   $game_variables     = Game_Variables.new
   $game_self_switches = Game_SelfSwitches.new
   $game_screen        = Game_Screen.new
   $game_actors        = Game_Actors.new
   $game_party         = Game_Party.new
   $game_troop         = Game_Troop.new
   $game_map           = Game_Map.new
   $game_player        = Game_Player.new
   #添加了这个东西
   $MT = Map_Text_System.new
   # 设置初期同伴位置
   $game_party.setup_starting_members
   # 设置初期位置的地图
   $game_map.setup($data_system.start_map_id)
   # 主角向初期位置移动
   $game_player.moveto($data_system.start_x, $data_system.start_y)
   # 刷新主角
   $game_player.refresh
   # 执行地图设置的 BGM 与 BGS 的自动切换
   $game_map.autoplay
   # 刷新地图 (执行并行事件)
   $game_map.update
   # 切换地图画面
   $scene = Scene_Map.new
end
end
#==============================================================================
# ■ Spriteset_Map
#------------------------------------------------------------------------------
#  处理地图画面活动块和元件的类。本类在
# Scene_Map 类的内部使用。
#==============================================================================

class Spriteset_Map
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
   # 生成显示端口
   @viewport1 = Viewport.new(0, 0, 640, 480)
   @viewport2 = Viewport.new(0, 0, 640, 480)
   @viewport3 = Viewport.new(0, 0, 640, 480)
   @viewport2.z = 200
   @viewport3.z = 5000
   # 生成元件地图
   @tilemap = Tilemap.new(@viewport1)
   @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
   for i in 0..6
     autotile_name = $game_map.autotile_names
     @tilemap.autotiles = RPG::Cache.autotile(autotile_name)
   end
   @tilemap.map_data = $game_map.data
   @tilemap.priorities = $game_map.priorities
   # 生成远景平面
   @Panorama = Plane.new(@viewport1)
   @panorama.z = -1000
   # 生成雾平面
   @fog = Plane.new(@viewport1)
   @fog.z = 3000
   # 生成角色活动块
   @character_sprites = []
   for i in $game_map.events.keys.sort
     sprite = Sprite_Character.new(@viewport1, $game_map.events)
     @character_sprites.push(sprite)
   end
   @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
   # 生成天气
   @weather = RPG::Weather.new(@viewport1)
   # 生成图片
   @picture_sprites = []
   for i in 1..50
     @picture_sprites.push(Sprite_Picture.new(@viewport2,
       $game_screen.pictures))
   end
   # 生成计时器块
   @timer_sprite = Sprite_Timer.new
   @display = Sprite_Display.new
   # 刷新画面
   update
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
def dispose
   # 释放元件地图
   @tilemap.tileset.dispose
   for i in 0..6
     @tilemap.autotiles.dispose
   end
   @tilemap.dispose
   # 释放远景平面
   @panorama.dispose
   # 释放雾平面
   @fog.dispose
   # 释放角色活动块
   for sprite in @character_sprites
     sprite.dispose
   end
   # 释放天候
   @weather.dispose
   # 释放图片
   for sprite in @picture_sprites
     sprite.dispose
   end
   # 释放计时器块
   @timer_sprite.dispose
   # 释放显示端口
   @viewport1.dispose
   @viewport2.dispose
   @viewport3.dispose
   @display.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
   # 远景与现在的情况有差异发情况下
   if @panorama_name != $game_map.panorama_name or
      @panorama_hue != $game_map.panorama_hue
     @panorama_name = $game_map.panorama_name
     @panorama_hue = $game_map.panorama_hue
     if @panorama.bitmap != nil
       @panorama.bitmap.dispose
       @panorama.bitmap = nil
     end
     if @panorama_name != ""
       @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
     end
     Graphics.frame_reset
   end
   # 雾与现在的情况有差异的情况下
   if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
     @fog_name = $game_map.fog_name
     @fog_hue = $game_map.fog_hue
     if @fog.bitmap != nil
       @fog.bitmap.dispose
       @fog.bitmap = nil
     end
     if @fog_name != ""
       @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
     end
     Graphics.frame_reset
   end
   # 刷新元件地图
   @tilemap.ox = $game_map.display_x / 4
   @tilemap.oy = $game_map.display_y / 4
   @tilemap.update
   # 刷新远景平面
   @panorama.ox = $game_map.display_x / 8
   @panorama.oy = $game_map.display_y / 8
   # 刷新雾平面
   @fog.zoom_x = $game_map.fog_zoom / 100.0
   @fog.zoom_y = $game_map.fog_zoom / 100.0
   @fog.opacity = $game_map.fog_opacity
   @fog.blend_type = $game_map.fog_blend_type
   @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
   @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
   @fog.tone = $game_map.fog_tone
   # 刷新角色活动块
   for sprite in @character_sprites
     sprite.update
   end
   # 刷新天候图形
   @weather.type = $game_screen.weather_type
   @weather.max = $game_screen.weather_max
   @weather.ox = $game_map.display_x / 4
   @weather.oy = $game_map.display_y / 4
   @weather.update
   # 刷新图片
   for sprite in @picture_sprites
     sprite.update
   end
   # 刷新计时器块
   @timer_sprite.update
   # 设置画面的色调与震动位置
   @viewport1.tone = $game_screen.tone
   @viewport1.ox = $game_screen.shake
   # 设置画面的闪烁色
   @viewport3.color = $game_screen.flash_color
   # 刷新显示端口
   @viewport1.update
   @viewport3.update
   @display.update
end
end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================



[/pre]
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

在本版发帖返回顶部