查看: 3243|回复: 8

[推荐问答] 冰面怎么做?

[复制链接]
梦石
0
星屑
50
在线时间
25 小时
注册时间
2013-3-19
回帖
78
发表于 2013-3-20 12:24:56 | 显示全部楼层 |阅读模式

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

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

×
我想做一个冰面,怎么设置?
就是主角在这种地板上,只能向自己面向的方向滑行,直到撞到不能通行的物体或者离开地板才能改变方向,怎么做?
(举个例子:比如宠物小精灵里冰系会馆经常用的那种设置)

评分

参与人数 1星屑 +100 收起 理由
怪蜀黍 + 100 被收录为推荐问答,给予LZ一定奖励。.

查看全部评分

八宝粥的基叔

梦石
0
星屑
4957
在线时间
5234 小时
注册时间
2009-4-29
回帖
14054

贵宾

发表于 2013-3-20 18:42:23 | 显示全部楼层
本帖最后由 protosssonny 于 2013-3-21 11:04 编辑

教程:http://rpg.blue/thread-300206-1-1.html
范例: 冰面滑行系统.rar (240.74 KB, 下载次数: 81)
截图: 1.PNG
脚本:
[pre lang="ruby" line="1"]#==============================================================================
# ★ 冰面滑动
#------------------------------------------------------------------------------
# 作者:protosssonny
# 转载请保留脚本来源:www.66RPG.com
#--------------------------------------------------------------------------
# 请在下面设定冰面图块的ID
  Ice_Tile = [1537,1538,1539]
  
# 可以在事件脚本中输入以下命令来查看当前角色脚下的图块ID,以便确定冰面图块:
#     $game_map.show_tile_id
#==============================================================================

#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
#  处理地图的类。包含卷动以及可以通行的判断功能。本类的实例请参考 $game_map 。
#==============================================================================

class Game_Map  
  #--------------------------------------------------------------------------
  # ● 判断冰面
  #     x : X 坐标
  #     y : Y 坐标
  #--------------------------------------------------------------------------
  def ice?(x, y)
    return false unless valid?(x, y)
    return true if Ice_Tile.include?($game_map.data[x, y, 0])
  end  
  #--------------------------------------------------------------------------
  # ● 显示当前图块ID (测试用的脚本命令)
  #--------------------------------------------------------------------------
  def show_tile_id
    p $game_map.data[$game_player.x, $game_player.y, 0]
  end  
end  
#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
#  处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#==============================================================================

class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    last_real_x = @real_x
    last_real_y = @real_y
    last_moving = moving?
    if $game_map.ice?(@x, @y) # 在冰上移动
      @walk_anime = false
      move_on_ice
    else
      @walk_anime = true
    end  
    move_by_input
    super
    update_scroll(last_real_x, last_real_y)
    update_vehicle
    update_nonmoving(last_moving)
  end
  #--------------------------------------------------------------------------
  # ● 方向键移动处理
  #--------------------------------------------------------------------------
  def move_on_ice
    return unless movable?
    return if $game_map.interpreter.running?
    return if @move_failed
    case self.direction
    when 2
      move_down
    when 4
      move_left
    when 6
      move_right
    when 8
      move_up
    end
  end
end  
  #--------------------------------------------------------------------------
  # ● 判断是否奔跑中
  #--------------------------------------------------------------------------
  def dash?
    return false if @move_route_forcing
    return false if $game_map.disable_dash?
    return false if in_vehicle?
    return Input.press?(Input::A) unless $game_map.ice?(@x, @y) #加本行即可
  end
[/pre]

点评

P叔,在滑行过程中按下shift的话会加速呢,这不科学  发表于 2013-3-20 18:52

评分

参与人数 1梦石 +1 收起 理由
Luciffer + 1 认可答案

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

梦石
0
星屑
1261
在线时间
423 小时
注册时间
2011-6-30
回帖
470
发表于 2013-3-20 12:45:39 | 显示全部楼层
我有个想法,不过貌似很耗也很麻烦……
就是用事件画地板,事件执行内容是主角向前移动,在墙(也就是你想停下的地方)处执行以下条件分歧……

点评

我试试 没研究明白事件怎么弄的话再问你昂~~ 因为刚接触这个软件第二天 还不是很熟  发表于 2013-3-20 13:03
点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:disciple_sneaker@163.com
个人主页:curatorjin.github.io
回复

使用道具 举报

梦石
0
星屑
50
在线时间
13 小时
注册时间
2013-3-19
回帖
22
发表于 2013-3-20 12:50:13 | 显示全部楼层
在阁下十分熟悉条件分歧的使用的情况下,可以这么实现:
首先需要改动一点点脚本,以实现角色只能往单方向移动
在Game_Player下的309行到312行
  1.    when 2;  move_down
  2.     when 4;  move_left
  3.     when 6;  move_right
  4.     when 8;  move_up
