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

Project1

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

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2008-12-11
帖子
124
跳转到指定楼层
1
发表于 2013-7-18 14:46:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 乱摸阿弥陀佛 于 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

Lv1.梦旅人

梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
帖子
448
2
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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


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

点评

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

使用道具 举报

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
32 小时
注册时间
2013-6-28
帖子
39
5
发表于 2013-7-19 10:59:36 | 只看该作者
可以每次移动场景后都执行公共事件,设置事件位置,然后把角色坐标存到变量里,通过变量给事件设置位置。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

贵宾

6
发表于 2013-7-19 13:17:23 | 只看该作者
其实事件真的是个好东西,老是想着不用事件的话真的很浪费,楼主还是多用用事件吧
→→→牛排的小黑屋←←←
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33079
在线时间
5104 小时
注册时间
2012-11-19
帖子
4878

开拓者

7
发表于 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 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-23 06:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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