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

Project1

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

[已经解决] 横版战斗效果

[复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
2 小时
注册时间
2010-6-23
帖子
27
跳转到指定楼层
1
发表于 2010-7-4 01:33:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

梦石
0
星屑
70
在线时间
326 小时
注册时间
2010-6-20
帖子
409

开拓者

2
发表于 2010-7-4 01:49:54 | 只看该作者
如果只要这种效果的话可以不用从菜鸟横版里提取的呀,用默认素材就可以完成哦~
要做的工作就是把默认库里的“铳”动画改成横向的就好了(不知道LZ是不是这个意思?)
动画的每一帧都是可以选择角度的,所以LZ只需要在默认库的“铳”动画里双击相应的单元,在“旋转角度”里填上90度,子弹就能变成横向的啦~接下来用类似的方法设置每一帧子弹的位置和打中的效果就好了~
不知道私理解的对不对,嘻嘻..

评分

参与人数 1星屑 +400 收起 理由
「旅」 + 400 奖励~~

查看全部评分

图全叉了嗷。
回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

3
发表于 2010-7-4 02:26:09 | 只看该作者
嘛,不过横板战斗有一个不好的地方就是,攻击开始的时候没办法准确到目标.比如你站的位置和对面的不是一排....就会很悲剧的发现子弹就像转了个弯一样...从一条线突然蹦到另一条线...
Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
2 小时
注册时间
2010-6-23
帖子
27
4
 楼主| 发表于 2010-7-4 03:55:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

5
发表于 2010-7-4 05:05:04 | 只看该作者
本帖最后由 moy 于 2010-7-4 05:06 编辑

看效果的话,似乎是直接读取了角色的中心点和对象的中心点,然后就这么让动画移动过去的样子......脚本不太会,不知道具体应该怎么改.
本来倒是想看看的....结果自己找了找就几乎把整个脚本挪出来了=. =果然是实力不够看什么都要啊...
不过核心思想应该在这一段:

  1.   #--------------------------------------------------------------------------
  2.   # ● 遠距離アニメ目標座標の計算
  3.   #--------------------------------------------------------------------------
  4.   def flying_setup
  5.     # 二度目は実行しない
  6.     return if @flying_distance != nil && !camera_correctness
  7.     if RTAB
  8.       targets = @target
  9.     else
  10.       targets = $scene.target_battlers
  11.     end
  12.     # 目的座標を計算
  13.     @f_target_x = 0
  14.     @f_target_y = 0
  15.     for t in targets
  16.       @f_target_x += t.screen_x
  17.       @f_target_y += t.screen_y
  18.     end
  19.     if targets != []
  20.       @f_target_x /= targets.size
  21.       @f_target_y /= targets.size
  22.     else
  23.       @flying_distance = 0
  24.       return
  25.     end
  26.     # 距離の計算
  27.     @flying_distance = (self.screen_x - @f_target_x).abs + (self.screen_y - @f_target_y).abs
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 遠距離アニメ
  31.   #--------------------------------------------------------------------------
  32.   def flying_animation
  33.     # 戻る
  34.     if @step != "flying" or @flying_distance.nil?
  35.       return [false,true]
  36.     end
  37.     # あらかじめ計算
  38.     self_x = self.screen_x
  39.     self_y = self.screen_y
  40.     @flying_distance = @flying_distance == 0 ? 1 : @flying_distance
  41.     n1 = @flying_wait / @flying_distance.to_f
  42.     if @flying_distance - @flying_wait > @flying_distance / 2
  43.       n2 = 1.0 + 10.0 * @flying_wait / @flying_distance.to_f
  44.     else
  45.       n2 = 1.0 + 10.0 * (@flying_distance - @flying_wait) / @flying_distance.to_f
  46.     end
  47.     if !@flying_anime[4]
  48.       # 直線移動
  49.       x = (self_x + 1.0 * (@f_target_x - self_x) * n1).to_i
  50.       y = (self_y + 1.0 * (@f_target_y - self_y) * n1).to_i
  51.     else
  52.       # 曲線移動
  53.       if !@flying_proceed_end
  54.         x = (self_x + 1.0 * (@f_target_x - self_x) * n1).to_i
  55.         y = (self_y + 1.0 * (@f_target_y - self_y) * n1 - n2**2).to_i
  56.       else
  57.         x = (self_x + 1.0 * (@f_target_x - self_x) * n1).to_i
  58.         y = (self_y + 1.0 * (@f_target_y - self_y) * n1 + n2**2).to_i
  59.       end
  60.     end
  61.     # 座標代入
  62.     @flying_x = x
  63.     @flying_y = y
  64.     # ウエイト
  65.     if !@flying_proceed_end
  66.       # 開始
  67.       @flying_proceed_start = @flying_wait == 0
  68.       @flying_wait += @flying_anime[1]
  69.       @flying_wait = [@flying_wait,@flying_distance].min
  70.       @flying_proceed_end = @flying_wait == @flying_distance
  71.     else
  72.       # 開始
  73.       @flying_return_start = @flying_wait == @flying_distance
  74.       @flying_wait -= @flying_anime[1]
  75.       @flying_wait = [@flying_wait,0].max
  76.       @flying_return_end = @flying_wait == 0
  77.     end
  78.     if @flying_anime[1] == 0
  79.       @flying_end = true
  80.     elsif !@flying_anime[2]
  81.       @flying_end = @flying_proceed_end
  82.     else
  83.       @flying_end = @flying_return_end
  84.     end
  85.     # 値を返す(アニメ開始,アニメ終了)
  86.     return [@flying_proceed_start,@flying_end]
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● 遠距離アニメ初期化
  90.   #--------------------------------------------------------------------------
  91.   def flying_clear
  92.     @flying_proceed_start = false
  93.     @flying_proceed_end = false
  94.     @flying_return_start = false
  95.     @flying_return_end = false
  96.     @flying_end = false
  97.     @flying_anime = [0,0,false]
  98.   end
复制代码

评分

参与人数 1星屑 +400 收起 理由
「旅」 + 400 奖励~~

查看全部评分

Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 03:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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