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

Project1

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

《一起来做ARPG》之三《地图行走范围扩展》

 关闭 [复制链接]

Lv1.梦旅人

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
帖子
4085

第1届短篇游戏比赛亚军

跳转到指定楼层
1
发表于 2008-10-14 06:34:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
虽然已修改视口为640 * 480,但实际行走范围仍是遵循544 * 412尺寸的17 * 13,让我们改成20 * 15。

Game_Player类:

  CENTER_X = (Standrad::SCREEN_WIDTH / 2 - 16) * 8     # 画面中央的 X 坐标 * 8
  CENTER_Y = (Standrad::SCREEN_HEIGHT / 2 - 16) * 8     # 画面中央的 Y 坐标 * 8

  #--------------------------------------------------------------------------
  # ● 设置画面中央的显示坐标
  #     x : X 坐标
  #     y : Y 坐标
  #--------------------------------------------------------------------------
  def center(x, y)
    display_x = x * 256 - CENTER_X                    # 计算坐标
    unless $game_map.loop_horizontal?                 # 不能横向滚动?
      max_x = ($game_map.width - 20) * 256            # 计算最大值
      display_x = [0, [display_x, max_x].min].max     # 修正坐标
    end
    display_y = y * 256 - CENTER_Y                    # 计算坐标
    unless $game_map.loop_vertical?                   # 不能纵向滚动?
      max_y = ($game_map.height - 15) * 256           # 计算最大值
      display_y = [0, [display_y, max_y].min].max     # 修正坐标
    end
    $game_map.set_display_pos(display_x, display_y)   # 更改显示位置
  end
Game_Map类:

  #--------------------------------------------------------------------------
  # ● 滚动设置
  #--------------------------------------------------------------------------
  def setup_scroll
    @scroll_direction = 2
    @scroll_rest = 0
    @scroll_speed = 4
    @margin_x = (width - 20) * 256 / 2      # 画面不显示部分横向 / 2
    @margin_y = (height - 15) * 256 / 2     # 画面不显示部分纵向 / 2
  end

  #--------------------------------------------------------------------------
  # ● 计算显示远景的 X 坐标
  #     bitmap : 远景位图
  #--------------------------------------------------------------------------
  def calc_parallax_x(bitmap)
    if bitmap == nil
      return 0
    elsif @parallax_loop_x
      return @parallax_x / 16
    elsif loop_horizontal?
      return 0
    else
      w1 = bitmap.width - Standrad::SCREEN_WIDTH
      w2 = @map.width * 32 - Standrad::SCREEN_WIDTH
      if w1 <= 0 or w2 <= 0
        return 0
      else
        return @parallax_x * w1 / w2 / 8
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 计算显示远景的 Y 坐标
  #     bitmap : 远景位图
  #--------------------------------------------------------------------------
  def calc_parallax_y(bitmap)
    if bitmap == nil
      return 0
    elsif @parallax_loop_y
      return @parallax_y / 16
    elsif loop_vertical?
      return 0
    else
      h1 = bitmap.height - Standrad::SCREEN_HEIGHT
      h2 = @map.height * 32 - Standrad::SCREEN_HEIGHT
      if h1 <= 0 or h2 <= 0
        return 0
      else
        return @parallax_y * h1 / h2 / 8
      end
    end
  end

  #--------------------------------------------------------------------------
  # ● 向下滚动
  #     distance : 滚动距离
  #--------------------------------------------------------------------------
  def scroll_down(distance)
    if loop_vertical?
      @display_y += distance
      @display_y %= @map.height * 256
      @parallax_y += distance
    else
      last_y = @display_y
      @display_y = [@display_y + distance, (height - 15) * 256].min
      @parallax_y += @display_y - last_y
    end
  end

  #--------------------------------------------------------------------------
  # ● 向右滚动
  #     distance : 滚动距离
  #--------------------------------------------------------------------------
  def scroll_right(distance)
    if loop_horizontal?
      @display_x += distance
      @display_x %= @map.width * 256
      @parallax_x += distance
    else
      last_x = @display_x
      @display_x = [@display_x + distance, (width - 20) * 256].min
      @parallax_x += @display_x - last_x
    end
  end

OK。


纵然千里外,我等雁归来。

Lv1.梦旅人

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
帖子
5369

贵宾

2
发表于 2008-10-14 06:56:58 | 只看该作者
难道在让VX脚本等功能慢慢完善起来??


美兽这几天很卖力地写..理所当然.顶你一下
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风雪夜不归人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2006-3-7
帖子
6721

贵宾

3
发表于 2008-10-14 22:55:33 | 只看该作者
看不明白……支持一个- -
有些人,到了七八月份就会诈尸。
宫斗,是女生永远的爱。
冷门,是本人不变的欲。
作弊,是玩家自由的痛。
练级,是橙光割舍的情。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
4
发表于 2008-10-15 11:53:54 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-5
帖子
730
5
发表于 2008-10-15 18:17:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
6
发表于 2008-10-15 22:51:10 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-5
帖子
730
7
发表于 2008-10-16 06:48:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-26
帖子
151
8
发表于 2008-11-11 20:30:39 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-8 04:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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