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

Project1

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

sprite上面描绘文字的问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
95
在线时间
49 小时
注册时间
2006-5-7
帖子
526
跳转到指定楼层
1
发表于 2007-8-13 22:20:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
描绘这部分一直不懂,特来请教
这个问题是在修改全局cp条http://rpg.blue/web/htm/news474.htm时出现的
默认的cp描绘如下
  1. # ▼▲▼ XRXS65A. CP制御ターンシステム「シンセ・ゲージ」 ▼▲▼ built201202
  2. # by 桜雅 在土

  3. #==============================================================================
  4. # □ カスタマイズポイント
  5. #==============================================================================
  6. class XRXS65A
  7.   #--------------------------------------------------------------------------
  8.   # 「アイコン設定」
  9.   #--------------------------------------------------------------------------
  10.   DEFAULT = "046-Skill03" # ディフォルトアイコン
  11.   # アイコンハッシュ  記述方式 : アクターID=>アイコン名
  12.   ICONS = {
  13.     1=>"001-Weapon01",
  14.     2=>"002-Weapon02",
  15.     7=>"007-Weapon07",
  16.     8=>"008-Weapon08"
  17.   }
  18.   # アイコンハッシュE  記述方式 : エネミーID=>アイコン名
  19.   ICONE = {
  20.     1=>"046-Skill03",
  21.     2=>"047-Skill04",
  22.   }
  23.   #--------------------------------------------------------------------------
  24.   # 「シンセ・ゲージ」
  25.   #--------------------------------------------------------------------------
  26.   SKIN = "123"  # スキン
  27.   X    =  16         # X 座標
  28.   Y    =  32         # Y 座標
  29. end
  30. #==============================================================================
  31. # --- CP メーターをまとめて管理するクラス、表示関係はすべてココ --- [再定義]
  32. #==============================================================================
  33. class CP_Meters
  34.   #--------------------------------------------------------------------------
  35.   # ○ オブジェクト初期化
  36.   #--------------------------------------------------------------------------
  37.   def initialize
  38.     # シンセゲージの生成
  39.     @base = Sprite.new
  40.     @base.bitmap = RPG::Cache.windowskin(XRXS65A::SKIN).dup
  41.     @base.x = XRXS65A::X
  42.     @base.y = XRXS65A::Y
  43.     @base.z = XRXS65A::X
  44.     @width  = @base.bitmap.width
  45.     @height = @base.bitmap.height
  46.     @icon_set = []
  47.     refresh
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ○ リフレッシュ
  51.   #--------------------------------------------------------------------------
  52.   def refresh
  53.     # 生成すべきバトラーの取得
  54.     need_initializes = []
  55.     for battler in $game_party.actors + $game_troop.enemies
  56.       exist = false
  57.       for set in @icon_set
  58.         exist |= (set[1] == battler)
  59.       end
  60.       need_initializes.push(battler) unless exist
  61.     end
  62.     for battler in need_initializes
  63.       iconname = nil
  64.       if battler.is_a?(Game_Actor)
  65.         iconname = XRXS65A::ICONS[battler.id]
  66.       else
  67.         iconname = XRXS65A::ICONE[battler.id]
  68.       end
  69.       if iconname == nil
  70.         iconname = XRXS65A::DEFAULT
  71.       end
  72.       sprite = Sprite.new
  73.       sprite.bitmap = RPG::Cache.icon(iconname).dup
  74.       sprite.y = XRXS65A::Y + @height / 2 - 12
  75.       @icon_set.push([sprite, battler])
  76.     end
  77.     # 更新
  78.     for set in @icon_set
  79.       set[0].x = XRXS65A::X + @width * set[1].cp / set[1].max_cp - 12
  80.       set[0].z = set[0].x
  81.       set[0].visible = false if set[1].dead? or !set[1].exist?
  82.     end
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ○ 可視状態
  86.   #--------------------------------------------------------------------------
  87.   def visible=(b)
  88.     @base.visible = b
  89.     @icon_set.each{|set| set[0].visible = b }
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ○ 解放
  93.   #--------------------------------------------------------------------------
  94.   def dispose
  95.     @base.dispose
  96.     @icon_set.each{|set| set[0].dispose }
  97.   end
  98. end

复制代码

