#============================================================================== # ■ RGSS3 マップズーム Ver1.00 by 星潟 # ■ RGSS3 地图缩放 Ver1.00 by 星潟 翻译:戏蹑群星斗 #------------------------------------------------------------------------------ #地图缩放。就是这样。 #由于缩放状态保存的数据将被保留(就是存档会保留缩放)。请注意 #============================================================================== # 使用事件命令的脚本。 #------------------------------------------------------------------------------ # map_zoom(150) # # 在这种情况下,它会放大到150%。 #------------------------------------------------------------------------------ # map_zoom(300) # # 在这种情况下,它会放大到300%。 #------------------------------------------------------------------------------ # map_zoom # # 在这种情况下,放大解除。 #============================================================================== # 100未満のズーム(縮小)や2000%を超えるのズームには制限をかけてあります。 # 因此,100是最小值,最大值2000。 #============================================================================== class Game_System attr_accessor :zoom_mode #-------------------------------------------------------------------------- # ズームモード #-------------------------------------------------------------------------- def zoom_mode @zoom_mode ||= 100 end end class Spriteset_Map #-------------------------------------------------------------------------- # ビューポートの作成 #-------------------------------------------------------------------------- alias create_viewports_zoommap create_viewports def create_viewports create_viewports_zoommap @zoommap = ZoomMap.new(@viewport1,@viewport2) end #-------------------------------------------------------------------------- # 更新処理 #-------------------------------------------------------------------------- alias update_zoommap update def update @zoommap.update update_zoommap end #-------------------------------------------------------------------------- # 解放処理 #-------------------------------------------------------------------------- alias dispose_zoommap dispose def dispose @zoommap.dispose dispose_zoommap end end class ZoomMap < Sprite_Base #-------------------------------------------------------------------------- # 初期化 #-------------------------------------------------------------------------- def initialize(v1,v2) super(v2) @viewport_data = v1 @zoom_rate = $game_system.zoom_mode @zoom_bitmap = nil end #-------------------------------------------------------------------------- # 解放 #-------------------------------------------------------------------------- def dispose @zoom_bitmap.dispose if @zoom_bitmap && !@zoom_bitmap.disposed? super end #-------------------------------------------------------------------------- # 更新処理 #-------------------------------------------------------------------------- def update self.visible = @zoom_rate != 100 @zoom_bitmap.dispose if @zoom_bitmap && !@zoom_bitmap.disposed? if $game_system.zoom_mode != 100 or @zoom_rate != 100 if @zoom_rate != $game_system.zoom_mode d = (@zoom_rate - $game_system.zoom_mode).to_i case d when 0..9;i = 1 when 10..99;i = 2 when 100..999;i = 3 else; i = 4 end @zoom_rate += (@zoom_rate < $game_system.zoom_mode) ? i : -i end zm = @zoom_rate.to_f / 100 @viewport_data.z += 10000000 @zoom_bitmap = Graphics.snap_to_bitmap self.bitmap = @zoom_bitmap w = self.bitmap.width h =self.bitmap.height self.ox = [[0,((w * zm / 2) - w / 2) / zm + (($game_player.screen_x - w / 2).to_f)].max,(w * zm - w) / zm].min self.oy = [[0,((h * zm / 2) - h / 2) / zm + (($game_player.screen_y - 16 - h / 2).to_f)].max,(h * zm - h) / zm].min self.zoom_x = zm self.zoom_y = zm self.visible = true @viewport_data.z -= 10000000 end super end end class Game_Interpreter #-------------------------------------------------------------------------- # ズーム #-------------------------------------------------------------------------- def map_zoom(rate = 100) $game_system.zoom_mode = [[rate,100].max,2000].min end end
#encoding:utf-8 #============================================================================== # ■ 半身像对话框 by LBQ #------------------------------------------------------------------------------ # 一个简单的半身像对话框罢了= = #------------------------------------------------------------------------------ # ■ 用法一览 # 1:如何将半身像应用到游戏中? # ——如果想要把一个脸图替换成半身像,则需要找到这个脸图的编号,比如说拉尔 # 夫,就是Actor1的编号0,之后去在Graphics/Busts这个文件夹里面拷贝一个 # 叫做Actor1_0的图像,这个图像会被当做半身像替换原有图像。 #============================================================================== $imported ||= {} $imported[:LBQ_Bust]=true module LBQ module Bust FOLDER="Busts" SUB1=[/【/, "\\{\\c[6]-- "] SUB2=[/】/, " --\\c[0]\\}"] TEXT_FOR_NEXT="[next]" TEXT_FOR_END ="[end]" INDENT=150 #半身像的缩进 end end module Cache def self.busts(filename) load_bitmap("Graphics/#{LBQ::Bust::FOLDER}/", filename) end end class Sprite_Bust < Sprite_Base attr_accessor :bust_graphics attr_accessor :status def initialize(vp=nil) super(vp) @bust_graphics=nil @status=:nothing end def slide_in @status=:sliding_in end def slide_out @status=:sliding_out if $game_message.do_not_slide_out @status=:slided_out set_pos end end def set_pos(slide_in=true) self.x=0 - self.bitmap.width self.y=Graphics.height-self.bitmap.height self.x=0 unless slide_in end def set_graphics(bust_graphics) self.bitmap=Cache.busts(bust_graphics) end def update super case @status when :nothing # Do Nothing when :sliding_in #Slide In self.x+=12 if self.x>=0 self.x=0 @status=:slided_in end when :sliding_out self.x-=12 if self.x<= -self.bitmap.width self.x= -self.bitmap.width @status=:slided_out end #Slide Out when :slided_in #Slided in when :slided_out #Sliede out end end end class Game_Message attr_accessor :bust_name attr_accessor :bust attr_accessor :have_bust attr_accessor :do_not_slide_out alias lbq_bust_shot_game_message_init initialize def initialize lbq_bust_shot_game_message_init @bust_name="" @bust=nil @have_bust=false @do_not_slide_out=false end #-------------------------------------------------------------------------- # ● 添加内容 #-------------------------------------------------------------------------- def add(text) new_text=text.gsub(LBQ::Bust::SUB1[0],LBQ::Bust::SUB1[1]) new_text2=new_text.gsub(LBQ::Bust::SUB2[0],LBQ::Bust::SUB2[1]) if new_text2.include? LBQ::Bust::TEXT_FOR_NEXT new_text2.delete!(LBQ::Bust::TEXT_FOR_NEXT) $game_message.do_not_slide_out=true end if new_text2.include? LBQ::Bust::TEXT_FOR_END new_text2.delete!(LBQ::Bust::TEXT_FOR_END) $game_message.do_not_slide_out=false end @texts.push(new_text2) end end class Game_Interpreter alias lbq_bust_shot_command_101 command_101 #-------------------------------------------------------------------------- # ● 显示文字 #-------------------------------------------------------------------------- def command_101 $game_message.bust=nil unless @params[0].empty? if File.exist?("Graphics/#{LBQ::Bust::FOLDER}/#{@params[0]}_#{@params[1]}.png") $game_message.have_bust=true else $game_message.have_bust=false $game_message.bust_name="" end end unless @params[3] == 2 $game_message.have_bust=false end if $game_message.have_bust $game_message.bust_name="#{@params[0]}_#{@params[1]}" $game_message.bust=nil $game_message.bust=Sprite_Bust.new $game_message.bust.set_graphics($game_message.bust_name) $game_message.bust.z=99999 unless $game_message.do_not_slide_out $game_message.bust.set_pos $game_message.bust.slide_in else $game_message.bust.set_pos(false) $game_message.bust.slide_in end end lbq_bust_shot_command_101 if $game_message.have_bust $game_message.bust.slide_out Fiber.yield until $game_message.bust.status==:slided_out end $game_message.have_bust=false $game_message.bust_name="" end alias lbq_bust_int_update update def update lbq_bust_int_update $game_message.bust.update unless $game_message.bust.nil? end end class Window_Message #-------------------------------------------------------------------------- # ● 获取换行位置 #-------------------------------------------------------------------------- def new_line_x value=0 value=112 unless $game_message.face_name.empty? unless $game_message.face_name.empty? && $game_message.bust_name.empty? value=LBQ::Bust::INDENT end return value end end class Window_Message #-------------------------------------------------------------------------- # ● 翻页处理 #-------------------------------------------------------------------------- def new_page(text, pos) contents.clear draw_face($game_message.face_name, $game_message.face_index, 0, 0) if $game_message.bust_name.empty? reset_font_settings pos[:x] = new_line_x pos[:y] = 0 pos[:new_x] = new_line_x pos[:height] = calc_line_height(text) clear_flags end end
QQ截图20161230231815.png (3.4 KB, 下载次数: 20)
RaidenInfinity 发表于 2016-12-31 00:08
第一个问题,如果连什么都没有碰过的新工程都卡顿,99%是硬件(电脑)的锅。
如果有碰过分辨率,请确保是3 ...
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |