Project1

标题: 如何让屏幕坐标在画面卷动前后保持一致? [打印本页]

作者: ·雾逝者·    时间: 2014-8-14 09:12
标题: 如何让屏幕坐标在画面卷动前后保持一致?

如图,用画面XY显示图片,在角色移动导致画面卷动时图片会发生偏移,偏移方向是角色移动的方向
有使该图片不偏移的方法么?(改进方法 其他显示方法等皆可)
范例在此
乱晃范例.zip (204.96 KB, 下载次数: 28)
作者: 克莉丝    时间: 2014-8-14 10:11
本帖最后由 克莉丝 于 2014-8-14 10:31 编辑

$game_screen.pictures[n].fix_to_map
之后图片会随地图滚动不需要用并行事件显示...
$game_screen.pictures[n].fix_to_event(event_id)
与事件固定

事件\脚本见下


  1. class Game_Picture
  2.   def fix_to_map
  3.     @fix_to_map = [$game_map.display_x / 4,$game_map.display_y / 4]
  4.   end
  5.   def fix_to_map?
  6.     @fix_to_map
  7.   end
  8.   def fix_to_event(event_id)
  9.     @fix_to_event = [$game_map.map_id,event_id]
  10.   end
  11.   def fix_to_event?
  12.     @fix_to_event
  13.   end
  14.   alias show_crysse2014814 show
  15.   def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  16.     show_crysse2014814(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  17.     @fix_to_map = false
  18.     @fix_to_event = false
  19.   end
  20. end
  21. class Sprite_Picture < Sprite
  22.   alias update_crysse2014814 update
  23.   def update
  24.     update_crysse2014814
  25.     if $scene.is_a?(Scene_Map) and @picture.fix_to_map?
  26.       self.x = @picture.x - $game_map.display_x / 4 + @picture.fix_to_map?[0]
  27.       self.y = @picture.y - $game_map.display_y / 4 + @picture.fix_to_map?[1]
  28.     end
  29.     if $scene.is_a?(Scene_Map) and @picture.fix_to_event?
  30.       return if @picture.fix_to_event?[0] != $game_map.map_id
  31.       self.x = @picture.x+$game_map.events[@picture.fix_to_event?[1]].screen_x
  32.       self.y = @picture.y+$game_map.events[@picture.fix_to_event?[1]].screen_y
  33.     end
  34.   end
  35. end
复制代码





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