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

Project1

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

[RMVX发布] 地图作为战斗背景

 关闭 [复制链接]

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

跳转到指定楼层
1
发表于 2008-1-18 03:14:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 凌辰 于 2009-7-12 17:23 编辑

脚本1(Spriteset_Battle):

  1. #==============================================================================
  2. # ■ Spriteset_Battle
  3. #------------------------------------------------------------------------------
  4. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  5. # 的内部使用。
  6. #==============================================================================

  7. class Spriteset_Battle
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     create_viewports
  13.     create_battleback
  14.     create_battlefloor
  15.     create_enemies
  16.     create_actors
  17.     create_pictures
  18.     create_timer
  19.     update
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 生成视口
  23.   #--------------------------------------------------------------------------
  24.   def create_viewports
  25.     @viewport1 = Viewport.new(0, 0, 544, 416)
  26.     @viewport2 = Viewport.new(0, 0, 544, 416)
  27.     @viewport3 = Viewport.new(0, 0, 544, 416)
  28.     @viewport2.z = 50
  29.     @viewport3.z = 100
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 生成战斗背景位图
  33.   #--------------------------------------------------------------------------
  34.   def create_battleback
  35. #    source = $game_temp.background_bitmap
  36. #    bitmap = Bitmap.new(640, 480)
  37. #    bitmap.stretch_blt(bitmap.rect, source, source.rect)
  38. #    bitmap.radial_blur(90, 12)
  39. #    @battleback_sprite = Sprite.new(@viewport1)
  40. #    @battleback_sprite.bitmap = bitmap
  41. #    @battleback_sprite.ox = 320
  42. #    @battleback_sprite.oy = 240
  43. #    @battleback_sprite.x = 272
  44. #    @battleback_sprite.y = 176
  45. #    @battleback_sprite.wave_amp = 8
  46. #    @battleback_sprite.wave_length = 240
  47. #    @battleback_sprite.wave_speed = 120
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 生成战斗场所活动块
  51.   #--------------------------------------------------------------------------
  52.   def create_battlefloor
  53.     @battlefloor_sprite = Sprite.new(@viewport1)
  54.     @battlefloor_sprite.bitmap = Cache.system("BattleFloor")
  55.     @battlefloor_sprite.x = 0
  56.     @battlefloor_sprite.y = 192
  57.     @battlefloor_sprite.z = 1
  58.     @battlefloor_sprite.opacity = 128
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 生成敌人活动块
  62.   #--------------------------------------------------------------------------
  63.   def create_enemies
  64.     @enemy_sprites = []
  65.     for enemy in $game_troop.members.reverse
  66.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  67.     end
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 生成角色活动块
  71.   #    默认不显示角色图形,不过,为了方便、己方生成与敌人同样的精灵。
  72.   #--------------------------------------------------------------------------
  73.   def create_actors
  74.     @actor_sprites = []
  75.     @actor_sprites.push(Sprite_Battler.new(@viewport1))
  76.     @actor_sprites.push(Sprite_Battler.new(@viewport1))
  77.     @actor_sprites.push(Sprite_Battler.new(@viewport1))
  78.     @actor_sprites.push(Sprite_Battler.new(@viewport1))
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 生成图片活动块
  82.   #--------------------------------------------------------------------------
  83.   def create_pictures
  84.     @picture_sprites = []
  85.     for i in 1..20
  86.       @picture_sprites.push(Sprite_Picture.new(@viewport2,
  87.         $game_troop.screen.pictures[i]))
  88.     end
  89.   end
  90.   #--------------------------------------------------------------------------  #--------------------------------------------------------------------------
  91.   # ● 生成计时器活动块
  92.   #--------------------------------------------------------------------------
  93.   def create_timer
  94.     @timer_sprite = Sprite_Timer.new(@viewport2)
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 释放
  98.   #--------------------------------------------------------------------------
  99.   def dispose
  100.     dispose_battleback_bitmap
  101.     dispose_battleback
  102.     dispose_battlefloor
  103.     dispose_enemies
  104.     dispose_actors
  105.     dispose_pictures
  106.     dispose_timer
  107.     dispose_viewports
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 战斗背景位图释放
  111.   #--------------------------------------------------------------------------
  112.   def dispose_battleback_bitmap
  113.     #@battleback_sprite.bitmap.dispose
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 战斗背景活动块释放
  117.   #--------------------------------------------------------------------------
  118.   def dispose_battleback
  119.     #@battleback_sprite.dispose
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● 战斗场所活动块释放
  123.   #--------------------------------------------------------------------------
  124.   def dispose_battlefloor
  125.     @battlefloor_sprite.dispose
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 敌人活动块释放
  129.   #--------------------------------------------------------------------------
  130.   def dispose_enemies
  131.     for sprite in @enemy_sprites
  132.       sprite.dispose
  133.     end
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 角色活动块释放
  137.   #--------------------------------------------------------------------------
  138.   def dispose_actors
  139.     for sprite in @actor_sprites
  140.       sprite.dispose
  141.     end
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ● 图片活动块释放
  145.   #--------------------------------------------------------------------------
  146.   def dispose_pictures
  147.     for sprite in @picture_sprites
  148.       sprite.dispose
  149.     end
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 计时器活动块释放
  153.   #--------------------------------------------------------------------------
  154.   def dispose_timer
  155.     @timer_sprite.dispose
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 视口释放
  159.   #--------------------------------------------------------------------------
  160.   def dispose_viewports
  161.     @viewport1.dispose
  162.     @viewport2.dispose
  163.     @viewport3.dispose
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 刷新画面
  167.   #--------------------------------------------------------------------------
  168.   def update
  169.     update_battleback
  170.     update_battlefloor
  171.     update_enemies
  172.     update_actors
  173.     update_pictures
  174.     update_timer
  175.     update_viewports
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ● 刷新战斗背景活动块
  179.   #--------------------------------------------------------------------------
  180.   def update_battleback
  181. #    @battleback_sprite.update
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● 刷新战斗场所活动块
  185.   #--------------------------------------------------------------------------
  186.   def update_battlefloor
  187.     @battlefloor_sprite.update
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ● 刷新敌人活动块
  191.   #--------------------------------------------------------------------------
  192.   def update_enemies
  193.     for sprite in @enemy_sprites
  194.       sprite.update
  195.     end
  196.   end
  197.   #--------------------------------------------------------------------------
  198.   # ● 刷新角色活动块
  199.   #--------------------------------------------------------------------------
  200.   def update_actors
  201.     @actor_sprites[0].battler = $game_party.members[0]
  202.     @actor_sprites[1].battler = $game_party.members[1]
  203.     @actor_sprites[2].battler = $game_party.members[2]
  204.     @actor_sprites[3].battler = $game_party.members[3]
  205.     for sprite in @actor_sprites
  206.       sprite.update
  207.     end
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # ● 刷新图片活动块
  211.   #--------------------------------------------------------------------------
  212.   def update_pictures
  213.     for sprite in @picture_sprites
  214.       sprite.update
  215.     end
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # ● 刷新计时器活动块
  219.   #--------------------------------------------------------------------------
  220.   def update_timer
  221.     @timer_sprite.update
  222.   end
  223.   #--------------------------------------------------------------------------
  224.   # ● 刷新视口
  225.   #--------------------------------------------------------------------------
  226.   def update_viewports
  227.     @viewport1.tone = $game_troop.screen.tone
  228.     @viewport1.ox = $game_troop.screen.shake
  229.     @viewport2.color = $game_troop.screen.flash_color
  230.     @viewport3.color.set(0, 0, 0, 255 - $game_troop.screen.brightness)
  231.     @viewport1.update
  232.     @viewport2.update
  233.     @viewport3.update
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ● 动画显示中判定
  237.   #--------------------------------------------------------------------------
  238.   def animation?
  239.     for sprite in @enemy_sprites + @actor_sprites
  240.       return true if sprite.animation?
  241.     end
  242.     return false
  243.   end
  244. end
