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

Project1

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

图片与地图连动

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
跳转到指定楼层
1
发表于 2009-1-23 00:29:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RPG2000 2003 有显示的图片与地图连动的选项

请问XP要怎么做

http://rpg.blue/web/htm/news727.htm 要这种样子的 多1个指令
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

包菜

梦石
0
星屑
71
在线时间
16 小时
注册时间
2008-2-20
帖子
743

第一届化妆舞会最佳表演奖

2
发表于 2009-1-25 01:09:59 | 只看该作者
说明不详细,图片与地图联动到底是指什么{/fd}
2006-2015,一晃十年。
物换星移几度秋。
又过了8年 @ 2023
——
http://rpg.blue/upload_program/d/轩辕民_真是个好人啊_114275378.jpg
[b]真是个好人啊![/b]
史上无敌·十字花科·包菜君是也!XDDDD</strong>
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
3
 楼主| 发表于 2009-1-25 13:55:19 | 只看该作者
就是 图片对于地图的坐标固定
一般默认的是 图片对于画面的坐标固定


回复 支持 反对

使用道具 举报

Lv1.梦旅人

指引者

梦石
0
星屑
50
在线时间
2 小时
注册时间
2005-10-25
帖子
375
4
发表于 2009-1-25 15:58:30 | 只看该作者
就是图片和地图同步滚动

而且图片的坐标==地图的坐标
↓这是啥-- [IMG][/IMG]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
5
 楼主| 发表于 2009-1-26 23:25:36 | 只看该作者
阿类

