Project1

标题: 求一XP地震代码. [打印本页]

作者: 丝路传说外传    时间: 2009-3-25 03:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: tommay    时间: 2009-3-25 03:34
参考某龙的帖子(某龙别介意啊)

把Spriteset_Map类中的
@viewport1.ox = $game_screen.shake
改为:
if $game_switches[1] == true
@viewport1.oy = $game_screen.shake
else
@viewport1.ox = $game_screen.shake
end

用开关1号操作
1号开关为ON时,上下震动;
1号开关为OFF时,左右震动。 [LINE]1,#dddddd[/LINE]版主对此帖的认可:『正确解答,补上悬赏积分,感激你的热情帮助...』,积分『+350』。
作者: 丝路传说外传    时间: 2009-3-25 03:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: linruyin    时间: 2009-3-25 03:53
在脚本编辑器中找出Spriteset_Map
第149行
有@viewport1.ox = $game_screen.shake
把它删了

把这个复制下去
if $game_switches[1] == true
@viewport1.oy = $game_screen.shake
else
@viewport1.ox = $game_screen.shake
end



用开关1号操作
1号开关为ON时,上下震动;
1号开关为OFF时,左右震动。
作者: 凌辰    时间: 2009-3-25 03:53
………………君,我非常了解你此刻的心情。

请楼主打开脚本编辑器(菜单栏第二行,倒数第三个),
左边目录正数第28行“Spriteset_Map”,
在右边将第149行“@viewport1.ox = $game_screen.shake”删除,
粘贴以下代码
if $game_switches[1] == true
@viewport1.oy = $game_screen.shake
else
@viewport1.ox = $game_screen.shake
end

在游戏中,需要上下振动时,事件设置1号开关开启;
需要左右振动时,设置1号开关关闭。 [LINE]1,#dddddd[/LINE]版主对此帖的认可:『感谢你的补充...』,积分『+100』。
作者: 寒冰龙鳞    时间: 2009-3-25 06:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: 天圣的马甲    时间: 2009-3-25 09:17
真地震脚本 by 亿万星辰大人

