设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2887|回复: 2
打印 上一主题 下一主题

[已经过期] 游戏拓宽窗口和XAS的冲突

[复制链接]

Lv2.观梦者

梦石
0
星屑
287
在线时间
35 小时
注册时间
2020-2-17
帖子
61
跳转到指定楼层
1
发表于 2020-3-16 11:37:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
29星屑
准确来说并不是冲突
是这样的,我用了拓宽游戏窗口的脚本(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的注释没有全汉化,我不知道在哪里改,求大神帮助

solewa Great daze

Lv2.观梦者

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

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
7135
在线时间
589 小时
注册时间
2019-9-15
帖子
113

R考场第七期金奖

3
发表于 2020-3-16 22:00:37 | 只看该作者
那个、、不清楚你指的是那部分更新  我用这个版本XAS和同样的分辨率和配置测试了一下事件比如行走图之类的没找出问题
********
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 11:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表