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

Project1

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

[已经解决] 请问如何制作道具选择出现图片?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2010-10-23
帖子
30
跳转到指定楼层
1
发表于 2013-4-6 14:55:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 andyss129 于 2013-4-7 11:13 编辑




请问我目前道具在左边显示,我想做的效果是,当我选择到了道具之后,右边就会显示我自己的图片,请问应该怎么去实现?

点评

可以厚臉皮的跟你要窗口皮膚嗎?這個好好看的說。  发表于 2013-4-6 21:54

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
来自 2楼
发表于 2013-4-7 10:58:06 | 只看该作者
本帖最后由 j433463 于 2013-4-7 11:17 编辑

或者,如果您觉得 Sprite.new 的方式比较好做,也可以这样做:

打开 Window_ItemList 脚本:
  1.   #--------------------------------------------------------------------------
  2.   # ● 更新说明内容
  3.   #--------------------------------------------------------------------------
  4.   def update_help
  5.     draw_itempic(item) #加这一行,描绘物品图
  6.     @help_window.set_item(item)
  7.   end
复制代码
然后在 Widnow_Base 中找个位置放这一段:
  1.   #--------------------------------------------------------------------------
  2.   # ● 描绘物品
  3.   #--------------------------------------------------------------------------
  4.   def draw_itempic(item)
  5.     return if item == nil
  6.     @itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它
  7.     @itempic_sprite = Sprite.new
  8.     @itempic_sprite.bitmap = Cache.load_bitmap("Graphics/Items/", "item_#{item.id.to_s}") #依照 item.id 去读取 Graphics/Items/ 目录下的图,如 item_3.png
  9.     @itempic_sprite.x = 280
  10.     @itempic_sprite.y = 160
  11.   end
复制代码
这样子,我 ID 为 1 号的物品图就是 item_1.png,5 号就是 item_5.png,根本不会混淆,

如果您想用物品名称当作图档名,这也是可以的,把 item.id 改成 item.name,再把 item_#{item.id.to_s} 改成 item.name 而已。
  1.   #--------------------------------------------------------------------------
  2.   # ● 描绘物品
  3.   #--------------------------------------------------------------------------
  4.   def draw_itempic(item)
  5.     return if item == nil
  6.     @itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它
  7.     @itempic_sprite = Sprite.new
  8.     @itempic_sprite.bitmap = Cache.load_bitmap("Graphics/Items/", item.name) #依照 item.name 去读取 Graphics/Items/ 目录下的图
  9.     @itempic_sprite.x = 280
  10.     @itempic_sprite.y = 160
  11.   end
复制代码
整个过程很简单的,不必要再 if 判断那么多,变得好复杂。





所以,您的方式只是:

RUBY 代码复制
  1. def update_help
  2.     @help_window.set_item(item)
  3.     return if item == nil
  4.     @itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它
  5.     @start_1 = Sprite.new
  6.     @start_1.bitmap = Bitmap.new("Graphics/Pictures/" + item.name)
  7.     @start_1.x = 305
  8.     @start_1.y = 140
  9. end


这样子,或者,您觉得您的档名不是按照 item 的 id 或 name 来的,那也大可以用一个阵列先把档名排好,再取用:

RUBY 代码复制
  1. @itempic_name = [
  2.   "wider",
  3.   "helpwater",
  4.   "standet"
  5. ]
  6. def update_help
  7.     @help_window.set_item(item)
  8.     return if item == nil
  9.     @itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它
  10.     @start_1 = Sprite.new
  11.     @start_1.bitmap = Bitmap.new("Graphics/Pictures/" + @itempic_name[item.id])
  12.     @start_1.x = 305
  13.     @start_1.y = 140
  14. end


@itempic_name 预先设好,和 item.id 一致,那就直接以 item.id 取 @itempic_name[item.id] 的值,不就很容易解决了?

点评

好的,我尝试看看简便写法  发表于 2013-4-7 11:14
解决了! 非常感谢教导!!  发表于 2013-4-7 11:10

评分

参与人数 1梦石 +2 收起 理由
Mic_洛洛 + 2 精品文章

查看全部评分

修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
发表于 2013-4-6 16:47:27 | 只看该作者
你这个是对话框还是选择项?还是自己做的窗口?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
2078
在线时间
920 小时
注册时间
2012-10-18
帖子
428

开拓者

4
发表于 2013-4-6 17:06:57 | 只看该作者
能把窗口改成这样想必是有些基础了,首先要判断道具窗口指着的道具,
可以在def update里增加判断,再根据道具显示图片就行了,思路应该有了吧?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2010-10-23
帖子
30
5
 楼主| 发表于 2013-4-6 20:54:54 | 只看该作者
