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

Project1

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

怎么在一个区域内显示某编号的图片呢?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-6-20
帖子
87
跳转到指定楼层
1
发表于 2009-5-7 17:43:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我想用一张图片作为向上的滚动字幕,用移动图片实现。但我只想在屏幕的某部分看见它,该怎么做?

版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
2
发表于 2009-5-7 18:19:55 | 只看该作者
先在 Main 之前插入以下脚本:
unless $PRAGMA_ONCE

class Spriteset_Map
  attr :viewport4
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize
    # 生成显示端口
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 200
    @viewport3.z = 5000
    @viewport4 = Viewport.new(0, 0, 640, 480)
    @viewport4.z = 200

    # 生成元件地图
    @tilemap = Tilemap.new(@viewport1)
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
    for i in 0..6
      autotile_name = $game_map.autotile_names
      @tilemap.autotiles = RPG::Cache.autotile(autotile_name)
    end
    @tilemap.map_data = $game_map.data
    @tilemap.priorities = $game_map.priorities
    # 生成远景平面
    @panorama = Plane.new(@viewport1)
    @panorama.z = -1000
    # 生成雾平面
    @fog = Plane.new(@viewport1)
    @fog.z = 3000
    # 生成角色活动块
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events)
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
    # 生成天气
    @weather = RPG::Weather.new(@viewport1)
    # 生成图片
    @picture_sprites = []
    for i in 1..49
      @picture_sprites.push(Sprite_Picture.new(@viewport2,
        $game_screen.pictures))
    end
    @picture_sprites.push(Sprite_Picture.new(@viewport4,
        $game_screen.pictures[50]))

    # 生成计时器块
    @timer_sprite = Sprite_Timer.new
    # 刷新画面
    update
  end
  alias dispose_old dispose if !method_defined? :dispose_old
  def dispose
    dispose_old
    @viewport4.dispose
  end
end

class Scene_Map
  attr :spriteset
end

$PRAGMA_ONCE = 1
end
这是为了让第 50 号图片在一个独立的视口中显示,并在事件中获取这个视口;
之后就可以在事件中写如下脚本:
viewport = $scene.spriteset.viewport4
# 以下四个数分别是你想要部分显示图片的矩形的 x、y 坐标、宽度、高度
viewport.rect.set(100, 100, 100, 100)
# 原点 x 和原点 y 坐标
viewport.ox = 100
viewport.oy = 100
true
然后显示图片就能看到效果了~仅限于不切换到其它 Scene
另外如果之后要让第 50 号图片恢复全屏幕显示则:
viewport = $scene.spriteset.viewport2
viewport.rect.set(0, 0, 640, 480)
viewport.ox = 0
viewport.oy = 0
即可~
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-6-20
帖子
87
3
 楼主| 发表于 2009-5-8 18:54:16 | 只看该作者
呵呵!我昨天用了一个比较菜鸟的方法解决了这个问题。就是用一个黑框图片把那个挡住,还实现了淡入淡出的功能,吼吼!不过,谢谢你的解答了!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-15 20:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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