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

Project1

 找回密码
 注册会员
搜索

请问如何让事件穿过地图顶端?

查看数: 1824 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-3-31 20:32

正文摘要:

本帖最后由 美丽晨露 于 2013-4-1 19:56 编辑 设定移动事件时,事件走到地图顶端时就不会再走了。 而我就是用事件作弹幕,结果事件就卡在地图的边边了。 请问如何让事件穿过地图边缘? ...

回复

美丽晨露 发表于 2013-4-1 19:56:24
亿万星辰 发表于 2013-4-1 19:35
其实直接把远景裁剪成图块也是可以的,不必考虑图块的绘制,直接一条一条的裁剪开即可。 ...

虽然很麻烦
但是的确可以做到的
谢谢
亿万星辰 发表于 2013-4-1 19:35:17
其实直接把远景裁剪成图块也是可以的,不必考虑图块的绘制,直接一条一条的裁剪开即可。

评分

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

查看全部评分

美丽晨露 发表于 2013-4-1 18:40:15
亿万星辰 发表于 2013-4-1 18:16
那就做成图块算了~反正通行什么的都没必要设置

是将远景做成图块?
亿万星辰 发表于 2013-4-1 18:16:00
美丽晨露 发表于 2013-4-1 17:54
谢谢前辈
但是还是远景的问题?
这样做的话

那就做成图块算了~反正通行什么的都没必要设置
美丽晨露 发表于 2013-4-1 17:54:02
亿万星辰 发表于 2013-3-31 21:07
把地图上下各放大一格就可以设法解决了么……

脚本里找 ★

谢谢前辈
但是还是远景的问题?
这样做的话
640*480的远景图会被切割的
亿万星辰 发表于 2013-3-31 21:07:16
本帖最后由 亿万星辰 于 2013-4-1 12:49 编辑

把地图上下各放大一格就可以设法解决了么……

脚本里找 ★

Project1.rar

182.81 KB, 下载次数: 16

点评

答应给你看的范例  发表于 2013-4-1 12:49
嗯嗯,谢谢您。不好意思麻烦您那么多啊。  发表于 2013-3-31 23:08
这个啊。。。那就设法用脚本限制住屏幕的垂直方向的滚动好了~自己能实现的话试试看,不行了明天再做个工程  发表于 2013-3-31 23:06
这种方法我也想过的,可是远景背景图会移动的说。  发表于 2013-3-31 23:03
图块不可通行,子弹事件可以穿透  发表于 2013-3-31 22:46
hys111111 发表于 2013-3-31 21:01:23
  1. class Scene_Map
  2.   #--------------------------------------------------------------------------
  3.   # ● 可以通行判定
  4.   #     x          : X 坐标
  5.   #     y          : Y 坐标
  6.   #     d          : 方向 (0,2,4,6,8,10)
  7.   #                  ※ 0,10 = 全方向不能通行的情况的判定 (跳跃等)
  8.   #     self_event : 自己 (判定事件可以通行的情况下)
  9.   #--------------------------------------------------------------------------
  10.   def passable?(x, y, d, self_event = nil)
  11.     if self_event.name == "子弹"
  12.       return true
  13.     end
  14.     # 被给予的坐标地图外的情况下
  15.     unless valid?(x, y)
  16.       # 不能通行
  17.       return false
  18.     end
  19.     # 方向 (0,2,4,6,8,10) 与障碍物接触 (0,1,2,4,8,0) 后变换
  20.     bit = (1 << (d / 2 - 1)) & 0x0f
  21.     # 循环全部的事件
  22.     for event in events.values
  23.       # 自己以外的元件与坐标相同的情况
  24.       if event.tile_id >= 0 and event != self_event and
  25.          event.x == x and event.y == y and not event.through
  26.         # 如果障碍物的接触被设置的情况下
  27.         if @passages[event.tile_id] & bit != 0
  28.           # 不能通行
  29.           return false
  30.         # 如果全方向的障碍物的接触被设置的情况下
  31.         elsif @passages[event.tile_id] & 0x0f == 0x0f
  32.           # 不能通行
  33.           return false
  34.         # 这以外的优先度为 0 的情况下
  35.         elsif @priorities[event.tile_id] == 0
  36.           # 可以通行
  37.           return true
  38.         end
  39.       end
  40.     end
  41.     # 从层按从上到下的顺序调查循环
  42.     for i in [2, 1, 0]
  43.       # 取得元件 ID
  44.       tile_id = data[x, y, i]
  45.       # 取得元件 ID 失败
  46.       if tile_id == nil
  47.         # 不能通行
  48.         return false
  49.       # 如果障碍物的接触被设置的情况下
  50.       elsif @passages[tile_id] & bit != 0
  51.         # 不能通行
  52.         return false
  53.       # 如果全方向的障碍物的接触被设置的情况下
  54.       elsif @passages[tile_id] & 0x0f == 0x0f
  55.         # 不能通行
  56.         return false
  57.       # 这以外的优先度为 0 的情况下
  58.       elsif @priorities[tile_id] == 0
  59.         # 可以通行
  60.         return true
  61.       end
  62.     end
  63.     # 可以通行
  64.     return true
  65.   end
  66. end
复制代码
将“子弹”改成别的名字。

点评

不好意思,不奏效啊。  发表于 2013-3-31 21:22
正在看弹幕工程中·······  发表于 2013-3-31 21:11
出屏幕~~~,那不是到桌面上去咯,,呃~~~,汗!  发表于 2013-3-31 21:08
LZ的意思是要走出屏幕……  发表于 2013-3-31 21:06
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-16 13:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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