Project1
标题:
改了分辨率以后,地图只能显示原区域
[打印本页]
作者:
冰舞蝶恋
时间:
2012-7-10 17:25
标题:
改了分辨率以后,地图只能显示原区域
这个问题好像以前也会,而且以前一搜能搜到很多来着。。
总之现在忘了 求助啊~ dsu_plus_rewardpost_czw
作者:
铅笔描绘的思念
时间:
2012-7-10 20:27
貌似是在那个Spriteset_Map里的一开始的地方
@viewport1 = Viewport.new(0, 0 ,544, 416)
@viewport2 = Viewport.new(0, 0, 544, 416)
@viewport3 = Viewport.new(0, 0, 544, 416)
作者:
R-零
时间:
2012-7-10 20:48
本帖最后由 R-零 于 2012-7-10 20:54 编辑
http://rpg.blue/forum.php?mod=viewthread&tid=162509
参考这个XP的800*600
得出结论,通过4个元件地图的不同位置描绘解决
具体:把显示地图的视口复制成4个
每个视口加载一个元件地图
每个元件地图对应错位
因为Win7测试VX不方便所以只测试了一次,
不过在win7下测试效率明显降低,如果需要可以切换双系统到XP测试
[url=copycode($('code_SDd'));]复制下面代码[/url]
修改了Spriteset_Map
#==============================================================================
# ■ Spriteset_Map
#------------------------------------------------------------------------------
# 处理地图画面活动块和元件的类。本类在 Scene_Map 类的内部使用。
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
create_viewports
create_tilemap
create_parallax
create_characters
create_shadow
create_weather
create_pictures
create_timer
update
end
#--------------------------------------------------------------------------
# ● 生成显示端口
#--------------------------------------------------------------------------
def create_viewports
@viewport1 = Viewport.new(0, 0, 544, 416)
@viewport12 = Viewport.new(300, 0, 544, 416)
@viewport13 = Viewport.new(0, 300, 544, 416)
@viewport14 = Viewport.new(300, 300, 544, 416)
@viewport2 = Viewport.new(0, 0, 544, 416)
@viewport3 = Viewport.new(0, 0, 544, 416)
@viewport2.z = 50
@viewport3.z = 100
end
#--------------------------------------------------------------------------
# ● 生成地图元件
#--------------------------------------------------------------------------
def create_tilemap
@tilemap = Tilemap.new(@viewport1)
@tilemap.bitmaps[0] = Cache.system("TileA1")
@tilemap.bitmaps[1] = Cache.system("TileA2")
@tilemap.bitmaps[2] = Cache.system("TileA3")
@tilemap.bitmaps[3] = Cache.system("TileA4")
@tilemap.bitmaps[4] = Cache.system("TileA5")
@tilemap.bitmaps[5] = Cache.system("TileB")
@tilemap.bitmaps[6] = Cache.system("TileC")
@tilemap.bitmaps[7] = Cache.system("TileD")
@tilemap.bitmaps[8] = Cache.system("TileE")
@tilemap.map_data = $game_map.data
@tilemap.passages = $game_map.passages
@tilemap2 = Tilemap.new(@viewport12)
@tilemap2.bitmaps[0] = Cache.system("TileA1")
@tilemap2.bitmaps[1] = Cache.system("TileA2")
@tilemap2.bitmaps[2] = Cache.system("TileA3")
@tilemap2.bitmaps[3] = Cache.system("TileA4")
@tilemap2.bitmaps[4] = Cache.system("TileA5")
@tilemap2.bitmaps[5] = Cache.system("TileB")
@tilemap2.bitmaps[6] = Cache.system("TileC")
@tilemap2.bitmaps[7] = Cache.system("TileD")
@tilemap2.bitmaps[8] = Cache.system("TileE")
@tilemap2.map_data = $game_map.data
@tilemap2.passages = $game_map.passages
@tilemap3 = Tilemap.new(@viewport13)
@tilemap3.bitmaps[0] = Cache.system("TileA1")
@tilemap3.bitmaps[1] = Cache.system("TileA2")
@tilemap3.bitmaps[2] = Cache.system("TileA3")
@tilemap3.bitmaps[3] = Cache.system("TileA4")
@tilemap3.bitmaps[4] = Cache.system("TileA5")
@tilemap3.bitmaps[5] = Cache.system("TileB")
@tilemap3.bitmaps[6] = Cache.system("TileC")
@tilemap3.bitmaps[7] = Cache.system("TileD")
@tilemap3.bitmaps[8] = Cache.system("TileE")
@tilemap3.map_data = $game_map.data
@tilemap3.passages = $game_map.passages
@tilemap4 = Tilemap.new(@viewport14)
@tilemap4.bitmaps[0] = Cache.system("TileA1")
@tilemap4.bitmaps[1] = Cache.system("TileA2")
@tilemap4.bitmaps[2] = Cache.system("TileA3")
@tilemap4.bitmaps[3] = Cache.system("TileA4")
@tilemap4.bitmaps[4] = Cache.system("TileA5")
@tilemap4.bitmaps[5] = Cache.system("TileB")
@tilemap4.bitmaps[6] = Cache.system("TileC")
@tilemap4.bitmaps[7] = Cache.system("TileD")
@tilemap4.bitmaps[8] = Cache.system("TileE")
@tilemap4.map_data = $game_map.data
@tilemap4.passages = $game_map.passages
end
#--------------------------------------------------------------------------
# ● 生成远景
#--------------------------------------------------------------------------
def create_parallax
@parallax = Plane.new(@viewport1)
@parallax.z = -100
end
#--------------------------------------------------------------------------
# ● 生成角色活动块
#--------------------------------------------------------------------------
def create_characters
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
end
for vehicle in $game_map.vehicles
sprite = Sprite_Character.new(@viewport1, vehicle)
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
end
#--------------------------------------------------------------------------
# ● 生成飞船阴影活动块
#--------------------------------------------------------------------------
def create_shadow
@shadow_sprite = Sprite.new(@viewport1)
@shadow_sprite.bitmap = Cache.system("Shadow")
@shadow_sprite.ox = @shadow_sprite.bitmap.width / 2
@shadow_sprite.oy = @shadow_sprite.bitmap.height
@shadow_sprite.z = 180
end
#--------------------------------------------------------------------------
# ● 生成天候
#--------------------------------------------------------------------------
def create_weather
@weather = Spriteset_Weather.new(@viewport2)
end
#--------------------------------------------------------------------------
# ● 生成图片活动块
#--------------------------------------------------------------------------
def create_pictures
@picture_sprites = []
for i in 1..20
@picture_sprites.push(Sprite_Picture.new(@viewport2,
$game_map.screen.pictures[i]))
end
end
#--------------------------------------------------------------------------
# ● 生成计时器活动块
#--------------------------------------------------------------------------
def create_timer
@timer_sprite = Sprite_Timer.new(@viewport2)
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
def dispose
dispose_tilemap
dispose_parallax
dispose_characters
dispose_shadow
dispose_weather
dispose_pictures
dispose_timer
dispose_viewports
end
#--------------------------------------------------------------------------
# ● 释放地图元件
#--------------------------------------------------------------------------
def dispose_tilemap
@tilemap.dispose
@tilemap2.dispose
@tilemap3.dispose
@tilemap4.dispose
end
#--------------------------------------------------------------------------
# ● 释放远景
#--------------------------------------------------------------------------
def dispose_parallax
@parallax.dispose
end
#--------------------------------------------------------------------------
# ● 释放角色活动块
#--------------------------------------------------------------------------
def dispose_characters
for sprite in @character_sprites
sprite.dispose
end
end
#--------------------------------------------------------------------------
# ● 释放飞船阴影活动块
#--------------------------------------------------------------------------
def dispose_shadow
@shadow_sprite.dispose
end
#--------------------------------------------------------------------------
# ● 释放天候
#--------------------------------------------------------------------------
def dispose_weather
@weather.dispose
end
#--------------------------------------------------------------------------
# ● 释放图片活动块
#--------------------------------------------------------------------------
def dispose_pictures
for sprite in @picture_sprites
sprite.dispose
end
end
#--------------------------------------------------------------------------
# ● 释放计时器活动块
#--------------------------------------------------------------------------
def dispose_timer
@timer_sprite.dispose
end
#--------------------------------------------------------------------------
# ● 释放显示端口
#--------------------------------------------------------------------------
def dispose_viewports
@viewport1.dispose
@viewport12.dispose
@viewport13.dispose
@viewport14.dispose
@viewport2.dispose
@viewport3.dispose
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
update_tilemap
update_parallax
update_characters
update_shadow
update_weather
update_pictures
update_timer
update_viewports
end
#--------------------------------------------------------------------------
# ● 更新地图元件
#--------------------------------------------------------------------------
def update_tilemap
@tilemap.ox = $game_map.display_x / 8
@tilemap.oy = $game_map.display_y / 8
@tilemap.update
@tilemap2.ox = $game_map.display_x / 8 + 300
@tilemap2.oy = $game_map.display_y / 8
@tilemap2.update
@tilemap3.ox = $game_map.display_x / 8
@tilemap3.oy = $game_map.display_y / 8 + 300
@tilemap3.update
@tilemap4.ox = $game_map.display_x / 8 + 300
@tilemap4.oy = $game_map.display_y / 8 + 300
@tilemap4.update
end
#--------------------------------------------------------------------------
# ● 更新远景
#--------------------------------------------------------------------------
def update_parallax
if @parallax_name != $game_map.parallax_name
@parallax_name = $game_map.parallax_name
if @parallax.bitmap != nil
@parallax.bitmap.dispose
@parallax.bitmap = nil
end
if @parallax_name != ""
@parallax.bitmap = Cache.parallax(@parallax_name)
end
Graphics.frame_reset
end
@parallax.ox = $game_map.calc_parallax_x(@parallax.bitmap)
@parallax.oy = $game_map.calc_parallax_y(@parallax.bitmap)
end
#--------------------------------------------------------------------------
# ● 更新角色活动块
#--------------------------------------------------------------------------
def update_characters
for sprite in @character_sprites
sprite.update
end
end
#--------------------------------------------------------------------------
# ● 更新飞船阴影活动块
#--------------------------------------------------------------------------
def update_shadow
airship = $game_map.airship
@shadow_sprite.x = airship.screen_x
@shadow_sprite.y = airship.screen_y + airship.altitude
@shadow_sprite.opacity = airship.altitude * 8
@shadow_sprite.update
end
#--------------------------------------------------------------------------
# ● 更新天候
#--------------------------------------------------------------------------
def update_weather
@weather.type = $game_map.screen.weather_type
@weather.max = $game_map.screen.weather_max
@weather.ox = $game_map.display_x / 8
@weather.oy = $game_map.display_y / 8
@weather.update
end
#--------------------------------------------------------------------------
# ● 更新图片活动块
#--------------------------------------------------------------------------
def update_pictures
for sprite in @picture_sprites
sprite.update
end
end
#--------------------------------------------------------------------------
# ● 更新计时器活动块
#--------------------------------------------------------------------------
def update_timer
@timer_sprite.update
end
#--------------------------------------------------------------------------
# ● 更新显示端口
#--------------------------------------------------------------------------
def update_viewports
@viewport1.tone = $game_map.screen.tone
@viewport1.ox = $game_map.screen.shake
@viewport12.tone = $game_map.screen.tone
@viewport12.ox = $game_map.screen.shake
@viewport13.tone = $game_map.screen.tone
@viewport13.ox = $game_map.screen.shake
@viewport14.tone = $game_map.screen.tone
@viewport14.ox = $game_map.screen.shake
@viewport2.color = $game_map.screen.flash_color
@viewport3.color.set(0, 0, 0, 255 - $game_map.screen.brightness)
@viewport1.update
@viewport12.update
@viewport13.update
@viewport14.update
@viewport2.update
@viewport3.update
end
end
复制代码
像这种问题直接在群里说就行了,反而在提问区里比较慢���
作者:
1587937102
时间:
2012-7-11 09:17
=begin
●スクリプト素材ユーザーの方へ
*インターネット上の素材配布サイト等で入手したスクリプトを使用する際は、
この位置に新しいセクションを作成し、そこに貼り付けてください。
(左のリストボックスのポップアップメニューから「挿入」を選択します)
*その他、素材製作者から特別な指示がある場合は、それに従ってください。
*原則として『RPGツクールXP』用のスクリプトとは互換性がありませんので、
『RPGツクールVX』向けの素材であることを確認してご使用ください。
●スクリプト素材製作者の方へ
*不特定多数のユーザーに向けて配布するスクリプトを開発される場合は、
なるべく再定義やエイリアスなどを使用し、この位置に貼り付けるだけで
動作するように調整されることをお勧めします。
=end
#==============================================================================
# □ XP画面サイズ
#------------------------------------------------------------------------------
# Version : 7_20110401
# by サリサ・タイクーン 修正案 : 八百雨様
# http://www.tycoon812.com/rgss/
#==============================================================================
#==============================================================================
# □ カスタマイズポイント
#==============================================================================
module RGSSLAB
module XP_Display_Size
#------------------------------------------------------------------------
# ● 画面引き伸ばし
#------------------------------------------------------------------------
TITLE = true
GAMEOVER = true
end
end
#------------------------------------------------------------------------------
#==============================================================================
# ○ フラグセット(falseにすると、一時的に無効化させます)
#==============================================================================
$rrs = {} if $rrs == nil
$rrs["XP画面サイズ"] = true
if $rrs["XP画面サイズ"]
#==============================================================================
# ○ 導入エラー判定
#==============================================================================
if defined? XRXSV1_WindowResizeIntruding
p "【RGSS研究所:XP画面サイズ】",
"オートリサイザー/ワイドとは、同時併用できません。"
exit
end
if defined?($VX_640x480)
p "【RGSS研究所:XP画面サイズ】",
"RPGツクールVX 解像度640x480対応プロジェクトでは、XP画面サイズはご利用できません。"
exit
end
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● スクロールのセットアップ(alias)
#--------------------------------------------------------------------------
alias rgsslab_023_setup_scroll setup_scroll
def setup_scroll
rgsslab_023_setup_scroll
@margin_x = (width - 20) * 256 / 2
@margin_y = (height - 15) * 256 / 2
end
#--------------------------------------------------------------------------
# ● 遠景表示 X 座標の計算(再定義)
# bitmap : 遠景ビットマップ
#--------------------------------------------------------------------------
def calc_parallax_x(bitmap)
if bitmap == nil
return 0
elsif @parallax_loop_x
return @parallax_x / 16
elsif loop_horizontal?
return 0
else
w1 = bitmap.width - 640
w2 = @map.width * 32 - 640
if w1 <= 0 or w2 <= 0
return 0
else
return @parallax_x * w1 / w2 / 8
end
end
end
#--------------------------------------------------------------------------
# ● 遠景表示 Y 座標の計算(再定義)
# bitmap : 遠景ビットマップ
#--------------------------------------------------------------------------
def calc_parallax_y(bitmap)
if bitmap == nil
return 0
elsif @parallax_loop_y
return @parallax_y / 16
elsif loop_vertical?
return 0
else
h1 = bitmap.height - 480
h2 = @map.height * 32 - 480
if h1 <= 0 or h2 <= 0
return 0
else
return @parallax_y * h1 / h2 / 8
end
end
end
#--------------------------------------------------------------------------
# ● 下にスクロール(再定義)
# distance : スクロールする距離
#--------------------------------------------------------------------------
def scroll_down(distance)
if loop_vertical?
@display_y += distance
@display_y %= @map.height * 256
@parallax_y += distance
else
last_y = @display_y
@display_y = [@display_y + distance, (height - 15) * 256].min
@parallax_y += @display_y - last_y
end
end
#--------------------------------------------------------------------------
# ● 右にスクロール(再定義)
# distance : スクロールする距離
#--------------------------------------------------------------------------
def scroll_right(distance)
if loop_horizontal?
@display_x += distance
@display_x %= @map.width * 256
@parallax_x += distance
else
last_x = @display_x
@display_x = [@display_x + distance, (width - 20) * 256].min
@parallax_x += @display_x - last_x
end
end
end
#==============================================================================
# ■ Game_Player
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● 定数
#--------------------------------------------------------------------------
CENTER_X = (640 / 2 - 16) * 8
CENTER_Y = (480 / 2 - 16) * 8
#--------------------------------------------------------------------------
# ● 画面中央に来るようにマップの表示位置を設定(再定義)
# x : X 座標
# y : Y 座標
#--------------------------------------------------------------------------
def center(x, y)
display_x = x * 256 - CENTER_X # 座標を計算
unless $game_map.loop_horizontal? # 横にループしない?
max_x = ($game_map.width - 20) * 256 # 最大値を計算
display_x = [0, [display_x, max_x].min].max # 座標を修正
end
display_y = y * 256 - CENTER_Y # 座標を計算
unless $game_map.loop_vertical? # 縦にループしない?
max_y = ($game_map.height - 17) * 256 # 最大値を計算
display_y = [0, [display_y, max_y].min].max # 座標を修正
end
$game_map.set_display_pos(display_x, display_y) # 表示位置変更
end
end
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# ● ビューポートの作成(再定義)
#--------------------------------------------------------------------------
def create_viewports
@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport2.z = 50
@viewport3.z = 100
end
end
#==============================================================================
# ■ Window_Message
#==============================================================================
class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化(再定義)
#--------------------------------------------------------------------------
def initialize
super(48, 360, 544, 128)
self.z = 100
self.active = false
self.index = -1
self.openness = 0
@opening = false # ウィンドウのオープン中フラグ
@closing = false # ウィンドウのクローズ中フラグ
@text = nil # 表示すべき残りの文章
@contents_x = 0 # 次の文字を描画する X 座標
@contents_y = 0 # 次の文字を描画する Y 座標
@line_count = 0 # 現在までに描画した行数
@wait_count = 0 # ウェイトカウント
@background = 0 # 背景タイプ
@position = 2 # 表示位置
@show_fast = false # 早送りフラグ
@line_show_fast = false # 行単位早送りフラグ
@pause_skip = false # 入力待ち省略フラグ
create_gold_window
create_number_input_window
create_back_sprite
end
#--------------------------------------------------------------------------
# ● 所持金ウィンドウの作成(再定義)
#--------------------------------------------------------------------------
def create_gold_window
@gold_window = Window_Gold.new(384 + 48, 0 + 32)
@gold_window.openness = 0
end
#--------------------------------------------------------------------------
# ● ウィンドウの背景と位置の設定(再定義)
#--------------------------------------------------------------------------
def reset_window
@background = $game_message.background
@position = $game_message.position
if @background == 0 # 通常ウィンドウ
self.opacity = 255
else # 背景を暗くする、透明にする
self.opacity = 0
end
case @position
when 0 # 上
self.y = 0 + 32
@gold_window.y = 360 + 32
when 1 # 中
self.y = 144 + 32
@gold_window.y = 0 + 32
when 2 # 下
self.y = 288 + 32
@gold_window.y = 0 + 32
end
end
end
#==============================================================================
# ■ Scene_Title
#==============================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
if defined? XRXSV1_WindowResizeIntruding
p "【RGSS研究所:XP画面サイズ】",
"オートリサイザー/ワイドとは、同時併用できません。"
exit
end
if defined?($VX_640x480)
p "【RGSS研究所:XP画面サイズ】",
"RPGツクールVX 解像度640x480対応プロジェクトでは、XP画面サイズはご利用できません。"
exit
end
end
#==========================================================================
# ■ TITLEがtrueのみ実行
#==========================================================================
if RGSSLAB::XP_Display_Size::TITLE
#------------------------------------------------------------------------
# ● タイトルグラフィックの作成(再定義)
#------------------------------------------------------------------------
def create_title_graphic
title_bg = Cache.system("Title")
resize = Bitmap.new(640, 480)
resize.stretch_blt(resize.rect, title_bg, title_bg.rect)
@sprite = Sprite.new
@sprite.bitmap = resize
end
end
#--------------------------------------------------------------------------
# ● コマンドウィンドウの作成(再定義)
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::new_game
s2 = Vocab::continue
s3 = Vocab::shutdown
@command_window = Window_Command.new(172, [s1, s2, s3])
@command_window.x = (640 - @command_window.width) / 2
@command_window.y = 288 + 32
if @continue_enabled # コンティニューが有効な場合
@command_window.index = 1 # カーソルを合わせる
else # 無効な場合
@command_window.draw_item(1, false) # コマンドを半透明表示にする
end
@command_window.openness = 0
@command_window.open
end
end
#==============================================================================
# ■ GAMEOVERがtrueのみ実行
#==============================================================================
if RGSSLAB::XP_Display_Size::GAMEOVER
#============================================================================
# ■ Scene_Gameover
#============================================================================
class Scene_Gameover < Scene_Base
#------------------------------------------------------------------------
# ● ゲームオーバーグラフィックの作成(再定義)
#------------------------------------------------------------------------
def create_gameover_graphic
gameover_bg = Cache.system("GameOver")
resize = Bitmap.new(640, 480)
resize.stretch_blt(resize.rect, gameover_bg, gameover_bg.rect)
@sprite = Sprite.new
@sprite.bitmap = resize
end
end
end
#==============================================================================
# ■ Scene_Menu
#==============================================================================
class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理(再定義)
#--------------------------------------------------------------------------
def start
@gold_window = Window_Gold.new(48, 392)
@status_window = Window_MenuStatus.new(208, 32)
create_menu_background
create_command_window
if $rrs["徒歩数表示"]
# 歩数ウィンドウを作成
@steps_window = Window_Steps.new
end
end
#--------------------------------------------------------------------------
# ● コマンドウィンドウの作成(再定義)
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = Vocab::save
s6 = Vocab::game_end
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.x = 48
@command_window.y = 32
@command_window.index = @menu_index
if $game_party.members.size == 0 # パーティ人数が 0 人の場合
@command_window.draw_item(0, false) # アイテムを無効化
@command_window.draw_item(1, false) # スキルを無効化
@command_window.draw_item(2, false) # 装備を無効化
@command_window.draw_item(3, false) # ステータスを無効化
end
if $game_system.save_disabled # セーブ禁止の場合
@command_window.draw_item(4, false) # セーブを無効化
end
end
end
#==============================================================================
# ■ Scene_Item
#==============================================================================
class Scene_Item < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理(再定義)
#--------------------------------------------------------------------------
def start
super
create_menu_background
@viewport = Viewport.new(0, 0, 640, 480)
@help_window = Window_Help.new
@help_window.viewport = @viewport
@help_window.x = 48
@help_window.y = 32
@item_window = Window_Item.new(48, 88, 544, 360)
@item_window.viewport = @viewport
@item_window.help_window = @help_window
@item_window.active = false
@target_window = Window_MenuStatus.new(0, 32)
hide_target_window
end
#--------------------------------------------------------------------------
# ● ターゲットウィンドウの表示(再定義)
#--------------------------------------------------------------------------
def show_target_window(right)
@item_window.active = false
width_remain = 592 - @target_window.width
@target_window.x = right ? width_remain : 0
@target_window.visible = true
@target_window.active = true
if right
@viewport.rect.set(0, 0, width_remain, 480)
@viewport.ox = 0
else
@target_window.x = 48
@viewport.rect.set(@target_window.width, 0, width_remain, 480)
@viewport.ox = @target_window.width
end
end
#--------------------------------------------------------------------------
# ● ターゲットウィンドウの非表示(再定義)
#--------------------------------------------------------------------------
def hide_target_window
@item_window.active = true
@target_window.visible = false
@target_window.active = false
@viewport.rect.set(0, 0, 640, 480)
@viewport.ox = 0
end
end
#==============================================================================
# ■ Scene_Skill
#==============================================================================
class Scene_Skill < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理(再定義)
#--------------------------------------------------------------------------
def start
super
create_menu_background
@actor = $game_party.members[@actor_index]
@viewport = Viewport.new(0, 0, 640, 480)
@help_window = Window_Help.new
@help_window.viewport = @viewport
@help_window.x = 48
@help_window.y = 32
@status_window = Window_SkillStatus.new(48, 88, @actor)
@status_window.viewport = @viewport
@skill_window = Window_Skill.new(48, 144, 544, 304, @actor)
@skill_window.viewport = @viewport
@skill_window.help_window = @help_window
@target_window = Window_MenuStatus.new(0, 32)
hide_target_window
end
#--------------------------------------------------------------------------
# ● ターゲットウィンドウの表示(再定義)
#--------------------------------------------------------------------------
def show_target_window(right)
@skill_window.active = false
width_remain = 592 - @target_window.width
@target_window.x = right ? width_remain : 0
@target_window.visible = true
@target_window.active = true
if right
@viewport.rect.set(0, 0, width_remain, 480)
@viewport.ox = 0
else
@target_window.x = 48
@viewport.rect.set(@target_window.width, 0, width_remain, 480)
@viewport.ox = @target_window.width
end
end
#--------------------------------------------------------------------------
# ● ターゲットウィンドウの非表示(再定義)
#--------------------------------------------------------------------------
def hide_target_window
@skill_window.active = true
@target_window.visible = false
@target_window.active = false
@viewport.rect.set(0, 0, 640, 480)
@viewport.ox = 0
end
end
#==============================================================================
# ■ Scene_Equip
#==============================================================================
class Scene_Equip < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理(再定義)
#--------------------------------------------------------------------------
def start
super
create_menu_background
@actor = $game_party.members[@actor_index]
@help_window = Window_Help.new
@help_window.x =+ 48
@help_window.y =+ 32
create_item_windows
@equip_window = Window_Equip.new(256, 88, @actor)
@equip_window.help_window = @help_window
@equip_window.index = @equip_index
@status_window = Window_EquipStatus.new(48, 88, @actor)
end
#--------------------------------------------------------------------------
# ● アイテムウィンドウの作成(再定義)
#--------------------------------------------------------------------------
def create_item_windows
@item_windows = []
for i in 0...EQUIP_TYPE_MAX
@item_windows[i] = Window_EquipItem.new(48, 240, 544, 208, @actor, i)
@item_windows[i].help_window = @help_window
@item_windows[i].visible = (@equip_index == i)
@item_windows[i].y = 240
@item_windows[i].height = 208
@item_windows[i].active = false
@item_windows[i].index = -1
end
end
end
#==============================================================================
# ■ Scene_Status
#==============================================================================
class Scene_Status < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理(再定義)
#--------------------------------------------------------------------------
def start
super
create_menu_background
@actor = $game_party.members[@actor_index]
@status_window = Window_Status.new(@actor)
@status_window.x = 48
@status_window.y = 32
end
end
#==============================================================================
# ■ Scene_File
#==============================================================================
class Scene_File < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理(再定義)
#--------------------------------------------------------------------------
def start
super
create_menu_background
@help_window = Window_Help.new
@help_window.x = 48
@help_window.y = 32
create_savefile_windows
if @saving
@index = $game_temp.last_file_index
@help_window.set_text(Vocab::SaveMessage)
else
@index = self.latest_file_index
@help_window.set_text(Vocab::LoadMessage)
end
@savefile_windows[@index].selected = true
end
#--------------------------------------------------------------------------
# ● セーブファイルウィンドウの作成(再定義)
#--------------------------------------------------------------------------
def create_savefile_windows
@savefile_windows = []
for i in 0..3
@savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
@savefile_windows[i].x = 48
@savefile_windows[i].y = 88 + 90 * i
end
@item_max = 4
end
end
#==============================================================================
# ■ Scene_End
#==============================================================================
class Scene_End < Scene_Base
#--------------------------------------------------------------------------
# ● コマンドウィンドウの作成(再定義)
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::to_title
s2 = Vocab::shutdown
s3 = Vocab::cancel
@command_window = Window_Command.new(172, [s1, s2, s3])
@command_window.x = (640 - @command_window.width) / 2
@command_window.y = (480 - @command_window.height) / 2
@command_window.openness = 0
end
end
#==============================================================================
# ■ Scene_Shop
#==============================================================================
class Scene_Shop < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理(再定義)
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
@help_window = Window_Help.new
@help_window.x =+ 48
@help_window.y =+ 32
@gold_window = Window_Gold.new(432, 88)
@dummy_window = Window_Base.new(0 + 48, 144, 544, 304)
@buy_window = Window_ShopBuy.new(0 + 48, 144)
@buy_window.active = false
@buy_window.visible = false
@buy_window.help_window = @help_window
@sell_window = Window_ShopSell.new(48, 144, 544, 304)
@sell_window.active = false
@sell_window.visible = false
@sell_window.help_window = @help_window
@number_window = Window_ShopNumber.new(48, 144)
@number_window.active = false
@number_window.visible = false
@status_window = Window_ShopStatus.new(352, 144)
@status_window.visible = false
end
#--------------------------------------------------------------------------
# ● コマンドウィンドウの作成(再定義)
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::ShopBuy
s2 = Vocab::ShopSell
s3 = Vocab::ShopCancel
@command_window = Window_Command.new(384, [s1, s2, s3], 3)
@command_window.x = 48
@command_window.y = 88
if $game_temp.shop_purchase_only
@command_window.draw_item(1, false)
end
end
end
#==============================================================================
# ■ Scene_Debug
#==============================================================================
class Scene_Debug < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理(再定義)
#--------------------------------------------------------------------------
def start
super
create_menu_background
@left_window = Window_DebugLeft.new(48, 32)
@right_window = Window_DebugRight.new(224, 32)
@help_window = Window_Base.new(224, 304, 368, 144)
@left_window.top_row = $game_temp.debug_top_row
@left_window.index = $game_temp.debug_index
@right_window.mode = @left_window.mode
@right_window.top_id = @left_window.top_id
end
end
#==============================================================================
# ■ Game_Troop
#==============================================================================
class Game_Troop < Game_Unit
#--------------------------------------------------------------------------
# ● セットアップ(再定義)
#--------------------------------------------------------------------------
def setup(troop_id)
clear
@troop_id = troop_id
@enemies = []
for member in troop.members
next if $data_enemies[member.enemy_id] == nil
enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
enemy.hidden = member.hidden
enemy.immortal = member.immortal
enemy.screen_x = member.x + 48
enemy.screen_y = member.y + 32
@enemies.push(enemy)
end
make_unique_names
end
end
#==============================================================================
# ■ Spriteset_Battle
#==============================================================================
class Spriteset_Battle
#--------------------------------------------------------------------------
# ● ビューポートの作成(再定義)
#--------------------------------------------------------------------------
def create_viewports
@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport2.z = 50
@viewport3.z = 100
end
#--------------------------------------------------------------------------
# ● バトルバックスプライトの作成(再定義)
#--------------------------------------------------------------------------
def create_battleback
source = $game_temp.background_bitmap
bitmap = Bitmap.new(640 + 96, 480 + 64)
bitmap.stretch_blt(bitmap.rect, source, source.rect)
bitmap.radial_blur(90, 12)
@battleback_sprite = Sprite.new(@viewport1)
@battleback_sprite.bitmap = bitmap
@battleback_sprite.ox = 320
@battleback_sprite.oy = 240
@battleback_sprite.x = 272
@battleback_sprite.y = 176
@battleback_sprite.wave_amp = 8
@battleback_sprite.wave_length = 240
@battleback_sprite.wave_speed = 120
end
#--------------------------------------------------------------------------
# ● バトルフロアスプライトの作成(再定義)
#--------------------------------------------------------------------------
def create_battlefloor
@battlefloor_sprite = Sprite.new(@viewport1)
@battlefloor_sprite.bitmap = Cache.system("BattleFloor")
@battlefloor_sprite.x = 48
@battlefloor_sprite.y = 192 + 32
@battlefloor_sprite.z = 1
@battlefloor_sprite.opacity = 128
end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● 情報表示ビューポートの作成(再定義)
#--------------------------------------------------------------------------
def create_info_viewport
@info_viewport = Viewport.new(48, 320, 544, 128)
@info_viewport.z = 100
@status_window = Window_BattleStatus.new
@party_command_window = Window_PartyCommand.new
@actor_command_window = Window_ActorCommand.new
@status_window.viewport = @info_viewport
@party_command_window.viewport = @info_viewport
@actor_command_window.viewport = @info_viewport
@status_window.x = 128
@actor_command_window.x = 544
@info_viewport.visible = false
end
#--------------------------------------------------------------------------
# ● 対象敵キャラ選択の開始(再定義)
#--------------------------------------------------------------------------
def start_target_enemy_selection
@target_enemy_window = Window_TargetEnemy.new
@target_enemy_window.y = @info_viewport.rect.y
@info_viewport.rect.x += @target_enemy_window.width
@info_viewport.ox += @target_enemy_window.width
@actor_command_window.active = false
@target_enemy_window.x += 48
@target_enemy_window.y += 0
end
#--------------------------------------------------------------------------
# ● 対象アクター対象選択の開始(alias)
#--------------------------------------------------------------------------
def start_target_actor_selection
@target_actor_window = Window_BattleStatus.new
@target_actor_window.index = 0
@target_actor_window.active = true
@target_actor_window.y = @info_viewport.rect.y
@info_viewport.rect.x += @target_actor_window.width
@info_viewport.ox += @target_actor_window.width
@actor_command_window.active = false
@target_actor_window.x =+ 48
@target_actor_window.y =+ 0 + @info_viewport.rect.y
end
#--------------------------------------------------------------------------
# ● スキル選択の開始(再定義)
#--------------------------------------------------------------------------
def start_skill_selection
@help_window = Window_Help.new
@skill_window = Window_Skill.new(48, 88, 544, 232, @active_battler)
@skill_window.help_window = @help_window
@skill_window.help_window.x =+ 48
@skill_window.help_window.y =+ 32
@actor_command_window.active = false
end
#--------------------------------------------------------------------------
# ● アイテム選択の開始(再定義)
#--------------------------------------------------------------------------
def start_item_selection
@help_window = Window_Help.new
@item_window = Window_Item.new(48, 88, 544, 232)
@item_window.help_window = @help_window
@item_window.help_window.x =+ 48
@item_window.help_window.y =+ 32
@actor_command_window.active = false
end
end
#==============================================================================
# □ Object
#==============================================================================
Graphics.resize_screen(640, 480) # XPと同じ大きさにする
end
复制代码
把这个插入到▼ 外来RGSS插件脚本下面就可以了
作者:
冰舞蝶恋
时间:
2012-7-11 10:49
这。。这。。这不科学啊!!我居然自己改好了那什么。。原来是dll不支持的原因……下载了个完全解放居然就可以了汗= =
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1