复制代码
改为:
  1.     when 2;  
  2.       if $game_switches[1] == false  #若1号开关打开,无法向下移动,以下同理
  3.         move_down                    #开关的ID由阁下自己决定,不一定非要1-4号ID的开关
  4.       end
  5.     when 4;  
  6.       if $game_switches[2] == false
  7.         move_left
  8.       end
  9.     when 6;  
  10.       if $game_switches[3] == false
  11.         move_right
  12.       end
  13.     when 8;  
  14.       if $game_switches[4] == false
  15.         move_up
  16.       end
复制代码
这样就可以进行冰面移动路线的设置了。
举个例子,假如在某一个位置角色只能向左移动,那么就把1,3,4号开关打开即可。
而其实更多情况,还需对角色的朝向来进行判定。
由于过于麻烦,请阁下自行尝试。

点评

已经修正了,谢谢6道君提出BUG  发表于 2013-3-20 19:17
额。。。。 完全不明白 我只知道现在这个脚本被我弄的 复制了这几行代码后 连游戏都无法运行了  发表于 2013-3-20 17:29
额……滑行应该角色没有步行动画,这个要是也能关闭会更形象些喵~  发表于 2013-3-20 17:21
嗷呜,LZ似乎说滑行,就是什么键也不按也会一直往前走,直到被阻挡才停。这个目测好像只是不能按键移动,但依旧是按一下走一步呢。  发表于 2013-3-20 17:20
我想问一下这段代码怎么用? 我已经复制到脚本里了 但是不知道怎么用额  发表于 2013-3-20 17:14

评分

参与人数 2星屑 +100 收起 理由
Luciffer + 50 我很赞同
怪蜀黍 + 50 辛苦钱喵

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
23 小时
注册时间
2013-3-12
回帖
64
发表于 2013-3-20 12:51:33 | 显示全部楼层
你 说的因该是跟重装机兵里打大象的那个镇子差不多的意思,人只能在冰面上滑行,遇到障碍物才能停止,
事件的话太过复杂,冰面大的话,用事件那工程就超大了,容我考虑一下。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
25 小时
注册时间
2013-3-19
回帖
78
 楼主| 发表于 2013-3-20 17:09:45 | 显示全部楼层
0newing 发表于 2013-3-20 12:45
我有个想法,不过貌似很耗也很麻烦……
就是用事件画地板,事件执行内容是主角向前移动,在墙(也就是你想 ...

怎么用事件设置? 表示设置完后 撞墙了 角色没法拐歪了  怎么设置?

点评

在墙的地方用一下条件分歧啊……如果朝向为…………  发表于 2013-3-20 21:36
回复

使用道具 举报

梦石
0
星屑
50
在线时间
25 小时
注册时间
2013-3-19
回帖
78
 楼主| 发表于 2013-3-20 17:31:13 | 显示全部楼层
119143201 发表于 2013-3-20 12:51
你 说的因该是跟重装机兵里打大象的那个镇子差不多的意思,人只能在冰面上滑行,遇到障碍物才能停止,
事件 ...

咋个整法?

点评

太山Q了 坐等  发表于 2013-3-20 17:49
我帮你做一个,我自己正好也要用到。你等一下即可。  发表于 2013-3-20 17:33
回复

使用道具 举报

梦石
0
星屑
50
在线时间
25 小时
注册时间
2013-3-19
回帖
78
 楼主| 发表于 2013-3-20 22:42:18 | 显示全部楼层
protosssonny 发表于 2013-3-20 18:42
教程:http://rpg.blue/thread-300206-1-1.html
范例:
截图:

万分感谢~~~  感激不尽啊  这个问题折磨我一下午了  
回复

使用道具 举报

梦石
0
星屑
50
在线时间
25 小时
注册时间
2013-3-19
回帖
78
 楼主| 发表于 2013-3-20 23:21:37 | 显示全部楼层
protosssonny 发表于 2013-3-20 18:42
教程:http://rpg.blue/thread-300206-1-1.html
范例:
截图:

突然遇见一个问题  为什么我按住ctrl后 可以无视地形了? 直接从石头上跟滑冰一样就滑过去了 这是为什么啊? 不安ctrl就是该停停 该滑滑 按住ctrl就无视地形的滑了 这什么情况?

点评

哦哦 我还以为出BUG了呢 谢了  发表于 2013-3-21 10:04
这是测试模式。只有你用RPGmaker测试游戏的时候才可以用,正常玩家玩的时候是不可以的。  发表于 2013-3-20 23:31
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部