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

Project1

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

有办法使敌人的所有动画改成反方向吗?

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
跳转到指定楼层
1
发表于 2008-7-31 08:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我方技能很多动画都是向左发动攻击的,那样敌人要发动就显得很麻烦了....
有办法使敌人发动动画时,整个动画反转吗?
注意:是整个动画反转,不是每个单元左右反转.
此贴于 2008-8-2 14:04:40 被版主darkten提醒,请楼主看到后对本贴做出回应。
此贴于 2008-8-6 11:23:24 被版主darkten提醒,请楼主看到后对本贴做出回应。
此贴于 2008-8-9 1:42:37 被版主darkten提醒,请楼主看到后对本贴做出回应。
此贴于 2008-8-15 20:34:03 被版主darkten提醒,请楼主看到后对本贴做出回应。
版务信息:版主帮忙结贴~

Lv5.捕梦者

梦石
0
星屑
39922
在线时间
5799 小时
注册时间
2006-11-10
帖子
6676
2
发表于 2008-7-31 08:29:19 | 只看该作者
一,做一个反方向动画的技能。然后敌人方都使用这类的反动画技能。

二,自己写个敌人使用动画为反方向的脚本。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
3
 楼主| 发表于 2008-7-31 08:33:44 | 只看该作者
以下引用灯笼菜刀王于2008-7-31 0:29:19的发言:

一,做一个反方向动画的技能。然后敌人方都使用这类的反动画技能。

二,自己写个敌人使用动画为反方向的脚本。

一,每个技能需要画几个小时去弄,免提-.-
二,不知道怎么写.......
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-5-29
帖子
511
4
发表于 2008-7-31 11:13:17 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-5-18
帖子
251
5
发表于 2008-8-4 13:33:20 | 只看该作者
至少梦3是做了两套
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
6
 楼主| 发表于 2008-8-7 06:18:41 | 只看该作者
2008-8-4 5:33:19
回复人: 关重7

???怎么我看不见回的帖子/....?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39922
在线时间
5799 小时
注册时间
2006-11-10
帖子
6676
7
发表于 2008-8-7 06:25:56 | 只看该作者
捣乱被和谐掉了-。-

话说昨天刚学了招水平反转的办法。

试试在 module 的animation设置中用分歧判断角色和敌人,然后让self.mirror = true不知道能不能让整个动画反转~~

