查看: 1817|回复: 6

[已经过期] 又是关于场所移动的脚本问题

[复制链接]
梦石
0
星屑
50
在线时间
28 小时
注册时间
2008-12-11
回帖
86
发表于 2013-7-18 14:46:00 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 乱摸阿弥陀佛 于 2013-7-18 14:47 编辑

假设每张地图都有一个3号事件,缺省位置全部是在左上角,当主角每次场所移动之后3号事件就出现在主角的右边,我在 Scene_Map 脚本的 def transfer_player 中添加以下红色脚本,但每次主角场所移动后3号事件还是在老位置没动。依然不希望用事件解决

Scene_Map
  #--------------------------------------------------------------------------
  # ● 调用调试
  #--------------------------------------------------------------------------
  def call_debug
    # 清除调用调试标志
    $game_temp.debug_calling = false
    # 演奏确定 SE
    $game_system.se_play($data_system.decision_se)
    # 矫正主角姿势
    $game_player.straighten
    # 切换到调试画面
    $scene = Scene_Debug.new
  end
  #--------------------------------------------------------------------------
  # ● 主角的场所移动
  #--------------------------------------------------------------------------
  def transfer_player
   
    if $game_map.map_id != $game_temp.player_new_map_id
      a = $game_player.x
      b = $game_player.y
      $game_map.events[3].moveto(a+1, b)
    end
梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
回帖
427
发表于 2013-7-18 16:27:15 | 显示全部楼层
你要寫在最後面....
你這樣的話是在主角移動前,先把地圖的三號事件移過來,但是換場景後就無意義了....

def transfer_player
    #OOXX~~~
    #OOXX~~~
    #OOXX~~~RM內建的程式碼
    #OOXX~~~
    #OOXX~~~
    if $game_map.map_id != $game_temp.player_new_map_id
      a = $game_player.x
      b = $game_player.y
      $game_map.events[3].moveto(a+1, b)
    end
end
回复

使用道具 举报

梦石
0
星屑
50
在线时间
28 小时
注册时间
2008-12-11
回帖
86
 楼主| 发表于 2013-7-19 10:25:46 | 显示全部楼层
本帖最后由 乱摸阿弥陀佛 于 2013-7-19 10:29 编辑
joe5491 发表于 2013-7-18 16:27
你要寫在最後面....
你這樣的話是在主角移動前,先把地圖的三號事件移過來,但是換場景後就無意義了....


确实是这样,但如果这样把脚本移到最后,在角色转移到新地图的一瞬间,3号事件还是会先在地图的左上方缺省位置出现,然后才跳到角色的旁边,这样很不自然,能不能在角色转移到新地图后3号事件就已经在角色旁边,而不是从缺省位置跳过来的?

点评

你把它一行一行的往上移來測試,直到有你要的效果。  发表于 2013-7-20 02:52
回复

使用道具 举报

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

发表于 2013-7-19 10:51:05 | 显示全部楼层
个人觉得最简单的处理方法就是转换地图之前将画面色调调成全黑,转换地图之后再将色调调回,这样就事件就会在黑屏的时候移动过去了。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
32 小时
注册时间
2013-6-28
回帖
39
发表于 2013-7-19 10:59:36 | 显示全部楼层
可以每次移动场景后都执行公共事件,设置事件位置,然后把角色坐标存到变量里,通过变量给事件设置位置。
回复

使用道具 举报

梦石
0
星屑
54
在线时间
1208 小时
注册时间
2011-1-23
回帖
881

贵宾

发表于 2013-7-19 13:17:23 | 显示全部楼层
其实事件真的是个好东西,老是想着不用事件的话真的很浪费,楼主还是多用用事件吧
→→→牛排的小黑屋←←←
回复

使用道具 举报

梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-7-20 16:14:36 | 显示全部楼层
根据3L点评的方法,
发现把这段
  1. a = $game_player.x
  2.       b = $game_player.y
  3.       $game_map.events[3].moveto(a+1, b)
复制代码
放在:
# 矫正主角姿势
$game_player.straighten
下面。


评分

参与人数 1星屑 +84 收起 理由
弗雷德 + 84 我很赞同

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部