没人帮助下吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
6
发表于 2009-1-27 01:55:21 | 只看该作者
  1. #==============================================================================
  2. # ■ Game_Picture
  3. #------------------------------------------------------------------------------
  4. #  处理图片的类。本类在类 Game_Screen ($game_screen)
  5. # 的内部使用。
  6. #==============================================================================

  7. $gd = true
  8. # 图片固定开关

  9. class Game_Picture
  10.   #--------------------------------------------------------------------------
  11.   # ● 定义实例变量
  12.   #--------------------------------------------------------------------------
  13.   attr_reader   :number                   # 图片编号
  14.   attr_reader   :name                     # 文件名
  15.   attr_reader   :origin                   # 原点
  16.   attr_reader   :x                        # X 坐标
  17.   attr_reader   :y                        # Y 坐标
  18.   attr_reader   :zoom_x                   # X 方向放大率
  19.   attr_reader   :zoom_y                   # Y 方向放大率
  20.   attr_reader   :opacity                  # 不透明度
  21.   attr_reader   :blend_type               # 合成方式
  22.   attr_reader   :tone                     # 色调
  23.   attr_reader   :angle                    # 旋转角度
  24.   #--------------------------------------------------------------------------
  25.   # ● 初始化对像
  26.   #     number : 图片编号
  27.   #--------------------------------------------------------------------------
  28.   def initialize(number)
  29.     @number = number
  30.     @name = ""
  31.     @origin = 0
  32.     @x = 0.0
  33.     @y = 0.0
  34.     @zoom_x = 100.0
  35.     @zoom_y = 100.0
  36.     @opacity = 255.0
  37.     @blend_type = 1
  38.     @duration = 0
  39.     @target_x = @x
  40.     @target_y = @y
  41.     @target_zoom_x = @zoom_x
  42.     @target_zoom_y = @zoom_y
  43.     @target_opacity = @opacity
  44.     @tone = Tone.new(0, 0, 0, 0)
  45.     @tone_target = Tone.new(0, 0, 0, 0)
  46.     @tone_duration = 0
  47.     @angle = 0
  48.     @rotate_speed = 0
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 显示图片
  52.   #     name         : 文件名
  53.   #     origin       : 原点
  54.   #     x            : X 坐标
  55.   #     y            : Y 坐标
  56.   #     zoom_x       : X 方向放大率
  57.   #     zoom_y       : Y 方向放大率
  58.   #     opacity      : 不透明度
  59.   #     blend_type   : 合成方式
  60.   #--------------------------------------------------------------------------
  61.   def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  62.     @name = name
  63.     @origin = origin
  64.     @x = x.to_f
  65.     @y = y.to_f
  66.     @zoom_x = zoom_x.to_f
  67.     @zoom_y = zoom_y.to_f
  68.     @opacity = opacity.to_f
  69.     @blend_type = blend_type
  70.     @duration = 0
  71.     @target_x = @x
  72.     @target_y = @y
  73.     @target_zoom_x = @zoom_x
  74.     @target_zoom_y = @zoom_y
  75.     @target_opacity = @opacity
  76.     @tone = Tone.new(0, 0, 0, 0)
  77.     @tone_target = Tone.new(0, 0, 0, 0)
  78.     @tone_duration = 0
  79.     @angle = 0
  80.     @rotate_speed = 0
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 移动图片
  84.   #     duration     : 时间
  85.   #     origin       : 原点
  86.   #     x            : X 坐标
  87.   #     y            : Y 坐标
  88.   #     zoom_x       : X 方向放大率
  89.   #     zoom_y       : Y 方向放大率
  90.   #     opacity      : 不透明度
  91.   #     blend_type   : 合成方式
  92.   #--------------------------------------------------------------------------
  93.   def move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  94.     @duration = duration
  95.     @origin = origin
  96.     @target_x = x.to_f
  97.     @target_y = y.to_f
  98.     @target_zoom_x = zoom_x.to_f
  99.     @target_zoom_y = zoom_y.to_f
  100.     @target_opacity = opacity.to_f
  101.     @blend_type = blend_type
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 更改旋转速度
  105.   #     speed : 旋转速度
  106.   #--------------------------------------------------------------------------
  107.   def rotate(speed)
  108.     @rotate_speed = speed
  109.   end
  110.   #--------------------------------------------------------------------------
  111.   # ● 开始更改色调
  112.   #     tone     : 色调
  113.   #     duration : 时间
  114.   #--------------------------------------------------------------------------
  115.   def start_tone_change(tone, duration)
  116.     @tone_target = tone.clone
  117.     @tone_duration = duration
  118.     if @tone_duration == 0
  119.       @tone = @tone_target.clone
  120.     end
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 消除图片
  124.   #--------------------------------------------------------------------------
  125.   def erase
  126.     @name = ""
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ● 刷新画面
  130.   #--------------------------------------------------------------------------
  131.   def update
  132.    
  133.     @real_x = @x * 128
  134.     @real_y = @y * 128

  135.     if @duration >= 1
  136.       d = @duration
  137.       @x = (@x * (d - 1) + @target_x) / d
  138.       @y = (@y * (d - 1) + @target_y) / d
  139.       @zoom_x = (@zoom_x * (d - 1) + @target_zoom_x) / d
  140.       @zoom_y = (@zoom_y * (d - 1) + @target_zoom_y) / d
  141.       @opacity = (@opacity * (d - 1) + @target_opacity) / d
  142.       @duration -= 1
  143.     end
  144.     if @tone_duration >= 1
  145.       d = @tone_duration
  146.       @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
  147.       @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
  148.       @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
  149.       @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
  150.       @tone_duration -= 1
  151.     end
  152.     if @rotate_speed != 0
  153.       @angle += @rotate_speed / 2.0
  154.       while @angle < 0
  155.         @angle += 360
  156.       end
  157.       @angle %= 360
  158.     end
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ● 获取画面 X 坐标
  162.   #--------------------------------------------------------------------------
  163.   def screen_x
  164.     # 通过实际坐标和地图的显示位置来求得画面坐标
  165.     return (@real_x - $game_map.display_x + 3) / 4 + 16
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # ● 获取画面 Y 坐标
  169.   #--------------------------------------------------------------------------
  170.   def screen_y
  171.     return (@real_y - $game_map.display_y + 3) / 4 + 32
  172.   end

  173. end
  174. #==============================================================================
  175. # ■ Sprite_Picture
  176. #------------------------------------------------------------------------------
  177. #  显示图片用的活动块。Game_Picture 类的实例监视、
  178. # 活动块状态的自动变化。
  179. #==============================================================================

  180. class Sprite_Picture < Sprite
  181.   #--------------------------------------------------------------------------
  182.   # ● 初始化对像
  183.   #     viewport : 显示端口
  184.   #     picture  : 图片 (Game_Picture)
  185.   #--------------------------------------------------------------------------
  186.   def initialize(viewport, picture)
  187.     super(viewport)
  188.     @picture = picture
  189.     update
  190.   end
  191.   #--------------------------------------------------------------------------
  192.   # ● 释放
  193.   #--------------------------------------------------------------------------
  194.   def dispose
  195.     if self.bitmap != nil
  196.       self.bitmap.dispose
  197.     end
  198.     super
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ● 更新画面
  202.   #--------------------------------------------------------------------------
  203.   def update
  204.     super
  205.     # 图片的文件名与当前的情况有差异的情况下
  206.     if @picture_name != @picture.name
  207.       # 将文件名记忆到实例变量
  208.       @picture_name = @picture.name
  209.       # 文件名不为空的情况下
  210.       if @picture_name != ""
  211.         # 获取图片图形
  212.         self.bitmap = RPG::Cache.picture(@picture_name)
  213.       end
  214.     end
  215.     # 文件名是空的情况下
  216.     if @picture_name == ""
  217.       # 将活动块设置为不可见
  218.       self.visible = false
  219.       return
  220.     end
  221.     # 将活动块设置为可见
  222.     self.visible = true
  223.     # 设置传送原点
  224.     if @picture.origin == 0
  225.       self.ox = 0
  226.       self.oy = 0
  227.     else
  228.       self.ox = self.bitmap.width / 2
  229.       self.oy = self.bitmap.height / 2
  230.     end
  231.     # 设置活动块的坐标
  232.    
  233.     if $gd
  234.     self.x = @picture.x
  235.     self.y = @picture.y
  236.       else
  237.     self.x = @picture.screen_x
  238.     self.y = @picture.screen_y
  239.   
  240.      self.z = @picture.number
  241.     # 设置放大率、不透明度、合成方式
  242.     self.zoom_x = @picture.zoom_x / 100.0
  243.     self.zoom_y = @picture.zoom_y / 100.0
  244.     self.opacity = @picture.opacity
  245.     self.blend_type = @picture.blend_type
  246.     # 设置旋转角度、色调
  247.     self.angle = @picture.angle
  248.     self.tone = @picture.tone
  249.   end
  250. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
