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

Project1

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

夜想曲的血條圖

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
36 小时
注册时间
2006-5-22
帖子
35
跳转到指定楼层
1
发表于 2008-11-17 02:09:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
大家好。我想請問,就是夜想曲啊,它的血條圖是直式的。由上往下扣血的。

那我嘗試把圖改成橫條圖。想要由右向左扣血。結果我改了後,發現變成由左往右扣。

請問要怎麼改成從右往左扣呢?

  1. class Game_Actor < Game_Battler
  2. def now_exp
  3.    return @exp - @exp_list[@level]
  4. end
  5. def next_exp
  6.    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  7. end
  8. end
  9. #==============================================================================
  10. # ■ ARPG_Actor
  11. #------------------------------------------------------------------------------
  12. #  处理ARPG角色的类。
  13. #==============================================================================
  14. class ARPG_Actor
  15.   #--------------------------------------------------------------------------
  16.   # ● 初始化对象
  17.   #--------------------------------------------------------------------------
  18.   def initialize
  19.     @actor = $game_party.actors[0]
  20.     @hp = $game_party.actors[0].hp
  21.     @sp = $game_party.actors[0].sp
  22.     @exp = $game_party.actors[0].now_exp
  23.     @states = $game_party.actors[0].states
  24.     @parameter = []
  25.     #Mess_Text.visible = true
  26.     #Mess_Text.ini
  27.     steup
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 主处理
  31.   #--------------------------------------------------------------------------
  32.   def steup
  33.     make_sprite
  34.     if !$scene.is_a?(Scene_Key)
  35.       @key_window = Window_KeyCommand.new
  36.       @key_window.refresh($game_party.actors[0])
  37.     end
  38.     if !$scene.is_a?(Scene_Item_Key)
  39.       @item_window = Window_Item_KeyCommand.new
  40.       @item_window.refresh($game_party.actors[0])
  41.     end
  42.   end
  43.   def visible=(val)
  44.     @key_window.visible = val if !@key_window.nil?
  45.     @item_window.visible = val if !@item_window.nil?
  46.     @parameter.each{|pict|pict.visible = val}
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 释放
  50.   #--------------------------------------------------------------------------
  51.   def dispose
  52.     #Mess_Text.dispose
  53.     #Mess_Text.visible = false
  54.     @key_window.dispose if !@key_window.nil?
  55.     @item_window.dispose if !@item_window.nil?
  56.     @parameter.each{|pict|pict.dispose}
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 生成精灵的实例
  60.   #--------------------------------------------------------------------------
  61.   def make_sprite
  62.    
  63.     @parameter[0] = Sprite.new
  64.     @parameter[0].bitmap = Bitmap.new(100,100)
  65.     @parameter[0].bitmap.blt(0,0,RPG::Cache.picture("l1"),Rect.new(0,0,150,120))
  66.     @parameter[0].x = -10;@parameter[0].y = 10
  67.    
  68.     @parameter[1] = Sprite.new
  69.     @parameter[1].bitmap = Bitmap.new(150,120)
  70.     @parameter[1].bitmap.blt(0,0,RPG::Cache.picture("bar"),Rect.new(0,0,150,120))
  71.    
  72.     @parameter[2] = Sprite.new
  73.     @parameter[2].bitmap = Bitmap.new(61,83)
  74.     @parameter[2].bitmap.blt(0,0,RPG::Cache.picture("HP"),Rect.new(0,0,61,83))
  75.     h = $game_party.actors[0].hp * 82 / $game_party.actors[0].maxhp
  76.     @parameter[2].bitmap.blt(0,0,RPG::Cache.picture("HPoo"),Rect.new(0,0,61,82-h))
  77.     @parameter[2].x = 37;@parameter[2].y = 36
  78.    
  79.     @parameter[3] = Sprite.new
  80.     @parameter[3].bitmap = Bitmap.new(59,82)
  81.     @parameter[3].bitmap.blt(0,0,RPG::Cache.picture("SP"),Rect.new(0,0,59,82))
  82.     h = $game_party.actors[0].sp * 82 / $game_party.actors[0].maxsp
  83.     @parameter[3].bitmap.blt(0,0,RPG::Cache.picture("SPoo"),Rect.new(0,0,59,82-h))
  84.     @parameter[3].x = 64;@parameter[3].y = 36
  85.    
  86.     @parameter[4] = Sprite.new
  87.     @parameter[4].bitmap = Bitmap.new(59,82)
  88.     @parameter[4].bitmap.blt(0,0,RPG::Cache.picture("EXP"),Rect.new(0,0,59,82))
  89.     h = $game_party.actors[0].now_exp * 82 / $game_party.actors[0].next_exp
  90.     @parameter[4].bitmap.blt(0,0,RPG::Cache.picture("EXPoo"),Rect.new(0,0,59,82-h))
  91.     @parameter[4].x = 88;@parameter[4].y = 36
  92.    
  93.     @parameter.each{|e|e.z += 1}
  94.    
  95.     @parameter[5] = Sprite.new
  96.     @parameter[5].bitmap = Bitmap.new(128,32)
  97.     @parameter[5].x = 128
  98.     @parameter[5].y = 480 - 32
  99.    
  100.     draw_actor_state(@actor,0,0)
  101.    
  102.     @parameter.each{|e|e.z += 2}
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 描绘状态
  106.   #     actor : 角色
  107.   #     x     : 描画目标 X 坐标
  108.   #     y     : 描画目标 Y 坐标
  109.   #     width : 描画目标的宽
  110.   #--------------------------------------------------------------------------
  111.   def draw_actor_state(actor, x, y, width = 120)
  112.     pos = 0
  113.     for i in @actor.states
  114.       if $data_states[i].name == "战斗不能"
  115.         next
  116.       end
  117.       bitmap = RPG::Cache.icon($data_states[i].name)
  118.       @parameter[5].bitmap.blt(x+pos*bitmap.width, y, bitmap, Rect.new(0,0,bitmap.width,bitmap.height))
  119.     pos += 1
  120.     end
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 更新数值变化
  124.   #--------------------------------------------------------------------------
  125.   def refresh(type)
  126.     case type
  127.     when 0
  128.       @parameter[2].bitmap.clear
  129.       @parameter[2].bitmap.blt(0,0,RPG::Cache.picture("HP"),Rect.new(0,0,61,83))
  130.       h = @hp * 82 / $game_party.actors[0].maxhp
  131.       @parameter[2].bitmap.blt(0,0,RPG::Cache.picture("HPoo"),Rect.new(0,0,61,82-h))
  132.       return
  133.     when 1
  134.       @parameter[3].bitmap.clear
  135.       @parameter[3].bitmap.blt(0,0,RPG::Cache.picture("SP"),Rect.new(0,0,59,82))
  136.       h = @sp * 82 / $game_party.actors[0].maxsp
  137.       @parameter[3].bitmap.blt(0,0,RPG::Cache.picture("SPoo"),Rect.new(0,0,59,82-h))
  138.       return
  139.     when 2
  140.       @parameter[4].bitmap.clear
  141.       @parameter[4].bitmap.blt(0,0,RPG::Cache.picture("EXP"),Rect.new(0,0,59,82))
  142.       h = @exp * 82 / $game_party.actors[0].next_exp
  143.       @parameter[4].bitmap.blt(0,0,RPG::Cache.picture("EXPoo"),Rect.new(0,0,59,82-h))
  144.       return
  145.      when 3
  146.        @parameter[5].bitmap.clear
  147.        draw_actor_state(@actor,0,0)
  148.        @states = $game_party.actors[0].states
  149.       return
  150.     end
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● 刷新
  154.   #--------------------------------------------------------------------------
  155.   def update
  156.     Mess_Text.update
  157.     if $refresh["states"]
  158.       refresh(3)
  159.       $refresh["states"] = false
  160.     end
  161.     if $refresh["item"]
  162.       @item_window.refresh(@actor)
  163.       $refresh["item"] = false
  164.     end
  165.     if $refresh["skill"]
  166.       @key_window.refresh(@actor)
  167.       $refresh["skill"] = false
  168.     end
  169.     if @actor.states.size > 0
  170.       for i in @actor.states
  171.         if @actor.states_time[i] > 0
  172.           @actor.states_time[i] -= 1
  173.         end
  174.         if @actor.states_time[i] <= 0
  175.           @actor.remove_state(i)
  176.         end
  177.       end
  178.       if @actor.states.size > 0 and Graphics.frame_count%10 == 0
  179.         $game_party.check_map_slip_damage
  180.       end
  181.     end
  182.     if Input.trigger?(Input::CTRL)
  183.       Mess_Text.clear
  184.       return
  185.     end
  186.     if Input.trigger?(Input::SHIFT)
  187.       Mess_Text.visible = !Mess_Text.visible
  188.       return
  189.     end
  190.     if @hp != $game_party.actors[0].hp
  191.       if @hp > $game_party.actors[0].hp
  192.         @hp -= 1
  193.       end
  194.       if @hp < $game_party.actors[0].hp
  195.         @hp += 1
  196.       end
  197.       refresh(0)
  198.     end
  199.     if @sp != $game_party.actors[0].sp
  200.       if @sp > $game_party.actors[0].sp
  201.         @sp -= 1
  202.       end
  203.       if @sp < $game_party.actors[0].sp
  204.         @sp += 1
  205.       end
  206.       refresh(1)
  207.     end
  208.     if @exp != $game_party.actors[0].now_exp
  209.       if @exp > $game_party.actors[0].now_exp
  210.         @exp -= 1
  211.       end
  212.       if @exp < $game_party.actors[0].now_exp
  213.         @exp += 1
  214.       end
  215.       refresh(2)
  216.     end
  217.   end
  218. end
复制代码


有用過夜想曲的朋友,幫忙解答一下吧。


此贴于 2008-11-19 12:17:15 被版主darkten提醒,请楼主看到后对本贴做出回应。
『幻影新世紀』-台灣RPG製作交流網站。 http://www.50rpg.com/

Lv1.梦旅人

梦石
0
星屑
60
在线时间
41 小时
注册时间
2008-3-5
帖子
2072
2
发表于 2008-11-19 01:31:34 | 只看该作者
直接把整个东西再转180度算了
你它囧一字母君谁记得……
当时那把剑离我的喉咙只有0.01工分。可是一柱香之后,这个女主人会深深的爱上我,虽然本人平生说了无数的谎话,可是这句最有效:“你应该这么做,我也应该死。
曾经有一取ID的机会放在我面前,我没有珍惜,等我失去的时候我才后悔莫及,人世间最痛苦的事莫过于此。你的剑在我的咽喉上割下去吧!不用再犹豫了!如果上天能够给我一个再来一次的机会,我绝对会取个汉字君。如果非要给这ID加点修饰的话,我希望是……红色加粗……

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-21 12:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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