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

Project1

 找回密码
 注册会员
搜索

VA真·八方向行走

查看数: 10642 | 评论数: 9 | 收藏 6
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2012-7-22 16:07

正文摘要:

本帖最后由 铅笔描绘的思念 于 2012-7-23 11:53 编辑 因为这个帖子(><)所以就写了咱第一个脚本。。 貌似站上木有va的真八方。。就发布啦~\(≧▽≦)/~ 并且还不不影响4方向哦。。只要把八方向的行走图重命名为原 ...

回复

Sion 发表于 2013-12-16 20:55:14
本帖最后由 Sion 于 2014-4-18 13:39 编辑

帮你优化了一下:
  1. #===============================================================================
  2. #  八方向行走
  3. #    by:铅笔描绘的思念
  4. #    在Characters里添加八方向行走图(命名规范:在四方向上的基础上+_8D)
  5. #    行走动画就为8方向的。否则就会原4方向的代替8方向的。
  6. #
  7. #    八方向:数字键盘方向对应的数字
  8. #     7   8   9
  9. #      ↖ ↑ ↗
  10. #     4← 0 →6
  11. #      ↙ ↓ ↘
  12. #     1   2   3
  13. #===============================================================================

  14. class Game_Player
  15.   def move_by_input
  16.     return if !movable? || $game_map.interpreter.running?
  17.     case Input.dir8
  18.     when 2,4,6,8; move_straight(Input.dir8)
  19.     when 1; move_diagonal(4, 2)
  20.     when 3; move_diagonal(6, 2)
  21.     when 7; move_diagonal(4, 8)
  22.     when 9; move_diagonal(6, 8)
  23.     end
  24.   end
  25. end

  26. class Game_CharacterBase

  27.   def move_diagonal(horz, vert)
  28.     @move_succeed = diagonal_passable?(x, y, horz, vert)
  29.     if @move_succeed
  30.       @x = $game_map.round_x_with_direction(@x, horz)
  31.       @y = $game_map.round_y_with_direction(@y, vert)
  32.       @real_x = $game_map.x_with_direction(@x, reverse_dir(horz))
  33.       @real_y = $game_map.y_with_direction(@y, reverse_dir(vert))
  34.       increase_steps
  35.     end
  36.     if horz == 4
  37.       vert == 2 ? set_direction(1) : set_direction(7)
  38.     else
  39.       vert == 2 ? set_direction(3) : set_direction(9)
  40.     end
  41.   end
  42. end

  43. class Sprite_Character < Sprite_Base
  44.   def dispose
  45.      bitmap.dispose if @_8d
  46.      super
  47.   end
  48.   def set_character_bitmap
  49.     if File.exist?("Graphics/Characters/#{@character_name}_8D.png")
  50.       @_8d = true
  51.       bitmap1 = Cache.character(@character_name)
  52.       bitmap2 = Cache.character(@character_name + "_8D")
  53.       width = bitmap1.width
  54.       height = bitmap1.height
  55.       rect = Rect.new(0, 0, width, height)
  56.       self.bitmap = Bitmap.new(width * 2, height * 2)
  57.       self.bitmap.blt(0, 0, bitmap1, rect)
  58.       self.bitmap.blt(width, 0, bitmap2, rect)
  59.       sign = @character_name[/^[\!\$]./]
  60.       if sign && sign.include?("$")
  61.         @cw = width / 3
  62.         @ch = height / 4
  63.       else
  64.         @cw = width / 12
  65.         @ch = height / 8
  66.       end
  67.       self.ox = @cw / 2
  68.       self.oy = @ch
  69.     else
  70.       self.bitmap = Cache.character(@character_name)
  71.       sign = @character_name[/^[\!\$]./]
  72.       if sign && sign.include?("$")
  73.         @cw = bitmap.width / 3
  74.         @ch = bitmap.height / 4
  75.       else
  76.         @cw = bitmap.width / 12
  77.         @ch = bitmap.height / 8
  78.       end
  79.       self.ox = @cw / 2
  80.       self.oy = @ch
  81.     end
  82.   end

  83.   def update_src_rect
  84.     return if @tile_id != 0
  85.     index = @character.character_index
  86.     pattern = @character.pattern < 3 ? @character.pattern : 1
  87.     sx = (index % 4 * 3 + pattern) * @cw
  88.     if @character.direction % 2 == 1
  89.       sx += self.bitmap.width / 2 if @_8d
  90.       row = case @character.direction
  91.       when 1; 0
  92.       when 3; 2
  93.       when 7; 1
  94.       when 9; 3
  95.       end
  96.       sy = (index / 4 * 4 + row) * @ch
  97.     else
  98.       sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  99.     end
  100.     self.src_rect.set(sx, sy, @cw, @ch)
  101.   end
  102. end
复制代码

点评

赞!~\(≧▽≦)/~,我还想说有瑕疵整么办,直接就看到优化版在下方了!!  发表于 2014-4-18 10:22
boby1999 发表于 2013-7-9 01:18:58
真的可以在RMVA中使用,并且与改变行走图帧数脚本不冲突。多谢!
yujunliang550 发表于 2013-4-1 15:28:10
运行不了,只能打开工程,rgss300.dll缺少

点评

那啥,你保存一下再重新打开试试。。。(本人助人无数,只为混点经验)  发表于 2014-4-16 20:51
梦到叶子了 发表于 2013-3-5 20:20:53
用了之后很卡,不建议使用。。。。。建议LZ优化一下 原本50帧的游戏运速,一下子降低到了10几帧。
曉磊 发表于 2012-7-23 16:50:39
支持楼主,太棒了,
多谢多谢啊,抱走啦~
找时间也得学学脚本什么的..总感觉好难的说~
明特·布兰马修 发表于 2012-7-22 23:56:19
原创支持
不过这样的八方向会不会拖慢游戏的速度?
实用性强不?
sszny 发表于 2012-7-22 19:34:11
我用了之后,突然变得巨卡 (我放了不少动态景物之类的)
荷包PIG蛋 发表于 2012-7-22 17:13:51
嘎嘎!!铅笔居然还是一个超级脚本触。。。
看来有空可以找You专门定制脚本了(喂喂XD
好吧。。。帮我做的那个事件标题还是谢谢你了哈~~

点评

解决了bug咯。。pig蛋君。。  发表于 2012-7-22 19:15
(´Д`)。。。好吧、。。。话说有木有BUG啊。。  发表于 2012-7-22 17:22
sszny 发表于 2012-7-22 16:53:31
好 好 十分之好
不过怎样才能添加单方向的帧数呢 ,3帧总感觉太假啊、

点评

3帧的确是有点假不过如果不是想梦幻西游一样还是没有大碍的。。  发表于 2012-7-22 16:58
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-15 12:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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