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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: andyss129
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
11
发表于 2013-4-7 09:07:21 | 只看该作者
contents.clear 或 @窗口名.clear

前者是删掉目前的作用区域,后者是清掉整个窗口,我不知道您绘图是用哪一种方式,

我是用绘背景立绘的方式:
  1. bitmap = Cache.load_bitmap("路径", 档名)
  2. rect = Rect.new(x, y, width, height)
  3. contents.blt(contents_width, contents_height, bitmap, rect, alpha)
  4. bitmap.dispose
复制代码
所以一般在画完图后 bitmap 直接 dispose 掉了,而刷新时只要有 contents.clear 图片就会一并被清掉,

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2010-10-23
帖子
30
12
 楼主| 发表于 2013-4-7 10:20:34 | 只看该作者
j433463 发表于 2013-4-7 09:07
contents.clear 或 @窗口名.clear

前者是删掉目前的作用区域,后者是清掉整个窗口,我不知道您绘图是用哪 ...

RUBY 代码复制
  1. def update_help
  2.     @help_window.set_item(item)   
  3.     @start_1 = Sprite.new
  4.  
  5.     if((item ? item.id : "") == 16)
  6.       @start_1.bitmap = Bitmap.new("Graphics/Pictures/hammer")
  7.       @start_1.x = 305
  8.       @start_1.y = 140
  9.       @start_1.bitmap.dispose
  10.     end
  11.  
  12.     if((item ? item.id : "") == 15)
  13.       @start_1.bitmap = Bitmap.new("Graphics/Pictures/object_oldkey")
  14.       @start_1.x = 305
  15.       @start_1.y = 140  
  16.     end
  17.  
  18.     if((item ? item.id : "") == 14)
  19.  
  20.       @start_1.bitmap = Bitmap.new("Graphics/Pictures/apple")
  21.       @start_1.x = 305
  22.       @start_1.y = 140
  23.     end
  24.   end



我是用这个方法去做,但是不管怎么加好像都会当掉,不然就是图片显示都没有显示,还是我这做法有问题?



目前情况是这样...

点评

参考我楼下的方式吧。  发表于 2013-4-7 11:00
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
13
发表于 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] 的值,不就很容易解决了?

评分

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

查看全部评分

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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
786
在线时间
371 小时
注册时间
2008-1-13
帖子
157
14
发表于 2013-4-7 18:33:05 | 只看该作者
用事件就能实现把
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
786
在线时间
371 小时
注册时间
2008-1-13
帖子
157
15
发表于 2013-4-7 22:43:40 | 只看该作者
物品使用设置公共事件
条件分歧
是否查看物品

插入图片(直接指定xy坐标)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-11 19:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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