PS:脚本不懂的话就看置顶贴慢慢学。已经给出答案的时候还吆喝不懂就有伸手倾向了。

  1. #==============================================================================
  2. # ■ 真·地震                             BY 亿万星辰@2005
  3. #==============================================================================
  4. # ■ Spriteset_Map
  5. #------------------------------------------------------------------------------
  6. #  处理地图画面活动块和元件的类。本类在
  7. # Scene_Map 类的内部使用。
  8. #==============================================================================

  9. class Spriteset_Map
  10. #--------------------------------------------------------------------------
  11. # ● 刷新画面
  12. #--------------------------------------------------------------------------
  13. def update
  14.   # 如果远景与当前情况不同
  15.   if @panorama_name != $game_map.panorama_name or
  16.     @panorama_hue != $game_map.panorama_hue
  17.     @panorama_name = $game_map.panorama_name
  18.     @panorama_hue = $game_map.panorama_hue
  19.     if @panorama.bitmap != nil
  20.     @panorama.bitmap.dispose
  21.     @panorama.bitmap = nil
  22.     end
  23.     if @panorama_name != ""
  24.     @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
  25.     end
  26.     Graphics.frame_reset
  27.   end
  28.   # 如果雾与当前的情况不同
  29.   if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
  30.     @fog_name = $game_map.fog_name
  31.     @fog_hue = $game_map.fog_hue
  32.     if @fog.bitmap != nil
  33.     @fog.bitmap.dispose
  34.     @fog.bitmap = nil
  35.     end
  36.     if @fog_name != ""
  37.     @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
  38.     end
  39.     Graphics.frame_reset
  40.   end
  41.   # 刷新元件地图
  42.   @tilemap.ox = $game_map.display_x / 4
  43.   @tilemap.oy = $game_map.display_y / 4
  44.   @tilemap.update
  45.   # 刷新远景平面
  46.   @panorama.ox = $game_map.display_x / 8
  47.   @panorama.oy = $game_map.display_y / 8
  48.   # 刷新雾平面
  49.   @fog.zoom_x = $game_map.fog_zoom / 100.0
  50.   @fog.zoom_y = $game_map.fog_zoom / 100.0
  51.   @fog.opacity = $game_map.fog_opacity
  52.   @fog.blend_type = $game_map.fog_blend_type
  53.   @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
  54.   @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
  55.   @fog.tone = $game_map.fog_tone
  56.   # 刷新角色精灵光标
  57.   for sprite in @character_sprites
  58.     sprite.update
  59.   end
  60.   # 刷新天候图形
  61.   @weather.type = $game_screen.weather_type
  62.   @weather.max = $game_screen.weather_max
  63.   @weather.ox = $game_map.display_x / 4
  64.   @weather.oy = $game_map.display_y / 4
  65.   @weather.update
  66.   # 刷新图片
  67.   for sprite in @picture_sprites
  68.     sprite.update
  69.   end
  70.   # 刷新计时器精灵光标
  71.   @timer_sprite.update
  72.   # 设置画面的色调与震动位置
  73.    @viewport1.tone = $game_screen.tone
  74.    @viewport1.ox = (-1) ** rand(2) * $game_screen.shake
  75.    @viewport1.oy = (-1) ** rand(2) * $game_screen.shake
  76.   #让图片也可以震动
  77.   @viewport2.tone = $game_screen.tone
  78.   @viewport2.ox = (-1) ** rand(2) * $game_screen.shake
  79.   @viewport2.oy = (-1) ** rand(2) * $game_screen.shake
  80.   #AVG让动画也可以震动
  81.   @viewport3.ox = (-1) ** rand(2) * $game_screen.shake
  82.   @viewport3.oy = (-1) ** rand(2) * $game_screen.shake
  83.   # 设置画面的闪烁色
  84.   @viewport4.color = $game_screen.flash_color
  85.   # 刷新视图
  86.   @viewport1.update
  87.   @viewport2.update
  88.   @viewport3.update
  89.   @viewport4.update
  90. end
  91. end

  92. #==============================================================================
  93. # ■ Spriteset_Battle
  94. #------------------------------------------------------------------------------
  95. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  96. # 的内部使用。
  97. #==============================================================================

  98. class Spriteset_Battle
  99. #--------------------------------------------------------------------------
  100. # ● 刷新画面
  101. #--------------------------------------------------------------------------
  102. def update
  103.   # 刷新角色的活动块 (对应角色的替换)
  104.   @actor_sprites[0].battler = $game_party.actors[0]
  105.   @actor_sprites[1].battler = $game_party.actors[1]
  106.   @actor_sprites[2].battler = $game_party.actors[2]
  107.   @actor_sprites[3].battler = $game_party.actors[3]
  108.   # 如果战斗背景文件名与当下不同
  109.   if @battleback_name != $game_temp.battleback_name
  110.     @battleback_name = $game_temp.battleback_name
  111.     if @battleback_sprite.bitmap != nil
  112.     @battleback_sprite.bitmap.dispose
  113.     end
  114.     @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  115.     @battleback_sprite.src_rect.set(0, 0, 640, 320)
  116.   end
  117.   # 刷新战斗者的精灵光标
  118.   for sprite in @enemy_sprites + @actor_sprites
  119.     sprite.update
  120.   end
  121.   # 刷新天气图形
  122.   @weather.type = $game_screen.weather_type
  123.   @weather.max = $game_screen.weather_max
  124.   @weather.update
  125.   # 刷新图片精灵光标
  126.   for sprite in @picture_sprites
  127.     sprite.update
  128.   end
  129.   # 刷新计时器精灵光标
  130.   @timer_sprite.update
  131.   # 设置画面的色调与震动位置
  132.    @viewport1.tone = $game_screen.tone
  133.    @viewport1.ox = (-1) ** rand(2) * $game_screen.shake
  134.    @viewport1.oy = (-1) ** rand(2) * $game_screen.shake
  135.   #让图片也可以震动
  136.   @viewport2.tone = $game_screen.tone
  137.   @viewport2.ox = (-1) ** rand(2) * $game_screen.shake
  138.   @viewport2.oy = (-1) ** rand(2) * $game_screen.shake
  139.   # 设置画面的闪烁色
  140.   @viewport4.color = $game_screen.flash_color
  141.   # 刷新视图
  142.   @viewport1.update
  143.   @viewport2.update
  144.   @viewport4.update
  145. end
  146. end
复制代码
[LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: 亿万星辰    时间: 2009-3-25 19:06
那啥...
  1.   # 设置画面的色调与震动位置
  2. #  @viewport1.tone = $game_screen.tone
  3. #  @viewport1.ox = (-1) ** rand(2) * $game_screen.shake
  4. #  @viewport1.oy = (-1) ** rand(2) * $game_screen.shake
复制代码

都注释掉了还怎么震动......

默认的情况下只是对viewport1进行了震动处理
其实只要把所有的viewport都挂上震动就好了,不过画面上如果有各种东西(地图 人物 图片 远景 雾)那效果是十分的华丽........ [LINE]1,#dddddd[/LINE]版主对此帖的认可:『感谢你的补充...』,积分『+100』。
作者: 天圣的马甲    时间: 2009-3-25 19:42
= =哎呀从自己手头游戏里拆出来忘了修正,感谢亿万大人的提醒(正主儿?{/hx})




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