芙蕾娅 发表于 2013-4-6 17:06
能把窗口改成这样想必是有些基础了,首先要判断道具窗口指着的道具,
可以在def update里增加判断,再根据 ...

我知道是判断当前指着的道具然后再判断显示图片

但是我不知道如何调用判断当前道具的语法...可否请大大教学一番呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
43 小时
注册时间
2013-3-2
帖子
14
6
发表于 2013-4-6 20:58:22 | 只看该作者
是指在物品栏的时候显示物品的图标么
在设置物品的时候可以选择图像的
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
7
发表于 2013-4-6 21:33:23 | 只看该作者
在 Window_ItemList 中,最底下的更新说明内容 def update_help:
  1.   #--------------------------------------------------------------------------
  2.   # ● 更新说明内容
  3.   #--------------------------------------------------------------------------
  4.   def update_help
  5.     @help_window.set_item(item)
  6.   end
复制代码
在 () 中的 item 就是光标所在的物品,您可以在这儿加一行调用绘制物品图片。

点评

另外再补问一个,我要怎么释放掉,bitmap的内容,因为现在他图片会一直叠上去,再次感谢!!  发表于 2013-4-7 00:41
我直接將if判斷寫入 (item ? item.id : 0)就可以成功判斷了,可否解釋一下這句意思呢? 因為我直接調用item.id都會出錯  发表于 2013-4-7 00:22
例如item == 16 ,我道具選擇到這項了,但卻沒有判斷成功,因為我不知道您的方法是甚麼,還請多多指示一番!  发表于 2013-4-7 00:17
現在我問題是卡在,他顯示ID了,但我卻沒辦法利用IF去判斷,我不清楚他是數字還是甚麼? ,如果可以判斷問題就結了  发表于 2013-4-7 00:16
因為道具取得不是規則順序,所以在物品欄中不會依照順序排序,取得道具ID之後,也得判斷這ID對應的檔名,因為我要做的效果是選擇到了右邊顯示圖  发表于 2013-4-7 00:15
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2010-10-23
帖子
30
8
 楼主| 发表于 2013-4-6 22:08:12 | 只看该作者
R15 发表于 2013-4-6 20:58
是指在物品栏的时候显示物品的图标么
在设置物品的时候可以选择图像的



就是像这样选择上道具后,右边可以出现自定义的道具图片这样

目前不太知道如何抓取判断跟弄一个框架让他里面显示图片的方法...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
9
发表于 2013-4-7 01:59:22 | 只看该作者
放在这儿说吧,既然已经有 item.id 取得物品 ID,不论它怎么换位置排列,物品本身 ID 是固定的,一号物品对应一号图片,它排在第九位置依然是一号物品,依然对应一号图片,您却是要多加一层区别,按照 ID 去找档名。

(item ? item.id : 0 ) 这是三元运算式,问号左边 item 是条件,如果 item 的值是存在的,那就返回 item.id,否则就返回 0,之所以要这样,是因为一开始进入物品菜单时的瞬间,item 是 nil,因为还没有选任何物品,所以如果直接 item 会出错,因为指定物品并不存在,无法取得 item 的 id。

而您 item == 16 也是错的,item 是物件,它包含不只 ID,还有说明和名称等等,直接用 item 去和 16 比较是否相等,这要电脑拿什么去比?您应该是用 item.id 才对,但有 nil 的可能,所以要用前面的三元运算方式来避免出错。

bitmap 的问题,其实在画完时就可以 bitmap.dispose 了,如果您不 dispose,下一次画的 bitmap 又是另外的,但这和图重叠没有关系,造成重叠的原因是在刷新时没有 clear 清除画面,前面画的图没有清除,后面的图自然重叠上去了。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2010-10-23
帖子
30
10
 楼主| 发表于 2013-4-7 02:47:48 | 只看该作者
j433463 发表于 2013-4-7 01:59
放在这儿说吧,既然已经有 item.id 取得物品 ID,不论它怎么换位置排列,物品本身 ID 是固定的,一号物品对 ...

所以我是要针对哪一个去做clear? 画面? 还是bitmap? 还是sprite? 这地方我不太懂因为我好像clear都会出现错误跳出....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
198 小时
注册时间
2011-7-28
帖子
120
11
发表于 2013-4-7 04:33:02 | 只看该作者
http://rpg.blue/thread-233544-1-1.html   楼主不知道这个是不是~不过脚本我完全不懂~
还有个超级整合里有个物品栏~那个也可以显示自定的图片~就是那个物品栏改的太复杂了~要是不懂脚本可能会很麻烦~(反正我就不懂~嗳~)
http://rpg.blue/thread-238847-1-1.html 第~28个脚本~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 18:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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