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

Project1

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

[已经解决] 请问如何用变量显示图片啊~

[复制链接]

Lv1.梦旅人

梦石
0
星屑
549
在线时间
12 小时
注册时间
2011-10-30
帖子
4
跳转到指定楼层
1
发表于 2011-12-30 13:39:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 a200782994 于 2011-12-30 13:40 编辑

例如我想显示图片1,但是我想用 “使用变量指定”而不是”直接指定“该怎么用呢?
因为我用的是$game_screen.pictures[100].show("pet/2", 0,251,357,100,100,255,1)~因为用公共事件里的图片编号超过了50 所以只能用脚本显示图片的方法。。

求解

QQ截图20111230133647.png (6.36 KB, 下载次数: 4)

1

1

Lv2.观梦者

(?????)

梦石
0
星屑
728
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

2
发表于 2011-12-30 13:52:08 | 只看该作者
本帖最后由 各种压力的猫君 于 2011-12-30 14:18 编辑

$game_variables[变量编号]

其实要突破50我推荐另一种方法:
首先对事件解释器显示图片的部分稍做修改:
Interpreter 5 约276-296行
  1.   #--------------------------------------------------------------------------
  2.   # ● 显示图片
  3.   #--------------------------------------------------------------------------
  4.   def command_231
  5.     # 获取图片编号
  6.     number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
  7.     # 指定方法为 [直接指定] 的情况下
  8.     if @parameters[3] == 0
  9.       x = @parameters[4]
  10.       y = @parameters[5]
  11.     # 指定方法为 [使用变量指定] 的情况下
  12.     else
  13.       x = $game_variables[@parameters[4]]
  14.       y = $game_variables[@parameters[5]]
  15.     end
  16.     # 显示图片
  17.     $game_screen.pictures[number].show(@parameters[1], @parameters[2],
  18.       x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
  19.     # 继续
  20.     return true
  21.   end
复制代码
修改为:
  1.   #--------------------------------------------------------------------------
  2.   # ● 显示图片
  3.   #--------------------------------------------------------------------------
  4.   def command_231
  5.     #------------------------------------------------------------------------
  6.     # 若事件指定的图片编号不超过50,则将99号变量赋为事件指定值
  7.     $game_variables[99] = @parameters[0] if @parameters[0] <= 50
  8.     # 使用99号变量指定图片编号(这里战斗中的图片编号统一 + 50)
  9.     number = $game_variables[99] + ($game_temp.in_battle ? 50 : 0)
  10.     #------------------------------------------------------------------------
  11.     # 指定方法为 [直接指定] 的情况下
  12.     if @parameters[3] == 0
  13.       x = @parameters[4]
  14.       y = @parameters[5]
  15.     # 指定方法为 [使用变量指定] 的情况下
  16.     else
  17.       x = $game_variables[@parameters[4]]
  18.       y = $game_variables[@parameters[5]]
  19.     end
  20.     # 显示图片
  21.     $game_screen.pictures[number].show(@parameters[1], @parameters[2],
  22.       x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
  23.     # 继续
  24.     return true
  25.   end
复制代码

需要超过50的编号的时候就先给99号变量赋想要的编号值,
然后用事件显示图片50号就行了。(第9行方括号里的数字就是变量编号了,可以自己修改。)
(估计突破50上限的方法你已经知道了,但是为了其他人搜索方便我还是再啰嗦一下)
Spriteset_Map 约43-48行
  1.     # 生成图片
  2.     @picture_sprites = []
  3.     for i in 1..50
  4.       @picture_sprites.push(Sprite_Picture.new(@viewport2,
  5.         $game_screen.pictures[i]))
  6.     end
复制代码
第3行的50和1就是上下限了;
Game_Screen 约138-146行
  1.     if $game_temp.in_battle
  2.       for i in 51..100
  3.         @pictures[i].update
  4.       end
  5.     else
  6.       for i in 1..50
  7.         @pictures[i].update
  8.       end
  9.     end
复制代码
第2行的51..100是战斗中刷新的图片范围,
第6行的1..50是平时刷新的范围;
还有就是一开始修改后的事件解释器脚本中的
  1. number = $game_variables[99] + ($game_temp.in_battle ? 50 : 0)
复制代码
其中的50是战斗中图片编号增加的量。
以上3个值修改时要注意不要矛盾了。

评分

参与人数 1星屑 +332 收起 理由
「旅」 + 332 猫君辛苦了~~~

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
549
在线时间
12 小时
注册时间
2011-10-30
帖子
4
3
 楼主| 发表于 2011-12-30 14:16:00 | 只看该作者
各种压力的猫君 发表于 2011-12-30 13:52
$game_variables[变量编号]

其实要突破50我推荐另一种方法:
首先对事件解释器显示图片的部分稍做修改 ...

好像比我修改@picture_sprites 要方便很多啊 谢谢啊

点评

稍作了修改,请再看一次。若认定问题解决,请认可结帖。  发表于 2011-12-30 14:20
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 10:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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