Project1

标题: 【VX】怎麼在戰鬥中使用MODE 7 的效果做戰鬥背景圖 [打印本页]

作者: tobojo    时间: 2011-12-18 17:12
标题: 【VX】怎麼在戰鬥中使用MODE 7 的效果做戰鬥背景圖
【VX】怎麼在戰鬥中使用MODE 7 的效果做戰鬥背景圖
想請問各位前輩!現在我的地圖是一般2D模式..
戰鬥方式是使用橫向戰鬥.....戰鬥背景是直接使用地圖
看了一下MODE 7 的腳本.不是很懂..
看起來好像是一片一片圖去改變他的角度...
用地圖當戰鬥背景..看似將目前的底圖畫面存成一個Bitmap.new再把他呼叫出來
那是不是有什麼方法可以寫一個腳本..只在戰鬥的時候將背景圖..換成透視角度呢??
效果像附件一樣..

Q.jpg (231.97 KB, 下载次数: 12)

Q.jpg

作者: 小白玩家    时间: 2011-12-18 17:42
本帖最后由 小白玩家 于 2011-12-18 17:44 编辑

战斗背景脚本可以帮助你实现
  1. #==============================================================================
  2. # 随机渐变,区域控制战斗背景图 by 沉影不器
  3. #------------------------------------------------------------------------------
  4. # 功能描述: ① 使用区域名称定义不同的战斗背景图
  5. # 如果没有找到背景图,则使用RMVX默认眩晕背景
  6. # ② 进入战斗时,随机使用渐变效果
  7. # 使用方法: ① 复制脚本,插入到Main之前
  8. # ② 在Graphics文件夹下新建Battlebacks文件夹用于存放战斗背景图
  9. # 您也可以在脚本第16行自行设定路径
  10. # ③ 准备与区域名称相同的战斗背景图到您设定的战斗背景图文件夹内
  11. # ④ 在Graphics文件夹下新建Transitions文件夹用于存放渐变图
  12. # 您也可以在脚本第17行自行设定路径
  13. # ⑤ 在脚本第18行设定战斗背景图的后缀名
  14. # ⑥ 在脚本第19行设定是否直接用地图做战斗图
  15. #------------------------------------------------------------------------------
  16. B_PATH = "Graphics/Battlebacks/" # 设定战斗背景图存储路径
  17. T_PATH = "Graphics/Battlebacks/" # 设定渐变图存储路径
  18. EXTNAME = ".png" # 设定战斗背景图后缀名
  19. DIRECT_MAP = false # 设定是否直接用地图做战斗图
  20. #==============================================================================
  21. module Cache
  22. #--------------------------------------------------------------------------
  23. # ● 获取战斗背景图
  24. # filename : 文件名
  25. # hue : 色相变化值
  26. #--------------------------------------------------------------------------
  27. def self.battleback(filename, hue)
  28. load_bitmap(B_PATH, filename, hue)
  29. end
  30. end
  31. #==============================================================================
  32. # ■ Spriteset_Battle
  33. #------------------------------------------------------------------------------
  34. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  35. # 的内部使用。
  36. #==============================================================================
  37. class Spriteset_Battle
  38. #--------------------------------------------------------------------------
  39. # ● 生成战斗背景活动块
  40. #--------------------------------------------------------------------------
  41. def create_battleback
  42. for area in $data_areas.values
  43. break if $game_player.in_area?(area)
  44. end
  45. @battleback_sprite = Sprite.new(@viewport1)
  46. if area != nil and FileTest.exist?(B_PATH+area.name+EXTNAME) and !DIRECT_MAP
  47. @battleback_sprite.bitmap = Cache.battleback(area.name, 0)
  48. else
  49. source = $game_temp.background_bitmap
  50. bitmap = Bitmap.new(640, 480)
  51. bitmap.stretch_blt(bitmap.rect, source, source.rect)
  52. bitmap.radial_blur(90, 12) unless DIRECT_MAP
  53. @battleback_sprite.bitmap = bitmap
  54. @battleback_sprite.ox = 320
  55. @battleback_sprite.oy = 240
  56. @battleback_sprite.x = 272
  57. @battleback_sprite.y = 176
  58. @battleback_sprite.wave_amp = 8 unless DIRECT_MAP
  59. @battleback_sprite.wave_length = 240 unless DIRECT_MAP
  60. @battleback_sprite.wave_speed = 120 unless DIRECT_MAP
  61. end
  62. end
  63. end
  64. #==============================================================================
  65. # ■ Scene_Title
  66. #------------------------------------------------------------------------------
  67. #  处理标题画面的类。
  68. #==============================================================================
  69. class Scene_Title < Scene_Base
  70. #--------------------------------------------------------------------------
  71. # ● 载入战斗测试用的数据库
  72. #--------------------------------------------------------------------------
  73. alias bg_load load_bt_database
  74. def load_bt_database
  75. bg_load
  76. $data_areas = load_data("Data/Areas.rvdata")
  77. end
  78. end
  79. #==============================================================================
  80. # ■ Scene_Map
  81. #------------------------------------------------------------------------------
  82. #  处理地图画面的类。
  83. #==============================================================================
  84. class Scene_Map < Scene_Base
  85. #--------------------------------------------------------------------------
  86. # ● 执行战斗前变换
  87. #--------------------------------------------------------------------------
  88. def perform_battle_transition
  89. file = Dir.entries(T_PATH)
  90. file.delete(".");file.delete("..")
  91. file_index = rand(file.size)
  92. Graphics.transition(80, T_PATH + file[file_index], 80)
  93. Graphics.freeze
  94. end
  95. end
复制代码
原帖地址
http://rpg.blue/forum.php?mod=vi ... A%E6%B8%90%E5%8F%98
作者: tobojo    时间: 2011-12-18 18:40
本帖最后由 tobojo 于 2011-12-18 18:51 编辑

先謝謝小白大大的回答!
這個腳本我參考過!!可能我的問法有點錯誤造成您的誤解!!
或者您說的就是我的問題所在
我想知道的是如何即時的將當前的2D地圖背景換成2.5D的地圖戰鬥背景..
是腳本是必須將一個一個圖塊都轉換後再轉換成背景圖
或者有辦法將上述腳本中已轉換成戰鬥背景的圖片再轉成2.5D(透視)再呼叫出於戰鬥背景上

像這樣--平常是2D..戰鬥以後直接抓取背景的質轉換為透視圖


作者: 小白玩家    时间: 2011-12-18 18:49
tobojo 发表于 2011-12-18 18:40
先謝謝小白大大的回答!
這個腳本我參考過!!可能我的問法有點錯誤造成您的誤解!!
或者您說的就是我的問題所 ...

你自己选点立体点的背景用吧
作者: 羞射了    时间: 2011-12-19 03:33
本帖最后由 羞射了 于 2011-12-19 03:38 编辑

网上说这个是3d范例吧?说是移植了rmxp以前一个3d范例的地图显示方法,然后将其作为战斗背景。
作者: tobojo    时间: 2011-12-19 17:41
恩~沒錯這是個3D範例...
所以我在想是不是有辦法可以平時3D
然後在遭遇戰鬥的時候將地圖切換3D再輸出背景
之後在戰鬥結速過後..再回復到2D模式
不過目前殘念中.....
作者: 阿尔西斯的马甲    时间: 2011-12-20 10:01
我研究过伪3D最后无功而返。。。。你还要徒劳的研究么?
如果你真的要研究,我等着你的好消息。




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