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

Project1

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

[已经解决] 【 行走图 】 使用 ___ 8个方向行走图 __ 的脚本 ?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
521 小时
注册时间
2011-12-7
帖子
305
跳转到指定楼层
1
发表于 2013-8-4 20:02:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Ceopal 于 2013-8-5 02:12 编辑


  就是那种使用8个方向的人物行走图的脚本

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

2
发表于 2013-8-4 22:22:15 | 只看该作者
  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. #  2013.4.30 Edited by me
  15. #   
  16. #    各种bug修正 + 各种效率优化
  17. #    8d行走图需用.png格式
  18. #
  19. #    这个脚本可以独立正常工作
  20. #    注意:同鼠标脚本配合使用,需要置于·八方移动补丁·上方!
  21. #
  22. #===============================================================================

  23. class Game_Player
  24.   def move_by_input
  25.     return if !movable? || $game_map.interpreter.running?
  26.     case Input.dir8
  27.     when 2,4,6,8; move_straight(Input.dir8)
  28.     when 1; move_diagonal(4, 2)
  29.     when 3; move_diagonal(6, 2)
  30.     when 7; move_diagonal(4, 8)
  31.     when 9; move_diagonal(6, 8)
  32.     end
  33.   end
  34. end

  35. class Game_CharacterBase

  36.   def move_diagonal(horz, vert)
  37.     @move_succeed = diagonal_passable?(x, y, horz, vert)
  38.     if @move_succeed
  39.       @x = $game_map.round_x_with_direction(@x, horz)
  40.       @y = $game_map.round_y_with_direction(@y, vert)
  41.       @real_x = $game_map.x_with_direction(@x, reverse_dir(horz))
  42.       @real_y = $game_map.y_with_direction(@y, reverse_dir(vert))
  43.       increase_steps
  44.     end
  45.     if horz == 4
  46.       vert == 2 ? set_direction(1) : set_direction(7)
  47.     else
  48.       vert == 2 ? set_direction(3) : set_direction(9)
  49.     end
  50.   end
  51. end

  52. class Sprite_Character < Sprite_Base

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

  88.   def update_src_rect
  89.     return if @tile_id != 0
  90.     index = @character.character_index
  91.     pattern = @character.pattern < 3 ? @character.pattern : 1
  92.     sx = (index % 4 * 3 + pattern) * @cw
  93.     if @character.direction % 2 == 1
  94.       sx += self.bitmap.width / 2 if @_8d
  95.       row = case @character.direction
  96.       when 1; 0
  97.       when 3; 2
  98.       when 7; 1
  99.       when 9; 3
  100.       end
  101.       sy = (index / 4 * 4 + row) * @ch
  102.     else
  103.       sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  104.     end
  105.     self.src_rect.set(sx, sy, @cw, @ch)
  106.   end
  107. end
复制代码
http://rpg.blue/forum.php?mod=viewthread&tid=242869 这是原帖,你可以去看看使用说明。我这个给他优化好了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 07:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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