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

Project1

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

帮忙把图片血槽脚本改一下!

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-26
帖子
1544
跳转到指定楼层
1
发表于 2008-2-2 20:45:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
5
发表于 2008-2-2 21:32:51 | 只看该作者

  1. #==============================================================================
  2. # 45度战斗坐标
  3. #    来自 ikki
  4. #==============================================================================

  5. class Game_Actor < Game_Battler
  6. #--------------------------------------------------------------------------
  7. # ● 取得战斗画面的 X 坐标
  8. #--------------------------------------------------------------------------
  9. def screen_x
  10.    case self.index
  11.    when 0
  12.      return 350
  13.      when 1
  14.        return 430
  15.        when 2
  16.          return 510
  17.          when 3
  18.            return 580
  19.            else
  20.              return 600
  21.              end
  22.             end
  23. #--------------------------------------------------------------------------
  24. # ● 取得战斗画面的 Y 坐标
  25. #--------------------------------------------------------------------------
  26. def screen_y
  27.    case self.index
  28.    when 0
  29.      return 430
  30.      when 1
  31.        return 400
  32.        when 2
  33.          return 360
  34.          when 3
  35.            return 320
  36.            else
  37.              return 1000
  38.              end
  39.             end
  40. #--------------------------------------------------------------------------
  41. # ● 取得战斗画面的 Z 坐标
  42. #--------------------------------------------------------------------------
  43. def screen_z
  44.    case self.index
  45.    when 0
  46.      return 10
  47.      when 1
  48.        return 9
  49.        when 2
  50.          return 8
  51.          when 3
  52.            return 7
  53.            else   
  54.              return 0   
  55.              end
  56.             end

  57. #==============================================================================
  58. # ■ Spriteset_Battle
  59. #------------------------------------------------------------------------------
  60. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  61. # 的内部使用。
  62. #==============================================================================
  63. #==============================================================================
  64. #相关修改:45度战斗背景活动块
  65. #==============================================================================

  66. class Spriteset_Battle
  67.   #--------------------------------------------------------------------------
  68.   # ● 定义实例变量
  69.   #--------------------------------------------------------------------------
  70.   attr_reader   :viewport1                # 敌人方的显示端口
  71.   attr_reader   :viewport2                # 角色方的显示端口
  72.   #--------------------------------------------------------------------------
  73.   # ● 初始化变量
  74.   #--------------------------------------------------------------------------
  75.   def initialize
  76.     # 生成显示端口
  77.     @viewport0 = Viewport.new(0, 0, 640, 480)
  78.     @viewport1 = Viewport.new(0, 0, 640, 480)
  79.     @viewport2 = Viewport.new(0, 0, 640, 480)
  80.     @viewport3 = Viewport.new(0, 0, 640, 480)
  81.     @viewport4 = Viewport.new(0, 0, 640, 480)
  82.     @viewport2.z = 101
  83.     @viewport3.z = 200
  84.     @viewport4.z = 5000
  85.     # 生成战斗背景活动块
  86.     @battleback_sprite = Sprite.new(@viewport0)
  87.    
  88.    
  89.     @battleanimation_id = 0
  90.    
  91.     # 生成敌人活动块
  92.     @enemy_sprites = []
  93.     for enemy in $game_troop.enemies.reverse
  94.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  95.     end
  96.     # 生成敌人活动块
  97.     @actor_sprites = []
  98.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  99.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  100.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  101.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  102.     # 生成天候
  103.     @weather = RPG::Weather.new(@viewport1)
  104.     # 生成图片活动块
  105.     @picture_sprites = []
  106.     for i in 51..100
  107.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  108.         $game_screen.pictures[i]))
  109.     end
  110.     # 生成计时器块
  111.     @timer_sprite = Sprite_Timer.new
  112.     # 刷新画面
  113.     update
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 释放
  117.   #--------------------------------------------------------------------------
  118.   def dispose
  119.     # 如果战斗背景位图存在的情况下就释放
  120.     if @battleback_sprite.bitmap != nil
  121.       @battleback_sprite.bitmap.dispose
  122.     end
  123.     # 释放战斗背景活动块
  124.     @battleback_sprite.dispose
  125.     # 释放敌人活动块、角色活动块
  126.     for sprite in @enemy_sprites + @actor_sprites
  127.       sprite.dispose
  128.     end
  129.     # 释放天候
  130.     @weather.dispose
  131.     # 释放图片活动块
  132.     for sprite in @picture_sprites
  133.       sprite.dispose
  134.     end
  135.     # 释放计时器活动块
  136.     @timer_sprite.dispose
  137.     # 释放显示端口
  138.     @viewport1.dispose
  139.     @viewport2.dispose
  140.     @viewport3.dispose
  141.     @viewport4.dispose
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ● 显示效果中判定
  145.   #--------------------------------------------------------------------------
  146.   def effect?
  147.     # 如果是在显示效果中的话就返回 true
  148.     for sprite in @enemy_sprites + @actor_sprites
  149.       return true if sprite.effect?
  150.     end
  151.     return false
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ● 刷新画面
  155.   #--------------------------------------------------------------------------
  156.   def update
  157.     # 刷新角色的活动块 (对应角色的替换)
  158.     @actor_sprites[0].battler = $game_party.actors[0]
  159.     @actor_sprites[1].battler = $game_party.actors[1]
  160.     @actor_sprites[2].battler = $game_party.actors[2]
  161.     @actor_sprites[3].battler = $game_party.actors[3]

  162.      # 战斗背景的文件名与现在情况有差异的情况下
  163.     if @battleback_name != $game_temp.battleback_name
  164.       @battleback_name = $game_temp.battleback_name
  165.       if @battleback_sprite.bitmap != nil
  166.         @battleback_sprite.bitmap.dispose
  167.       end
  168.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  169.       @battleback_sprite.src_rect.set(0, 0, 640, 480)
  170.     end
  171.     # 刷新战斗者的活动块
  172.     for sprite in @enemy_sprites + @actor_sprites
  173.       sprite.update
  174.     end
  175.     # 刷新天气图形
  176.     @weather.type = $game_screen.weather_type
  177.     @weather.max = $game_screen.weather_max
  178.     @weather.update
  179.     # 刷新图片活动块
  180.     for sprite in @picture_sprites
  181.       sprite.update
  182.     end
  183.     # 刷新计时器活动块
  184.     @timer_sprite.update
  185.     # 设置画面的色调与震动位置
  186.     @viewport1.tone = $game_screen.tone
  187.     @viewport1.ox = $game_screen.shake
  188.     # 设置画面的闪烁色
  189.     @viewport4.color = $game_screen.flash_color
  190.     # 刷新显示端口
  191.     @viewport1.update
  192.     @viewport2.update
  193.     @viewport4.update
  194.   end
  195. end
  196. end

  197. #描画HP槽
  198. def HP (actor,x,y)         
  199. @bitmap3 = Bitmap.new("Graphics/Pictures/血槽/底")
  200. @src_rect3 = Rect.new(0,0,@bitmap3.width, @bitmap3.height)
  201. self.contents.blt(x,y, @bitmap3, @src_rect3)
  202. #HP显示
  203. @bitmap3 = Bitmap.new("Graphics/Pictures/血槽/hp")
  204. w3 = @bitmap3.width * actor.hp/actor.maxhp
  205. @src_rect3 = Rect.new(0,0,w3, @bitmap3.height)
  206. self.contents.blt(x+4,y+2, @bitmap3, @src_rect3)
  207. end
  208. #描画SP槽
  209. def SP (actor,x,y)
  210. @bitmap1 = Bitmap.new("Graphics/Pictures/血槽/底")
  211. @src_rect1 = Rect.new(0,0,@bitmap1.width, @bitmap1.height)
  212. self.contents.blt(x,y, @bitmap1, @src_rect1)
  213. #SP显示           
  214. @bitmap1 = Bitmap.new("Graphics/Pictures/血槽/sp")
  215. w1 = @bitmap1.width * actor.sp/actor.maxsp
  216. @src_rect1 = Rect.new(0,0,w1, @bitmap1.height)
  217. self.contents.blt(x+4,y+2, @bitmap1, @src_rect1)
  218. end

  219. #描画exp槽
  220. def exp (actor,x,y)
  221. @bitmap4 = Bitmap.new("Graphics/Pictures/血槽/底")
  222. @src_rect4 = Rect.new(0,0,@bitmap4.width, @bitmap4.height)
  223. self.contents.blt(x,y, @bitmap4, @src_rect4)
  224. #exp显示           
  225. @bitmap4 = Bitmap.new("Graphics/Pictures/血槽/exp")
  226. w4 = @bitmap4.width * actor.exp/actor.next_exp
  227. @src_rect4 = Rect.new(0,0,w4, @bitmap4.height)
  228. self.contents.blt(x+4,y+2, @bitmap4, @src_rect4)
  229. end


  230. #==============================================================================
  231. # ■ Window_BattleStatus
  232. #------------------------------------------------------------------------------
  233. #  显示战斗画面同伴状态的窗口。
  234. #==============================================================================

  235. class Window_BattleStatus < Window_Base
  236. #--------------------------------------------------------------------------
  237. # ● 初始化对像
  238. #--------------------------------------------------------------------------
  239. #$data_system_level_up_me = "Audio/ME/升级音乐"
  240. def initialize
  241.    super(0, 0, 640, 480)
  242.    self.contents = Bitmap.new(width - 10, height - 32)
  243.    self.opacity = 0
  244.    @level_up_flags = [false, false, false, false]
  245.    refresh
  246. end
  247. #--------------------------------------------------------------------------
  248. # ● 释放
  249. #--------------------------------------------------------------------------
  250. def dispose
  251.    super
  252. end
  253. #--------------------------------------------------------------------------
  254. # ● 设置升级标志
  255. #     actor_index : 角色索引
  256. #--------------------------------------------------------------------------
  257. def level_up(actor_index)
  258.    @level_up_flags[actor_index] = true
  259. end
  260. #--------------------------------------------------------------------------
  261. # ● 刷新
  262. #--------------------------------------------------------------------------
  263. def refresh
  264.    self.contents.clear
  265.    @item_max = $game_party.actors.size
  266.     for i in 0...$game_party.actors.size
  267.      actor = $game_party.actors[i]
  268.      case i
  269.        when 0
  270.         x = 310
  271.         y = 390
  272.        when 1
  273.         x = 390
  274.         y = 340
  275.        when 2
  276.         x = 480
  277.         y = 300
  278.        when 3
  279.         x = 550
  280.         y = 270
  281.       end
  282.      if @level_up_flags[i]
  283.        self.contents.font.color = normal_color
  284.        self.contents.draw_text(x, y, 80, 24, "LEVEL UP!")
  285.        Audio.me_stop
  286. #        Audio.me_play($data_system_level_up_me)
  287.      else
  288.      draw_actor_hp(actor, x-15, y-15, 80)
  289.      draw_actor_sp(actor, x-15, y+5, 80)
  290.     end
  291.    end
  292. end

  293. #--------------------------------------------------------------------------
  294. # ● 刷新画面
  295. #--------------------------------------------------------------------------
  296. def update
  297.    super
  298.    # 主界面的不透明度下降
  299.    if $game_temp.battle_main_phase
  300.      self.contents_opacity -= 50 if self.contents_opacity > 1
  301.    else
  302.      self.contents_opacity += 50 if self.contents_opacity < 255
  303.    end
  304. end
  305. end





  306. #==============================================================================
  307. # ■ Window_BattleStatus
  308. #==============================================================================
  309. class Window_BattleStatus < Window_Base
  310. #--------------------------------------------------------------------------
  311. # ● 初始化
  312. #--------------------------------------------------------------------------
  313. alias xrxs_bp2_refresh refresh
  314. def refresh
  315.    xrxs_bp2_refresh
  316.    @item_max = $game_party.actors.size
  317.     for i in 0...$game_party.actors.size
  318.      actor = $game_party.actors[i]
  319.      case i
  320.        when 0
  321.         x = 310
  322.         y = 390
  323.        when 1
  324.         x = 390
  325.         y = 340
  326.        when 2
  327.         x = 480
  328.         y = 300
  329.        when 3
  330.         x = 550
  331.         y = 270
  332.       end
  333.       ###########################一切自改##############################
  334.      HP(actor, x, y)
  335.      SP(actor, x, y + 8)
  336.      exp(actor,x,y)
  337.      #######################################一切自改###############
  338.    end
  339. end
  340. end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

4
发表于 2008-2-2 21:10:29 | 只看该作者
你的血槽图和范例工程在那里……
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-26
帖子
1544
3
 楼主| 发表于 2008-2-2 20:58:42 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

Mars-火星机械

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2713
2
发表于 2008-2-2 20:56:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-12 06:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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