Project1
标题:
如何使战斗背景可以像雾一样移动?
[打印本页]
作者:
灯笼菜刀王
时间:
2008-6-23 23:05
http://rpg.blue/web/htm/news368.htm
作者:
pinko
时间:
2008-6-23 23:42
这个方法和RTAB是否兼容?
作者:
灯笼菜刀王
时间:
2008-6-24 00:09
应该不冲突,没试过
我是链接党-_,- 具体请找动手党和养手党。
作者:
dbshy
时间:
2008-6-24 00:16
帖一下Spriteset_Battle的脚本 = =
PS:不贴脚本,鬼才知道
作者:
pinko
时间:
2008-6-24 00:59
#==============================================================================
# ■ Spriteset_Battle
#------------------------------------------------------------------------------
# 处理战斗画面的活动块的类。本类在 Scene_Battle 类
# 的内部使用。
#==============================================================================
class Spriteset_Battle
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_reader :viewport1 # 敌人方的显示端口
attr_reader :viewport2 # 角色方的显示端口
#--------------------------------------------------------------------------
# ● 初始化变量
#--------------------------------------------------------------------------
def initialize
# 生成显示端口
@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport4 = Viewport.new(0, 0, 640, 480)
@viewport2.z = 101
@viewport3.z = 200
@viewport4.z = 5000
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
@panorama_sprite_1 = Sprite.new(@viewport1)
@panorama_sprite_2 = Sprite.new(@viewport1)
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
# 生成战斗背景活动块
@battleback_sprite = Sprite.new(@viewport1)
# 生成敌人活动块
@enemy_sprites = []
for enemy in $game_troop.enemies.reverse
@enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
end
# 生成敌人活动块
@actor_sprites = []
@actor_sprites.push(Sprite_Battler.new(@viewport2))
@actor_sprites.push(Sprite_Battler.new(@viewport2))
@actor_sprites.push(Sprite_Battler.new(@viewport2))
@actor_sprites.push(Sprite_Battler.new(@viewport2))
# 生成天候
@weather = RPG::Weather.new(@viewport1)
# 生成图片活动块
@picture_sprites = []
for i in 51..100
@picture_sprites.push(Sprite_Picture.new(@viewport3,
$game_screen.pictures[i]))
end
# 生成计时器块
@timer_sprite = Sprite_Timer.new
# 刷新画面
update
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
def dispose
# 如果战斗背景位图存在的情况下就释放
if @battleback_sprite.bitmap != nil
@battleback_sprite.bitmap.dispose
end
# 释放战斗背景活动块
@battleback_sprite.dispose
# 释放敌人活动块、角色活动块
for sprite in @enemy_sprites + @actor_sprites
sprite.dispose
end
# 释放天候
@weather.dispose
# 释放图片活动块
for sprite in @picture_sprites
sprite.dispose
end
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
@panorama_sprite_1.dispose
@panorama_sprite_2.dispose
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
# 释放计时器活动块
@timer_sprite.dispose
# 释放显示端口
@viewport1.dispose
@viewport2.dispose
@viewport3.dispose
@viewport4.dispose
end
#--------------------------------------------------------------------------
# ● 显示效果中判定
#--------------------------------------------------------------------------
def effect?
# 如果是在显示效果中的话就返回 true
for sprite in @enemy_sprites + @actor_sprites
return true if sprite.effect?
end
return false
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
if @panorama_name != $game_map.panorama_name
@panorama_name = $game_map.panorama_name
if @panorama_sprite_1.bitmap != nil
@panorama_sprite_1.bitmap.dispose
@panorama_sprite_2.bitmap.dispose
end
@panorama_sprite_1.bitmap = RPG::Cache.panorama(@panorama_name, $game_map.panorama_hue)
@panorama_sprite_2.bitmap = RPG::Cache.panorama(@panorama_name, $game_map.panorama_hue)
@panorama_sprite_1.x = 320
@panorama_sprite_2.x = 320 - @panorama_sprite_2.bitmap.width
else
@panorama_sprite_1.x += 1
@panorama_sprite_2.x += 1
if @panorama_sprite_1.x == 640
@panorama_sprite_1.x = @panorama_sprite_2.x - @panorama_sprite_2.bitmap.width
end
if @panorama_sprite_2.x == 640
@panorama_sprite_2.x = @panorama_sprite_1.x - @panorama_sprite_1.bitmap.width
end
end
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
# 刷新角色的活动块 (对应角色的替换)
@actor_sprites[0].battler = $game_party.actors[0]
@actor_sprites[1].battler = $game_party.actors[1]
@actor_sprites[2].battler = $game_party.actors[2]
@actor_sprites[3].battler = $game_party.actors[3]
# 战斗背景的文件名与现在情况有差异的情况下
if @battleback_name != $game_temp.battleback_name
@battleback_name = $game_temp.battleback_name
if @battleback_sprite.bitmap != nil
@battleback_sprite.bitmap.dispose
end
@battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
@battleback_sprite.src_rect.set(0, 0, 640, 480)
end
# 刷新战斗者的活动块
for sprite in @enemy_sprites + @actor_sprites
sprite.update
end
# 刷新天气图形
@weather.type = $game_screen.weather_type
@weather.max = $game_screen.weather_max
@weather.update
# 刷新图片活动块
for sprite in @picture_sprites
sprite.update
end
# 刷新计时器活动块
@timer_sprite.update
# 设置画面的色调与震动位置
@viewport1.tone = $game_screen.tone
@viewport1.ox = $game_screen.shake
# 设置画面的闪烁色
@viewport4.color = $game_screen.flash_color
# 刷新显示端口
@viewport1.update
@viewport2.update
@viewport4.update
end
end
复制代码
不显示冲突,但是用在RTAB里无效....
作者:
dbshy
时间:
2008-6-24 01:01
我的意思是贴RTAB的Spriteset_Battle的脚本 = =
作者:
pinko
时间:
2008-6-24 03:00
我的RTAB没有修改那个脚本。
应该是RTAB战斗系统那里的。
作者:
pinko
时间:
2008-6-27 22:52
此问题仍未得到解决- -||
作者:
dbshy
时间:
2008-6-27 23:04
先将RTAB中的Spriteset_Battle的内容删掉,用上面你贴的脚本替换 [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
[LINE]1,#dddddd[/LINE]
系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者:
pinko
时间:
2009-6-12 08:00
标题:
如何使战斗背景可以像雾一样移动?
这样就可以表现出空中战的感觉了。 [LINE]1,#dddddd[/LINE]
此贴于 2008-6-27 5:22:28 被版主darkten提醒,请楼主看到后对本贴做出回应。
[LINE]1,#dddddd[/LINE]
版务信息:版主帮忙结贴~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1