复制代码

脚本2:

  1. class Scene_Battle < Scene_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 开始处理
  4.   #--------------------------------------------------------------------------
  5.   def start
  6.     super
  7.     create_menu_background
  8.     $game_temp.in_battle = true
  9.     @spriteset = Spriteset_Battle.new
  10.     @message_window = Window_BattleMessage.new
  11.     @action_battlers = []
  12.     create_info_viewport
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 结束处理
  16.   #--------------------------------------------------------------------------
  17.   def terminate
  18.     super
  19.     dispose_menu_background
  20.     dispose_info_viewport
  21.     @message_window.dispose
  22.     @spriteset.dispose
  23.     unless $scene.is_a?(Scene_Gameover)
  24.       $scene = nil if $BTEST
  25.     end
  26.   end

  27. end
复制代码



              [本贴由 御灵 于 2008-1-17 23:34:14 进行了编辑]
哎呀,蛋疼什么的最有爱了

Lv1.梦旅人

最BT美攻!

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-3-7
帖子
1407
2
发表于 2008-1-18 04:28:30 | 只看该作者
谢谢~~
VX脚本出的也很快啊
骑士の圣堂最终版华丽丽登场~~

http://rpg.blue/viewthread.php?tid=116851
AVG原创自制游戏  
神の大陆出品
神之大陆游戏制作小组唯美为主BT为终(偏BL向)
欢迎来搅合BLOG:http://hi.baidu.com/tranpol
官网:http://tierradesagrado.uueasy.com/
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2007-7-17
帖子
25
3
发表于 2008-1-18 04:56:14 | 只看该作者
牛X啊
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2007-7-17
帖子
25
4
发表于 2008-1-18 07:16:12 | 只看该作者
结束战斗的时候有问题,发生错误了
初学者~大家多多关照啊~
回复 支持 反对

使用道具 举报

Lv4.逐梦者

世界坑化协会

梦石
0
星屑
7812
在线时间
1563 小时
注册时间
2007-3-13
帖子
5542

极短23参与极短21参与开拓者贵宾第一届化妆舞会最佳服饰奖

5
发表于 2008-1-18 07:24:40 | 只看该作者
{/se}{/pz}

有没全景图做战斗背景的?
你的肩膀上有肩周炎~♪  秒懂  ☚   \没有
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

6
 楼主| 发表于 2008-1-18 19:20:53 | 只看该作者
以下引用v2sam于2008-1-17 23:24:40的发言:



有没全景图做战斗背景的?

包含了远景
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-6
帖子
573
7
发表于 2008-1-18 19:26:27 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

8
发表于 2008-1-18 19:30:25 | 只看该作者
多脚本不如好脚本
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

9
 楼主| 发表于 2008-1-18 20:16:08 | 只看该作者
以下引用yanzhenguo于2008-1-17 23:16:12的发言:

结束战斗的时候有问题,发生错误了

把Scene_Battle的ispose_menu_background换成dispose_menu_background
Spriteset_Battle的
  #--------------------------------------------------------------------------
  # ● 战斗场所活动块释放
  #--------------------------------------------------------------------------
  def dispose_battlefloor
    @battlefloor_sprite.dispose
  end
修改成
  #--------------------------------------------------------------------------
  # ● 战斗场所活动块释放
  #--------------------------------------------------------------------------
  def dispose_battlefloor
  end

即可
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-16
帖子
300
10
发表于 2008-1-18 20:22:20 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 21:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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