7
 楼主| 发表于 2009-1-27 06:45:20 | 只看该作者
有1点问题 false 了 就卡住了 能指定个别图片吗$GD 好象对全图片的?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
8
发表于 2009-1-31 16:58:35 | 只看该作者
  1. #==============================================================================
  2. # ■ Game_Picture
  3. #------------------------------------------------------------------------------
  4. #  处理图片的类。本类在类 Game_Screen ($game_screen)
  5. # 的内部使用。
  6. #==============================================================================

  7. #   $game_screen.pictures[1].gd = false   # 图片的固定开关

  8. class Game_Picture
  9.   #--------------------------------------------------------------------------
  10.   # ● 定义实例变量
  11.   #--------------------------------------------------------------------------
  12.   attr_reader   :number                   # 图片编号
  13.   attr_reader   :name                     # 文件名
  14.   attr_reader   :origin                   # 原点
  15.   attr_reader   :x                        # X 坐标
  16.   attr_reader   :y                        # Y 坐标
  17.   attr_reader   :zoom_x                   # X 方向放大率
  18.   attr_reader   :zoom_y                   # Y 方向放大率
  19.   attr_reader   :opacity                  # 不透明度
  20.   attr_reader   :blend_type               # 合成方式
  21.   attr_reader   :tone                     # 色调
  22.   attr_reader   :angle                    # 旋转角度
  23.   attr_accessor :gd
  24.   #--------------------------------------------------------------------------
  25.   # ● 初始化对像
  26.   #     number : 图片编号
  27.   #--------------------------------------------------------------------------
  28.   def initialize(number)
  29.     @number = number
  30.     @name = ""
  31.     @origin = 0
  32.     @x = 0.0
  33.     @y = 0.0
  34.     @zoom_x = 100.0
  35.     @zoom_y = 100.0
  36.     @opacity = 255.0
  37.     @blend_type = 1
  38.     @duration = 0
  39.     @target_x = @x
  40.     @target_y = @y
  41.     @target_zoom_x = @zoom_x
  42.     @target_zoom_y = @zoom_y
  43.     @target_opacity = @opacity
  44.     @tone = Tone.new(0, 0, 0, 0)
  45.     @tone_target = Tone.new(0, 0, 0, 0)
  46.     @tone_duration = 0
  47.     @angle = 0
  48.     @rotate_speed = 0
  49.     @gd = true
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 刷新画面
  53.   #--------------------------------------------------------------------------
  54.   def update
  55.    
  56.     @real_x = @x * 128
  57.     @real_y = @y * 128

  58.     if @duration >= 1
  59.       d = @duration
  60.       @x = (@x * (d - 1) + @target_x) / d
  61.       @y = (@y * (d - 1) + @target_y) / d
  62.       @zoom_x = (@zoom_x * (d - 1) + @target_zoom_x) / d
  63.       @zoom_y = (@zoom_y * (d - 1) + @target_zoom_y) / d
  64.       @opacity = (@opacity * (d - 1) + @target_opacity) / d
  65.       @duration -= 1
  66.     end
  67.     if @tone_duration >= 1
  68.       d = @tone_duration
  69.       @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
  70.       @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
  71.       @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
  72.       @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
  73.       @tone_duration -= 1
  74.     end
  75.     if @rotate_speed != 0
  76.       @angle += @rotate_speed / 2.0
  77.       while @angle < 0
  78.         @angle += 360
  79.       end
  80.       @angle %= 360
  81.     end
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 获取画面 X 坐标
  85.   #--------------------------------------------------------------------------
  86.   def screen_x
  87.     # 通过实际坐标和地图的显示位置来求得画面坐标
  88.     return (@real_x - $game_map.display_x + 3) / 4 + 16
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 获取画面 Y 坐标
  92.   #--------------------------------------------------------------------------
  93.   def screen_y
  94.     return (@real_y - $game_map.display_y + 3) / 4 + 32
  95.   end

  96. end
  97. #==============================================================================
  98. # ■ Sprite_Picture
  99. #------------------------------------------------------------------------------
  100. #  显示图片用的活动块。Game_Picture 类的实例监视、
  101. # 活动块状态的自动变化。
  102. #==============================================================================

  103. class Sprite_Picture < Sprite
  104.   #--------------------------------------------------------------------------
  105.   # ● 更新画面
  106.   #--------------------------------------------------------------------------
  107.   def update
  108.     super
  109.     # 图片的文件名与当前的情况有差异的情况下
  110.     if @picture_name != @picture.name
  111.       # 将文件名记忆到实例变量
  112.       @picture_name = @picture.name
  113.       # 文件名不为空的情况下
  114.       if @picture_name != ""
  115.         # 获取图片图形
  116.         self.bitmap = RPG::Cache.picture(@picture_name)
  117.       end
  118.     end
  119.     # 文件名是空的情况下
  120.     if @picture_name == ""
  121.       # 将活动块设置为不可见
  122.       self.visible = false
  123.       return
  124.     end
  125.     # 将活动块设置为可见
  126.     self.visible = true
  127.     # 设置传送原点
  128.     if @picture.origin == 0
  129.       self.ox = 0
  130.       self.oy = 0
  131.     else
  132.       self.ox = self.bitmap.width / 2
  133.       self.oy = self.bitmap.height / 2
  134.     end
  135.     # 设置活动块的坐标
  136.    
  137.     if @picture.gd
  138.     self.x = @picture.x
  139.     self.y = @picture.y
  140.       else
  141.     self.x = @picture.screen_x
  142.     self.y = @picture.screen_y
  143.   end
  144.   
  145.      self.z = @picture.number
  146.     # 设置放大率、不透明度、合成方式
  147.     self.zoom_x = @picture.zoom_x / 100.0
  148.     self.zoom_y = @picture.zoom_y / 100.0
  149.     self.opacity = @picture.opacity
  150.     self.blend_type = @picture.blend_type
  151.     # 设置旋转角度、色调
  152.     self.angle = @picture.angle
  153.     self.tone = @picture.tone
  154.   end
  155. end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
9
 楼主| 发表于 2009-2-1 02:22:49 | 只看该作者




279          def command_231
280            # 获取图片编号
281            number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
282            # 指定方法为 [直接指定] 的情况下
283            if @parameters[3] == 0
284              x = @parameters[4]
285              y = @parameters[5]
286            # 指定方法为 [使用变量指定] 的情况下
287            else
288              x = $game_variables[@parameters[4]]
289              y = $game_variables[@parameters[5]]
290            end
291            # 显示图片
292            $game_screen.pictures[number].show(@parameters[1], @parameters[2],
293              x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
294            # 继续
295            return true
296          end
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-18 06:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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