Project1

标题: 游戏拓宽窗口和XAS的冲突 [打印本页]

作者: daysp2    时间: 2020-3-16 11:37
标题: 游戏拓宽窗口和XAS的冲突
准确来说并不是冲突
是这样的,我用了拓宽游戏窗口的脚本(640x480)和XAS系统

在默认系统中,如果事件超出屏幕是不会进行更新的
我已经在Game_Event类中,第88行的 near_the_screen? 改成了 near_the_screen?(20, 15)
101行也改成了def near_the_screen?(dx = 20, dy = 15)
更新范围已经够大了
不用XAS时,事件更新范围还是正常的

但是用了XAS后,已经在屏幕范围内的一些事件,居然都更新不及时
XAS的注释没有全汉化,我不知道在哪里改,求大神帮助
作者: daysp2    时间: 2020-3-16 11:41
用的版本是XAS 0.6 空猫版汉化 1.2
区子里有,然后拓宽窗口的脚本是这个:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2. # ■ WindMesser 解像度640x480対応プロジェクト(VX Ace版) ver1.00
  3. #--------------------------------------------------------------------------
  4. #   作者:尘风
  5. # URL:http://windmesser.tm.land.to/index.html
  6. # MAIL:[email protected]
  7. #------------------------------------------------------------------------------------------------------------------------------------------------
  8. #概要:将RPGツクールVX Ace的分辨率变更为640×480。
  9. #方法:标题、游戏结束、战斗时的背景图像自动放大。
  10. #战斗背景是672 x512,
  11. #除此之外,扩大到640×480。
  12. #另外,战斗时敌人的初始位置会根据解析度进行修正。
  13. #关于窗口表示也加入了若干的布局调整。
  14. #
  15. #使用条件:各素材的推荐图像尺寸如下。
  16. #※必须使用过渡素材。
  17. #
  18. #・标题(Graphics/System/Titles1, Graphics/System/Titles2)
  19. # 640x480
  20. #・游戏结束(Graphics/System/GameOver.png)
  21. # 640x480
  22. #・战斗背景(Graphics/BattleBacks1, Graphics/BattleBacks2)
  23. # 672 x512
  24. #・变速箱(Graphics/System/BattleStart.png)
  25. # 640x480
  26. #
  27. #使用方法:在脚本编辑器的“▼素材”以下插入
  28. #------------------------------------------------------------------------------------------------------------------------------------------------
  29. # ver1.00:窗口显示周围的布局调整
  30. #扩展HP规格和项目名称表示领域,
  31. #尽量不让窗口显得空荡荡的。
  32. # # ver0.91:将战斗背景扩大成大一圈
  33. #为了不扩大,将图像尺寸改为676x512。
  34. # ver0.90:仅放大调整背景图像的简单版本
  35. #--------------------------------------------------------------------------
  36.  
  37. #==============================================================================
  38. # ▼ 内部仕様の定数
  39. #==============================================================================
  40.  
  41. # 解像度640x480プロジェクト使用フラグ
  42. # ※他スクリプト素材配布者様向けの判断用フラグ変数です
  43. #   (Graphics.width, Graphics.height で判断する事もできます)
  44. $VXA_640x480 = true
  45.  
  46. # VX Ace デフォルト解像度
  47. $VXA_O_WIDTH = 544
  48. $VXA_O_HEIGHT = 416
  49.  
  50. # 解像度を640x480に変更
  51. Graphics.resize_screen(640, 480)
  52.  
  53. #==============================================================================
  54. # ▼ 追加メソッド
  55. #==============================================================================
  56.  
  57. class Sprite
  58.  
  59.   #--------------------------------------------------------------------------
  60.   # ● スプライト拡大メソッド
  61.   #    使用素材幅がデフォルト解像度に準拠していれば拡大
  62.   #--------------------------------------------------------------------------
  63.   def vxa_640x480_zoom(add_w = 0, add_h = 0)
  64.  
  65.     self.zoom_x = (Graphics.width + add_w) * 1.0 / width
  66.     self.zoom_y = (Graphics.height + add_h) * 1.0 / height
  67.  
  68.   end
  69.  
  70. end
  71.  
  72. #==============================================================================
  73. # ▼ プリセットスクリプト再定義1:画像拡大など
  74. #==============================================================================
  75.  
  76. #==============================================================================
  77. # ■ Scene_Title
  78. #------------------------------------------------------------------------------
  79. #  タイトル画面の処理を行うクラスです。
  80. #==============================================================================
  81.  
  82. class Scene_Title < Scene_Base
  83.  
  84.   if !method_defined?(:create_background_vga)
  85.     alias create_background_vga create_background
  86.   end
  87.  
  88.   #--------------------------------------------------------------------------
  89.   # ● 背景の作成
  90.   #--------------------------------------------------------------------------
  91.   def create_background
  92.     create_background_vga
  93.  
  94.     # タイトル画像の拡大
  95.     @sprite1.vxa_640x480_zoom
  96.     @sprite2.vxa_640x480_zoom
  97.  
  98.   end
  99.  
  100. end
  101.  
  102. #==============================================================================
  103. # ■ Scene_Gameover
  104. #------------------------------------------------------------------------------
  105. #  ゲームオーバー画面の処理を行うクラスです。
  106. #==============================================================================
  107.  
  108. class Scene_Gameover < Scene_Base
  109.  
  110.   if !method_defined?(:create_background_vga)
  111.     alias create_background_vga create_background
  112.   end
  113.  
  114.   #--------------------------------------------------------------------------
  115.   # ● 背景の作成
  116.   #--------------------------------------------------------------------------
  117.   def create_background
  118.     create_background_vga
  119.  
  120.     # ゲームオーバー画像の拡大
  121.     @sprite.vxa_640x480_zoom
  122.  
  123.   end
  124.  
  125. end
  126.  
  127. #==============================================================================
  128. # ■ Spriteset_Battle
  129. #------------------------------------------------------------------------------
  130. #  バトル画面のスプライトをまとめたクラスです。このクラスは Scene_Battle クラ
  131. # スの内部で使用されます。
  132. #==============================================================================
  133.  
  134. class Spriteset_Battle
  135.  
  136.   if !method_defined?(:create_battleback1_vga)
  137.     alias create_battleback1_vga create_battleback1
  138.     alias create_battleback2_vga create_battleback2
  139.     alias create_enemies_vga create_enemies
  140.   end
  141.  
  142.   #--------------------------------------------------------------------------
  143.   # ● 戦闘背景(床)スプライトの作成
  144.   #--------------------------------------------------------------------------
  145.   def create_battleback1
  146.     create_battleback1_vga
  147.  
  148.     # 戦闘背景の拡大
  149.     @back1_sprite.vxa_640x480_zoom(36, 32)
  150.  
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● 戦闘背景(壁)スプライトの作成
  154.   #--------------------------------------------------------------------------
  155.   def create_battleback2
  156.     create_battleback2_vga
  157.  
  158.     # 戦闘背景の拡大
  159.     @back2_sprite.vxa_640x480_zoom(36, 32)
  160.  
  161.   end
  162.  
  163. end
  164.  
  165. #==============================================================================
  166. # ■ Game_Troop
  167. #------------------------------------------------------------------------------
  168. #  敵グループおよび戦闘に関するデータを扱うクラスです。バトルイベントの処理も
  169. # 行います。このクラスのインスタンスは $game_troop で参照されます。
  170. #==============================================================================
  171.  
  172. class Game_Troop < Game_Unit
  173.  
  174.   if !method_defined?(:setup_vga)
  175.     alias setup_vga setup
  176.   end
  177.  
  178.   #--------------------------------------------------------------------------
  179.   # ● セットアップ
  180.   #--------------------------------------------------------------------------
  181.   def setup(troop_id)
  182.     setup_vga(troop_id)
  183.  
  184.     # トループ座標の修正
  185.     @enemies.each do |enemy|
  186.       enemy.screen_x = (enemy.screen_x * (Graphics.width * 1.0 / $VXA_O_WIDTH)).to_i
  187.       enemy.screen_y = (enemy.screen_y * (Graphics.height * 1.0 / $VXA_O_HEIGHT)).to_i
  188.     end
  189.  
  190.   end
  191.  
  192. end
  193.  
  194. #==============================================================================
  195. # ▼ プリセットスクリプト再定義2:ウィンドウレイアウト調整など
  196. #==============================================================================
  197.  
  198. #==============================================================================
  199. # ■ Window_Base
  200. #------------------------------------------------------------------------------
  201. #  ゲーム中の全てのウィンドウのスーパークラスです。
  202. #==============================================================================
  203.  
  204. class Window_Base < Window
  205.   if !method_defined?(:draw_actor_name_vga)
  206.     alias draw_actor_name_vga draw_actor_name
  207.     alias draw_actor_class_vga draw_actor_class
  208.     alias draw_actor_hp_vga draw_actor_hp
  209.     alias draw_actor_mp_vga draw_actor_mp
  210.     alias draw_actor_tp_vga draw_actor_tp
  211.     alias draw_item_name_vga draw_item_name
  212.   end
  213.  
  214.   #--------------------------------------------------------------------------
  215.   # ● 名前の描画
  216.   #--------------------------------------------------------------------------
  217.   def draw_actor_name(actor, x, y, width = 144)
  218.     draw_actor_name_vga(actor, x, y, width)
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● 職業の描画
  222.   #--------------------------------------------------------------------------
  223.   def draw_actor_class(actor, x, y, width = 144)
  224.     draw_actor_class_vga(actor, x, y, width)
  225.   end
  226.   #--------------------------------------------------------------------------
  227.   # ● HP の描画
  228.   #--------------------------------------------------------------------------
  229.   def draw_actor_hp(actor, x, y, width = 188)
  230.     draw_actor_hp_vga(actor, x, y, width)
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● MP の描画
  234.   #--------------------------------------------------------------------------
  235.   def draw_actor_mp(actor, x, y, width = 188)
  236.     draw_actor_mp_vga(actor, x, y, width)
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● TP の描画
  240.   #--------------------------------------------------------------------------
  241.   def draw_actor_tp(actor, x, y, width = 188)
  242.     draw_actor_tp_vga(actor, x, y, width)
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● シンプルなステータスの描画
  246.   #--------------------------------------------------------------------------
  247.   def draw_actor_simple_status(actor, x, y)
  248.     draw_actor_name(actor, x, y)
  249.     draw_actor_level(actor, x, y + line_height * 1)
  250.     draw_actor_icons(actor, x, y + line_height * 2)
  251.     draw_actor_class(actor, x + 152, y)
  252.     draw_actor_hp(actor, x + 152, y + line_height * 1)
  253.     draw_actor_mp(actor, x + 152, y + line_height * 2)
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● 能力値の描画
  257.   #--------------------------------------------------------------------------
  258.   def draw_actor_param(actor, x, y, param_id)
  259.     change_color(system_color)
  260.     draw_text(x, y, 152, line_height, Vocab::param(param_id))
  261.     change_color(normal_color)
  262.     draw_text(x + 152, y, 36, line_height, actor.param(param_id), 2)
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ● アイテム名の描画
  266.   #     enabled : 有効フラグ。false のとき半透明で描画
  267.   #--------------------------------------------------------------------------
  268.   def draw_item_name(item, x, y, enabled = true, width = 236)
  269.     draw_item_name_vga(item, x, y, enabled, width)
  270.   end
  271.  
  272. end
  273.  
  274. #==============================================================================
  275. # ■ Window_Status
  276. #------------------------------------------------------------------------------
  277. #  ステータス画面で表示する、フル仕様のステータスウィンドウです。
  278. #==============================================================================
  279.  
  280. class Window_Status < Window_Selectable
  281.  
  282.   #--------------------------------------------------------------------------
  283.   # ● ブロック 1 の描画
  284.   #--------------------------------------------------------------------------
  285.   def draw_block1(y)
  286.     draw_actor_name(@actor, 4, y)
  287.     draw_actor_class(@actor, 128, y)
  288.     draw_actor_nickname(@actor, 336, y)
  289.   end
  290.   #--------------------------------------------------------------------------
  291.   # ● ブロック 2 の描画
  292.   #--------------------------------------------------------------------------
  293.   def draw_block2(y)
  294.     draw_actor_face(@actor, 8, y)
  295.     draw_basic_info(136, y)
  296.     draw_exp_info(336, y)
  297.   end
  298.   #--------------------------------------------------------------------------
  299.   # ● ブロック 3 の描画
  300.   #--------------------------------------------------------------------------
  301.   def draw_block3(y)
  302.     draw_parameters(32, y)
  303.     draw_equipments(336, y)
  304.   end
  305.   #--------------------------------------------------------------------------
  306.   # ● 経験値情報の描画
  307.   #--------------------------------------------------------------------------
  308.   def draw_exp_info(x, y)
  309.     s1 = @actor.max_level? ? "-------" : @actor.exp
  310.     s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
  311.     s_next = sprintf(Vocab::ExpNext, Vocab::level)
  312.     change_color(system_color)
  313.     draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
  314.     draw_text(x, y + line_height * 2, 180, line_height, s_next)
  315.     change_color(normal_color)
  316.     draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
  317.     draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
  318.   end
  319.  
  320. end
  321.  
  322. #==============================================================================
  323. # ■ Window_BattleStatus
  324. #------------------------------------------------------------------------------
  325. #  バトル画面で、パーティメンバーのステータスを表示するウィンドウです。
  326. #==============================================================================
  327.  
  328. class Window_BattleStatus < Window_Selectable
  329.   #--------------------------------------------------------------------------
  330.   # ● ゲージエリアの幅を取得
  331.   #--------------------------------------------------------------------------
  332.   def gauge_area_width
  333.     return 284
  334.   end
  335.   #--------------------------------------------------------------------------
  336.   # ● ゲージエリアの描画(TP あり)
  337.   #--------------------------------------------------------------------------
  338.   def draw_gauge_area_with_tp(rect, actor)
  339.     draw_actor_hp(actor, rect.x + 0, rect.y, 136)
  340.     draw_actor_mp(actor, rect.x + 146, rect.y, 64)
  341.     draw_actor_tp(actor, rect.x + 220, rect.y, 64)
  342.   end
  343.   #--------------------------------------------------------------------------
  344.   # ● ゲージエリアの描画(TP なし)
  345.   #--------------------------------------------------------------------------
  346.   def draw_gauge_area_without_tp(rect, actor)
  347.     draw_actor_hp(actor, rect.x + 0, rect.y, 166)
  348.     draw_actor_mp(actor, rect.x + 176,  rect.y, 108)
  349.   end
  350. end

作者: Cupidk爱呗茶    时间: 2020-3-16 22:00
那个、、不清楚你指的是那部分更新  我用这个版本XAS和同样的分辨率和配置测试了一下事件比如行走图之类的没找出问题




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