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

Project1

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

[有事请教] RPGMaker地圖縮放後跑掉

[复制链接]

Lv4.逐梦者

梦石
0
星屑
19284
在线时间
3074 小时
注册时间
2013-1-11
帖子
1288
1
发表于 2022-11-27 19:52:34 | 显示全部楼层
本帖最后由 张咚咚 于 2022-11-27 19:55 编辑

将下面这些脚本插入到你上面的脚本的下面。(不过推荐做法是建议将你的分辨率宽高改为32的整除数,然后将下面这段脚本里所有的 32.0 替换为 32)

  1. class Game_Map
  2.   def setup_scroll
  3.     @scroll_direction = 2
  4.     @scroll_rest = 0
  5.     @scroll_speed = 4
  6.     @margin_x = (width - (Graphics.width / 32.0)) * 256 / 2
  7.     @margin_y = (height - (Graphics.height / 32.0)) * 256 / 2
  8.   end
  9.   def scroll_down(distance)
  10.     if loop_vertical?
  11.       @display_y += distance
  12.       @display_y %= @map.height * 256
  13.       @parallax_y += distance
  14.     else
  15.       last_y = @display_y
  16.       @display_y = [@display_y + distance, (height - (Graphics.height / 32.0)) * 256].min
  17.       @parallax_y += @display_y - last_y
  18.     end
  19.   end
  20.   def scroll_right(distance)
  21.     if loop_horizontal?
  22.       @display_x += distance
  23.       @display_x %= @map.width * 256
  24.       @parallax_x += distance
  25.     else
  26.       last_x = @display_x
  27.       @display_x = [@display_x + distance, (width - (Graphics.width / 32.0)) * 256].min
  28.       @parallax_x += @display_x - last_x
  29.     end
  30.   end
  31. end
  32. class Game_Player < Game_Character
  33.   #--------------------------------------------------------------------------
  34.   # ● 常量
  35.   #--------------------------------------------------------------------------
  36.   CENTER_X = (Graphics.width / 2 - 16) * 8     # 画面中央 X 座标 * 8
  37.   CENTER_Y = (Graphics.height / 2 - 16) * 8     # 画面中央 Y 座标 * 8
  38.   def center(x, y)
  39.     display_x = x * 256 - CENTER_X                    # 计算座标
  40.     unless $game_map.loop_horizontal?                 # 非横向回圈的场合
  41.       max_x = ($game_map.width - (Graphics.width / 32.0)) * 256            # 计算最大值
  42.       display_x = [0, [display_x, max_x].min].max     # 校正座标
  43.     end
  44.     display_y = y * 256 - CENTER_Y                    # 计算座标
  45.     unless $game_map.loop_vertical?                   # 非横向回圈的场合
  46.       max_y = ($game_map.height - (Graphics.height / 32.0)) * 256           # 计算最大值
  47.       display_y = [0, [display_y, max_y].min].max     # 校正座标
  48.     end
  49.     $game_map.set_display_pos(display_x, display_y)   # 改变地图位置
  50.   end
  51. end

  52. class Spriteset_Map
  53.   def create_viewports
  54.     @viewport1 = Viewport.new(0, 0, Graphics.width, Graphics.height)
  55.     @viewport2 = Viewport.new(0, 0, Graphics.width, Graphics.height)
  56.     @viewport3 = Viewport.new(0, 0, Graphics.width, Graphics.height)
  57.     @viewport2.z = 50
  58.     @viewport3.z = 100
  59.   end
  60. end
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-8 19:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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