囧乱想乱猜,可以无视我....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
22 小时
注册时间
2006-4-22
帖子
370
8
发表于 2008-8-7 07:45:53 | 只看该作者
vx里的动画有定义这个mirror参数,XP没有,不过可以重定义一下..进行实现.....以下脚本楼主试下....插在main之上,应该可以初步实现翻转....这里定义了敌人的施展动画不翻转,楼主试试...
.

  1. module RPG
  2.   class Sprite < ::Sprite
  3.    
  4.     def animation(animation, hit,mirror)
  5.       dispose_animation
  6.       @_animation = animation
  7.       return if @_animation == nil
  8.       #==============
  9.       @animation_mirror = mirror
  10.       #==============
  11.       @_animation_hit = hit
  12.       @_animation_duration = @_animation.frame_max
  13.       animation_name = @_animation.animation_name
  14.       animation_hue = @_animation.animation_hue
  15.       bitmap = RPG::Cache.animation(animation_name, animation_hue)
  16.       if @@_reference_count.include?(bitmap)
  17.         @@_reference_count[bitmap] += 1
  18.       else
  19.         @@_reference_count[bitmap] = 1
  20.       end
  21.       @_animation_sprites = []
  22.       if @_animation.position != 3 or not @@_animations.include?(animation)
  23.         for i in 0..15
  24.           sprite = ::Sprite.new(self.viewport)
  25.           sprite.bitmap = bitmap
  26.           sprite.visible = false
  27.           @_animation_sprites.push(sprite)
  28.         end
  29.         unless @@_animations.include?(animation)
  30.           @@_animations.push(animation)
  31.         end
  32.       end
  33.       update_animation
  34.     end


  35.     def animation_set_sprites(sprites, cell_data, position)
  36.         for i in 0..15
  37.         sprite = sprites[i]
  38.         pattern = cell_data[i, 0]
  39.         if sprite == nil or pattern == nil or pattern == -1
  40.           sprite.visible = false if sprite != nil
  41.           next
  42.         end
  43.         sprite.visible = true
  44.         sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
  45.         if position == 3
  46.           if self.viewport != nil
  47.             sprite.x = self.viewport.rect.width / 2
  48.             sprite.y = self.viewport.rect.height - 160
  49.           else
  50.             sprite.x = 320
  51.             sprite.y = 240
  52.           end
  53.         else
  54.           sprite.x = self.x - self.ox + self.src_rect.width / 2
  55.           sprite.y = self.y - self.oy + self.src_rect.height / 2
  56.           sprite.y -= self.src_rect.height / 4 if position == 0
  57.           sprite.y += self.src_rect.height / 4 if position == 2
  58.         end
  59.         sprite.x += cell_data[i, 1]
  60.         sprite.y += cell_data[i, 2]
  61.         sprite.z = 2000
  62.         sprite.ox = 96
  63.         sprite.oy = 96
  64.         sprite.zoom_x = cell_data[i, 3] / 100.0
  65.         sprite.zoom_y = cell_data[i, 3] / 100.0
  66.         
  67.         #==============================================
  68.         if @animation_mirror
  69.           sprite.angle = (360 - cell_data[i, 4])
  70.           sprite.mirror = (cell_data[i, 5] == 0)
  71.         else  
  72.          sprite.angle = cell_data[i, 4]
  73.          sprite.mirror = (cell_data[i, 5] == 1)
  74.         end
  75.         #================================================
  76.         sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  77.         sprite.blend_type = cell_data[i, 7]
  78.       end
  79.    
  80.     end
  81.    
  82.   end
  83. end

  84. class Sprite_Battler < RPG::Sprite
  85.   
  86.   #--------------------------------------------------------------------------
  87.   # ● 刷新画面
  88.   #--------------------------------------------------------------------------
  89.   def update
  90.     super
  91.     # 战斗者为 nil 的情况下
  92.     if @battler == nil
  93.       self.bitmap = nil
  94.       loop_animation(nil)
  95.       return
  96.     end
  97.     # 文件名和色相与当前情况有差异的情况下
  98.     if @battler.battler_name != @battler_name or
  99.        @battler.battler_hue != @battler_hue
  100.       # 获取、设置位图
  101.       @battler_name = @battler.battler_name
  102.       @battler_hue = @battler.battler_hue
  103.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  104.       @width = bitmap.width
  105.       @height = bitmap.height
  106.       self.ox = @width / 2
  107.       self.oy = @height
  108.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  109.       if @battler.dead? or @battler.hidden
  110.         self.opacity = 0
  111.       end
  112.     end
  113.     # 动画 ID 与当前的情况有差异的情况下
  114.     if @battler.damage == nil and
  115.        @battler.state_animation_id != @state_animation_id
  116.       @state_animation_id = @battler.state_animation_id
  117.       loop_animation($data_animations[@state_animation_id])
  118.     end
  119.     # 应该被显示的角色的情况下
  120.     if @battler.is_a?(Game_Actor) and @battler_visible
  121.       # 不是主状态的时候稍稍降低点透明度
  122.       if $game_temp.battle_main_phase
  123.         self.opacity += 3 if self.opacity < 255
  124.       else
  125.         self.opacity -= 3 if self.opacity > 207
  126.       end
  127.     end
  128.     # 明灭
  129.     if @battler.blink
  130.       blink_on
  131.     else
  132.       blink_off
  133.     end
  134.     # 不可见的情况下
  135.     unless @battler_visible
  136.       # 出现
  137.       if not @battler.hidden and not @battler.dead? and
  138.          (@battler.damage == nil or @battler.damage_pop)
  139.         appear
  140.         @battler_visible = true
  141.       end
  142.     end
  143.     # 可见的情况下
  144.     if @battler_visible
  145.       # 逃跑
  146.       if @battler.hidden
  147.         $game_system.se_play($data_system.escape_se)
  148.         escape
  149.         @battler_visible = false
  150.       end
  151.       # 白色闪烁
  152.       if @battler.white_flash
  153.         whiten
  154.         @battler.white_flash = false
  155.       end
  156.       # 动画
  157.       if @battler.animation_id != 0
  158.         animation = $data_animations[@battler.animation_id]
  159.       
  160.         unless $scene.animation1_id == @battler.animation_id and $scene.animation2_id != @battler.animation_id
  161.       
  162.         #==================================
  163.          mirror = @battler.is_a?(Game_Enemy)? false : true
  164.         #==================================
  165.         else
  166.          mirror = false
  167.         end
  168.       
  169.         animation(animation, @battler.animation_hit,mirror)
  170.         @battler.animation_id = 0
  171.       end
  172.       # 伤害
  173.       if @battler.damage_pop
  174.         damage(@battler.damage, @battler.critical)
  175.         @battler.damage = nil
  176.         @battler.critical = false
  177.         @battler.damage_pop = false
  178.       end
  179.       # korapusu
  180.       if @battler.damage == nil and @battler.dead?
  181.         if @battler.is_a?(Game_Enemy)
  182.           $game_system.se_play($data_system.enemy_collapse_se)
  183.         else
  184.           $game_system.se_play($data_system.actor_collapse_se)
  185.         end
  186.         collapse
  187.         @battler_visible = false
  188.       end
  189.     end
  190.     # 设置活动块的坐标
  191.     self.x = @battler.screen_x
  192.     self.y = @battler.screen_y
  193.     self.z = @battler.screen_z
  194.   end
  195.   
  196.   
  197.   
  198. end  
  199. #==============================================================================
  200. # ■ Scene_Battle
  201. #------------------------------------------------------------------------------
  202. #  处理战斗画面的类。
  203. #==============================================================================

  204. class Scene_Battle
  205. #--------------------------------------------------------------------------
  206. # ● 定义实例变量
  207. #--------------------------------------------------------------------------
  208. attr_reader   :animation1_id       # 行动方动画ID
  209. attr_reader   :animation2_id        #对象动画ID
  210. end

复制代码
准备有空挖个坑玩玩..
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39922
在线时间
5799 小时
注册时间
2006-11-10
帖子
6676
9
发表于 2008-8-7 12:14:12 | 只看该作者
以下引用zhong于2008-8-6 23:45:53的发言:
[quote]额,理解错误= =

自我屏蔽.......
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
帖子
969
10
 楼主| 发表于 2008-8-8 01:32:31 | 只看该作者
错误比较严重....以上脚本并非画面的翻转,只是每单元的左右反转了而已,单元位置不变.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-24 10:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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