Project1

标题: 角色30度移动的探讨 [打印本页]

作者: 勇敢的馒头    时间: 2011-1-8 11:40
标题: 角色30度移动的探讨
本帖最后由 勇敢的馒头 于 2011-1-8 11:41 编辑

我看到很多网游虽然标明是45度的游戏,但实际上他们的地图是差不多30度左右的视角

我们现在的45度脚本来制作游戏,和画地图,其实出来的效果是每格为32X32这样的
而普通的网游和现在市面上的45度游戏,地图则是 64X32


我们真正能做到的效果其实是这样,GBA《我们的太阳》


网游

我就在想,能否也改变RM的行走度数,让人物也像网游那样30度行走

我简单修改了2个地方的数值,就可以实现

Game_Character 3 第101-174替换如下
  1. #--------------------------------------------------------------------------
  2.   # ● 向左下移动
  3.   #--------------------------------------------------------------------------
  4.   def move_lower_left
  5.     # 没有固定面向的场合
  6.     unless @direction_fix
  7.       # 朝向是右的情况下适合的面是左面、朝向是上的情况下适合的面是下面
  8.       @direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction)
  9.     end
  10.     # 下→左、左→下 的通道可以通行的情况下
  11.     if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 4)) or
  12.        (passable?(@x, @y, 4) and passable?(@x - 1, @y, 2))
  13.       # 更新坐标
  14.       @x -= 0.2
  15.       @y += 0.1
  16.       # 增加步数
  17.       increase_steps
  18.     end
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 向右下移动
  22.   #--------------------------------------------------------------------------
  23.   def move_lower_right
  24.     # 没有固定面向的场合
  25.     unless @direction_fix
  26.       # 朝向是右的情况下适合的面是左面、朝向是上的情况下适合的面是下面
  27.       @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
  28.     end
  29.     # 下→右、右→下 的通道可以通行的情况下
  30.     if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 6)) or
  31.        (passable?(@x, @y, 6) and passable?(@x + 1, @y, 2))
  32.       # 更新坐标
  33.       @x += 0.2
  34.       @y += 0.1
  35.       # 增加步数
  36.       increase_steps
  37.     end
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 向左上移动
  41.   #--------------------------------------------------------------------------
  42.   def move_upper_left
  43.     # 没有固定面向的场合
  44.     unless @direction_fix
  45.       # 朝向是右的情况下适合的面是左面、朝向是上的情况下适合的面是下面
  46.       @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)
  47.     end
  48.     # 上→左、左→上 的通道可以通行的情况下
  49.     if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 4)) or
  50.        (passable?(@x, @y, 4) and passable?(@x - 1, @y, 8))
  51.       # 更新坐标
  52.       @x -= 0.2
  53.       @y -= 0.1
  54.       # 增加步数
  55.       increase_steps
  56.     end
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 向右上移动
  60.   #--------------------------------------------------------------------------
  61.   def move_upper_right
  62.     # 没有固定面向的场合
  63.     unless @direction_fix
  64.       # 朝向是右的情况下适合的面是左面、朝向是上的情况下适合的面是下面
  65.       @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
  66.     end
  67.     # 上→右、右→上 的通道可以通行的情况下
  68.     if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 6)) or
  69.        (passable?(@x, @y, 6) and passable?(@x + 1, @y, 8))
  70.       # 更新坐标
  71.       @x += 0.2
  72.       @y -= 0.1
  73.       # 增加步数
  74.       increase_steps
  75.     end
  76.   end
复制代码
Game_Player  212-222 替换如下
  1.       case Input.dir8
  2.       when 1
  3.         move_lower_left
  4.       when 2
  5.         move_down
  6.       when 3
  7.         move_lower_right  
  8.       when 4
  9.         move_left
  10.       when 6
  11.         move_right
  12.       when 7
  13.         move_upper_left  
  14.       when 8
  15.         move_up
  16.       when 9
  17.         move_upper_right  
  18.       end
  19.     end
复制代码
就可以实现效果,但是目前BUG多多,求各位一起修改成完整版

30度行走菜鸟BUG初版
30度行走.rar (187.37 KB, 下载次数: 121)
作者: 星之璇    时间: 2011-1-8 12:43
LZ……这个的确就叫45%,不是指图块的角度,而是俯视的角度
作者: =旋-律=    时间: 2011-1-8 12:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: fux2    时间: 2011-1-8 14:29
如果不重写passable?当然会抽
作者: juziye    时间: 2011-1-8 15:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: 勇敢的馒头    时间: 2011-1-8 17:10
http://hi.baidu.com/%BA%DA%B5%C4 ... f53a63d0164e9c.html

这里有一帖帖子,说的是45度地图的算法,不知道是什么程序语言编写的,不过不知道是不是应该有所启发?
作者: enghao_lim    时间: 2011-1-8 21:51
格子的移动只是一些基本的算法,不过通行判断等其他的就稍复杂。
要完美做到几乎等于重写,比起来像素一点还简单些。
作者: uufo    时间: 2011-1-8 23:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: 勇敢的馒头    时间: 2011-1-14 14:36
本帖最后由 勇敢的馒头 于 2011-1-14 14:54 编辑

有没有什么办法实现呢?重写passable很复杂?
不改变原有的规则,而改变视角,比如伪3D那个脚本是不是也算是一个方法呢?
作者: 九夜神尊    时间: 2011-1-14 15:11
个人觉得事情没这么复杂!
改变一下地图的显示方式然后通行等就按原来的规则吧!
作者: lovemilk15    时间: 2011-1-15 10:48
本帖最后由 lovemilk15 于 2011-1-15 10:52 编辑
勇敢的馒头 发表于 2011-1-14 14:36
有没有什么办法实现呢?重写passable很复杂?
不改变原有的规则,而改变视角,比如伪3D那个脚本是不是也算 ...


那假如不改變原有規則,改變方向鍵上下左右是往30度的方向飄去呢
(這樣說會不會很難懂,..)
例如:仙劍DOS版的那種走法
只走四個方向(30度)設定通行應該可以簡單很多?!

不曉得是筆電沒有八個方向鍵的關係還是怎樣
你的30度腳本走起來人物抖抖的,有人願意加入討論嗎XD
作者: 勇敢的馒头    时间: 2011-1-15 15:00
本帖最后由 勇敢的馒头 于 2011-1-15 15:02 编辑
lovemilk15 发表于 2011-1-15 10:48
那假如不改變原有規則,改變方向鍵上下左右是往30度的方向飄去呢
(這樣說會不會很難懂,..)
例如:仙劍DOS版 ...


我今天看了下那个伪3D的,那个太过复杂,把植物什么都立体了,而且可以转变视角,缩进什么的,那个太复杂了,如果能精简下只要能设置旋转的角度,然后配合双远景的,那2D的效果就都能实现了~

查看伪3D打幽灵,去掉那个边界重复的就可以
http://rpg.blue/forum.php?mod=vi ... 7&fromuid=93874


抖的问题。。。是正常的




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1