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

Project1

 找回密码
 注册会员
搜索

火枪攻击怎么显示子弹飞行轨迹:超难度问题...

查看数: 5319 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2010-7-4 18:49

正文摘要:

大家都知道怎么把默认的工程改为横板战斗吧!(只不过改了角色的坐标而已)! 例如吞食天地的战斗方式: ■ 我方   口 敌人 ■                口 ■& ...

回复

逸豫 发表于 2010-7-7 18:49:44
本帖最后由 逸豫 于 2010-7-7 19:05 编辑
  1. class Scene_Demo
  2.   def main
  3.     @tip = Sprite.new(Viewport.new(0,0,640,480))
  4.     @tip.bitmap = Bitmap.new(12*32,32)
  5.     @tip.bitmap.draw_text(0,0,12*32,32,"这只是精灵移动的演示",1)
  6.     @sprite = Sprite.new(Viewport.new(0,0,640,480))
  7.     @sprite.bitmap = Bitmap.new("Graphics/Battlers/001-Fighter01")
  8.     @start_x = 0
  9.     @start_y = 0
  10.     @sprite.x = @start_x
  11.     @sprite.y = @start_y
  12.     @final_x = 100
  13.     @final_y = 100
  14.     # 执行过渡
  15.     Graphics.transition
  16.     # 主循环
  17.     loop do
  18.       # 刷新游戏画面
  19.       Graphics.update
  20.       # 刷新输入信息
  21.       Input.update
  22.       # 刷新画面
  23.       update
  24.       # 如果切换画面就中断循环
  25.       if $scene != self
  26.         break
  27.       end
  28.     end
  29.     # 准备过渡
  30.     Graphics.freeze
  31.     @tip.dispose
  32.     @sprite.dispose
  33.   end
  34.   def update
  35.     if Input.trigger?(Input::B)
  36.       # 演奏取消 SE
  37.       $game_system.se_play($data_system.cancel_se)
  38.       # 切换的地图画面
  39.       $scene = Scene_Map.new
  40.       return
  41.     end
  42.     if @sprite.x != @final_x  #如果精灵的坐标与最终坐标不相等
  43.       @sprite.x -= 1 if @sprite.x > @final_x
  44.       @sprite.x += 1 if @sprite.x < @final_x
  45.     end
  46.     if @sprite.y != @final_y  #如果精灵的坐标与最终坐标不相等
  47.       @sprite.y -= 1 if @sprite.y > @final_y
  48.       @sprite.y += 1 if @sprite.y < @final_y
  49.     end
  50.   end
  51. end
复制代码
于是,你要的移动图片也可以来了……
  1. class Scene_Demo
  2.   def main
  3.     @tip = Sprite.new(Viewport.new(0,0,640,480))
  4.     @tip.bitmap = Bitmap.new(12*32,32)
  5.     @tip.bitmap.draw_text(0,0,12*32,32,"这只是精灵移动的演示",1)
  6.     @sprite = RPG::Sprite.new(Viewport.new(0,0,640,480))
  7.     #@sprite.bitmap = Bitmap.new("Graphics/Battlers/001-Fighter01")
  8.     @sprite.loop_animation($data_animations[5])
  9.     @start_x = 0
  10.     @start_y = 0
  11.     @sprite.x = @start_x
  12.     @sprite.y = @start_y
  13.     @final_x = 100
  14.     @final_y = 100
  15.     # 执行过渡
  16.     Graphics.transition
  17.     # 主循环
  18.     loop do
  19.       # 刷新游戏画面
  20.       Graphics.update
  21.       # 刷新输入信息
  22.       Input.update
  23.       # 刷新画面
  24.       update
  25.       # 如果切换画面就中断循环
  26.       if $scene != self
  27.         break
  28.       end
  29.     end
  30.     # 准备过渡
  31.     Graphics.freeze
  32.     @tip.dispose
  33.     @sprite.dispose
  34.   end
  35.   def update
  36.     @sprite.update
  37.     if Input.trigger?(Input::B)
  38.       # 演奏取消 SE
  39.       $game_system.se_play($data_system.cancel_se)
  40.       # 切换的地图画面
  41.       $scene = Scene_Map.new
  42.       return
  43.     end
  44.     if @sprite.x != @final_x  #如果精灵的坐标与最终坐标不相等
  45.       @sprite.x -= 1 if @sprite.x > @final_x
  46.       @sprite.x += 1 if @sprite.x < @final_x
  47.     end
  48.     if @sprite.y != @final_y  #如果精灵的坐标与最终坐标不相等
  49.       @sprite.y -= 1 if @sprite.y > @final_y
  50.       @sprite.y += 1 if @sprite.y < @final_y
  51.     end
  52.     if @sprite.x == @final_x && @sprite.y == @final_y
  53.       @sprite.loop_animation(nil)
  54.     end
  55.   end
  56. end
  57.       
复制代码
这是特别有爱的动画版……

点评

PM版主  发表于 2010-7-9 10:09
感谢 感谢 已经明白原理了! PS:怎么认可呢???  发表于 2010-7-9 09:23

评分

参与人数 2星屑 +402 收起 理由
「旅」 + 400 认可答案
失去的记忆 + 2

查看全部评分

失去的记忆 发表于 2010-7-7 15:50:47
这么好的帖子别沉了 我顶!!!!!!!!!!!!!:victory:
失去的记忆 发表于 2010-7-6 12:15:08
这个方法貌似可行,有空能坐下这个效果的范例吗?我搞不定啊!
失去的记忆 发表于 2010-7-6 09:11

我知道这个原理啊,而且也试了试,不行啊,这个轨迹很难确定,不信自己试试看!
PS:不要再和我说可以了,我自己试了N次了,不行,还请哪位大大做个范例给我,
就是移动图片也可以!只要是有角色到敌人的攻击轨迹就可以!
晴. 发表于 2010-7-6 11:23:21
最佳办法。不要用数据库做动画
其实你的动画也就一针。只是一张图片在移动而已。最后击中的动画分开写就可以了。
用脚本写。人物AB之间坐标判断动画轨迹
失去的记忆 发表于 2010-7-6 09:11:25
对一个空的Sprite(精灵)播放动画,然后移动这个空的精灵
逸豫 发表于 2010-7-5 17:15

这个方法貌似可行,有空能坐下这个效果的范例吗?我搞不定啊!


失去的记忆 发表于 2010-7-6 07:13:41
...... 哎.. 所以说我还是想用XP实现这个啊
逸豫 发表于 2010-7-5 17:15:59
对一个空的Sprite(精灵)播放动画,然后移动这个空的精灵
水镜风生 发表于 2010-7-5 17:14:12
非要实现这种效果的话,建议LZ改用RMVX,然后使用Sideview横版战斗系统,可轻易实现战斗者间的动画、图片移动。例如Sideview范例中的投掷武器……
失去的记忆 发表于 2010-7-5 16:33:29
那么请问 怎么在战斗中任意位置播放动画????? 不然怎么移动?
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-16 01:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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