我想用缩小的战斗图代替图标,因此把这段
  1. for battler in need_initializes
  2.       iconname = nil
  3.       if battler.is_a?(Game_Actor)
  4.         iconname = XRXS65A::ICONS[battler.id]
  5.       else
  6.         iconname = XRXS65A::ICONE[battler.id]
  7.       end
  8.       if iconname == nil
  9.         iconname = XRXS65A::DEFAULT
  10.       end
  11.       sprite = Sprite.new
  12.       sprite.bitmap = RPG::Cache.icon(iconname).dup
  13.       sprite.y = XRXS65A::Y + @height / 2 - 12
  14.       @icon_set.push([sprite, battler])
  15.     end
复制代码

改成
  1. for battler in need_initializes
  2.       iconname = nil
  3.       if battler.is_a?(Game_Actor)
  4.         en = $data_actors[battler.id]
  5.       else
  6.         en = $data_enemies[battler.id]
  7.       end
  8.       if iconname == nil
  9.         iconname = XRXS65A::DEFAULT
  10.       end
  11.       sprite = Sprite.new
  12.       sprite.bitmap = RPG::Cache.battler(en.battler_name, en.battler_hue)
  13.       sprite.y = XRXS65A::Y + @height / 2 - 12-12
  14.       sprite.zoom_x = 32.0/sprite.bitmap.width
  15.       sprite.zoom_y = 32.0/sprite.bitmap.width
  16.        sprite.bitmap.draw_text(0,32,128,32,en.name)
  17.       @icon_set.push([sprite, battler])
  18.     end
复制代码

其它都没有出现问题,但是在我想用sprite.bitmap.draw_text(0,32,128,32,en.name)在cp条的图象上描绘人物名字时,在真正的战斗图上也出现了人物名字..........

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

Lv1.梦旅人

梦石
0
星屑
95
在线时间
49 小时
注册时间
2006-5-7
帖子
526
2
 楼主| 发表于 2007-8-13 22:20:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
描绘这部分一直不懂,特来请教
这个问题是在修改全局cp条http://rpg.blue/web/htm/news474.htm时出现的
默认的cp描绘如下
  1. # ▼▲▼ XRXS65A. CP制御ターンシステム「シンセ・ゲージ」 ▼▲▼ built201202
  2. # by 桜雅 在土

  3. #==============================================================================
  4. # □ カスタマイズポイント
  5. #==============================================================================
  6. class XRXS65A
  7.   #--------------------------------------------------------------------------
  8.   # 「アイコン設定」
  9.   #--------------------------------------------------------------------------
  10.   DEFAULT = "046-Skill03" # ディフォルトアイコン
  11.   # アイコンハッシュ  記述方式 : アクターID=>アイコン名
  12.   ICONS = {
  13.     1=>"001-Weapon01",
  14.     2=>"002-Weapon02",
  15.     7=>"007-Weapon07",
  16.     8=>"008-Weapon08"
  17.   }
  18.   # アイコンハッシュE  記述方式 : エネミーID=>アイコン名
  19.   ICONE = {
  20.     1=>"046-Skill03",
  21.     2=>"047-Skill04",
  22.   }
  23.   #--------------------------------------------------------------------------
  24.   # 「シンセ・ゲージ」
  25.   #--------------------------------------------------------------------------
  26.   SKIN = "123"  # スキン
  27.   X    =  16         # X 座標
  28.   Y    =  32         # Y 座標
  29. end
  30. #==============================================================================
  31. # --- CP メーターをまとめて管理するクラス、表示関係はすべてココ --- [再定義]
  32. #==============================================================================
  33. class CP_Meters
  34.   #--------------------------------------------------------------------------
  35.   # ○ オブジェクト初期化
  36.   #--------------------------------------------------------------------------
  37.   def initialize
  38.     # シンセゲージの生成
  39.     @base = Sprite.new
  40.     @base.bitmap = RPG::Cache.windowskin(XRXS65A::SKIN).dup
  41.     @base.x = XRXS65A::X
  42.     @base.y = XRXS65A::Y
  43.     @base.z = XRXS65A::X
  44.     @width  = @base.bitmap.width
  45.     @height = @base.bitmap.height
  46.     @icon_set = []
  47.     refresh
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ○ リフレッシュ
  51.   #--------------------------------------------------------------------------
  52.   def refresh
  53.     # 生成すべきバトラーの取得
  54.     need_initializes = []
  55.     for battler in $game_party.actors + $game_troop.enemies
  56.       exist = false
  57.       for set in @icon_set
  58.         exist |= (set[1] == battler)
  59.       end
  60.       need_initializes.push(battler) unless exist
  61.     end
  62.     for battler in need_initializes
  63.       iconname = nil
  64.       if battler.is_a?(Game_Actor)
  65.         iconname = XRXS65A::ICONS[battler.id]
  66.       else
  67.         iconname = XRXS65A::ICONE[battler.id]
  68.       end
  69.       if iconname == nil
  70.         iconname = XRXS65A::DEFAULT
  71.       end
  72.       sprite = Sprite.new
  73.       sprite.bitmap = RPG::Cache.icon(iconname).dup
  74.       sprite.y = XRXS65A::Y + @height / 2 - 12
  75.       @icon_set.push([sprite, battler])
  76.     end
  77.     # 更新
  78.     for set in @icon_set
  79.       set[0].x = XRXS65A::X + @width * set[1].cp / set[1].max_cp - 12
  80.       set[0].z = set[0].x
  81.       set[0].visible = false if set[1].dead? or !set[1].exist?
  82.     end
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ○ 可視状態
  86.   #--------------------------------------------------------------------------
  87.   def visible=(b)
  88.     @base.visible = b
  89.     @icon_set.each{|set| set[0].visible = b }
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ○ 解放
  93.   #--------------------------------------------------------------------------
  94.   def dispose
  95.     @base.dispose
  96.     @icon_set.each{|set| set[0].dispose }
  97.   end
  98. end

复制代码

我想用缩小的战斗图代替图标,因此把这段
  1. for battler in need_initializes
  2.       iconname = nil
  3.       if battler.is_a?(Game_Actor)
  4.         iconname = XRXS65A::ICONS[battler.id]
  5.       else
  6.         iconname = XRXS65A::ICONE[battler.id]
  7.       end
  8.       if iconname == nil
  9.         iconname = XRXS65A::DEFAULT
  10.       end
  11.       sprite = Sprite.new
  12.       sprite.bitmap = RPG::Cache.icon(iconname).dup
  13.       sprite.y = XRXS65A::Y + @height / 2 - 12
  14.       @icon_set.push([sprite, battler])
  15.     end
复制代码

改成
  1. for battler in need_initializes
  2.       iconname = nil
  3.       if battler.is_a?(Game_Actor)
  4.         en = $data_actors[battler.id]
  5.       else
  6.         en = $data_enemies[battler.id]
  7.       end
  8.       if iconname == nil
  9.         iconname = XRXS65A::DEFAULT
  10.       end
  11.       sprite = Sprite.new
  12.       sprite.bitmap = RPG::Cache.battler(en.battler_name, en.battler_hue)
  13.       sprite.y = XRXS65A::Y + @height / 2 - 12-12
  14.       sprite.zoom_x = 32.0/sprite.bitmap.width
  15.       sprite.zoom_y = 32.0/sprite.bitmap.width
  16.        sprite.bitmap.draw_text(0,32,128,32,en.name)
  17.       @icon_set.push([sprite, battler])
  18.     end
复制代码

其它都没有出现问题,但是在我想用sprite.bitmap.draw_text(0,32,128,32,en.name)在cp条的图象上描绘人物名字时,在真正的战斗图上也出现了人物名字..........

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

Lv1.梦旅人

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
帖子
4085

第1届短篇游戏比赛亚军

3
发表于 2007-8-14 17:28:50 | 只看该作者
想想那段红字起了什么作用。

for battler in need_initializes
     iconname = nil
     if battler.is_a?(Game_Actor)
       iconname = XRXS65A::ICONS[battler.id]
     else
       iconname = XRXS65A::ICONE[battler.id]
     end
     if iconname == nil
       iconname = XRXS65A::DEFAULT
     end
     sprite = Sprite.new
     sprite.bitmap = RPG::Cache.icon(iconname).dup
     sprite.y = XRXS65A::Y + @height / 2 - 12
     @icon_set.push([sprite, battler])
   end

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
纵然千里外,我等雁归来。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
95
在线时间
49 小时
注册时间
2006-5-7
帖子
526
4
 楼主| 发表于 2007-8-15 00:03:07 | 只看该作者
呃。。。查帮助查到了,多谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-27 15:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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