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

Project1

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

再发关于战斗画面的问题。。。。。。

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2008-1-3
帖子
55
跳转到指定楼层
1
发表于 2008-2-14 01:39:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
换成640*480的战斗背景消了黑色的部分,左边的角色图为什么没有居中呢???


版务信息:本贴由楼主自主结贴~
哎,还有好多的知识要学习啊。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
2
发表于 2008-2-14 02:08:32 | 只看该作者
你没写他居中他就不居中啊- -
把脚本贴上
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2008-1-3
帖子
55
3
 楼主| 发表于 2008-2-14 03:50:38 | 只看该作者
以下引用诡异の猫于2008-2-13 18:08:32的发言:

你没写他居中他就不居中啊- -
把脚本贴上


问题在这里,我是借用鬼泣游戏里的战斗脚本.可是它里面的战斗图居中而我的没有,看过它游戏里的脚本,发现似乎没有什么宁外修改的地方。。。。。。。。到底是哪里的问题呢???
哎,还有好多的知识要学习啊。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2008-1-3
帖子
55
4
 楼主| 发表于 2008-2-14 04:13:53 | 只看该作者
用的是这个脚本,有类似这类脚本的加强吗???
  1. #==============================================================================
  2. # ■ Window_Base
  3. #==============================================================================
  4. class Window_Base < Window
  5.   #--------------------------------------------------------------------------
  6.   # ● HPメーター の描画
  7.   #--------------------------------------------------------------------------
  8.   def draw_actor_hp_meter_line(actor, x, y, width = 156, height = 4)
  9.     w = width * actor.hp / [actor.maxhp,1].max
  10.     hp_color_1 = Color.new(255, 0, 0, 192)
  11.     hp_color_2 = Color.new(255, 255, 0, 192)
  12.     self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  13.     draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  14.     x -= 1
  15.     y += (height/4).floor
  16.     self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  17.     draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  18.     x -= 1
  19.     y += (height/4).ceil
  20.     self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  21.     draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  22.     x -= 1
  23.     y += (height/4).ceil
  24.     self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  25.     draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● SPメーター の描画
  29.   #--------------------------------------------------------------------------
  30.   def draw_actor_sp_meter_line(actor, x, y, width = 156, height = 4)
  31.     w = width * actor.sp / [actor.maxsp,1].max
  32.     hp_color_1 = Color.new( 0, 0, 255, 192)
  33.     hp_color_2 = Color.new( 0, 255, 255, 192)
  34.     self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  35.     draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  36.     x -= 1
  37.     y += (height/4).floor
  38.     self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  39.     draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  40.     x -= 1
  41.     y += (height/4).ceil
  42.     self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  43.     draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  44.     x -= 1
  45.     y += (height/4).ceil
  46.     self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  47.     draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 名前の描画
  51.   #--------------------------------------------------------------------------
  52.   alias xrxs_bp7_draw_actor_name draw_actor_name
  53.   def draw_actor_name(actor, x, y)
  54.     xrxs_bp7_draw_actor_name(actor, x, y) if @draw_ban != true
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● ステートの描画
  58.   #--------------------------------------------------------------------------
  59.   alias xrxs_bp7_draw_actor_state draw_actor_state
  60.   def draw_actor_state(actor, x, y, width = 120)
  61.     xrxs_bp7_draw_actor_state(actor, x, y, width) if @draw_ban != true
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● HP の描画
  65.   #--------------------------------------------------------------------------
  66.   alias xrxs_bp7_draw_actor_hp draw_actor_hp
  67.   def draw_actor_hp(actor, x, y, width = 144)
  68.     xrxs_bp7_draw_actor_hp(actor, x, y, width) if @draw_ban != true
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● SP の描画
  72.   #--------------------------------------------------------------------------
  73.   alias xrxs_bp7_draw_actor_sp draw_actor_sp
  74.   def draw_actor_sp(actor, x, y, width = 144)
  75.     xrxs_bp7_draw_actor_sp(actor, x, y, width) if @draw_ban != true
  76.   end
  77. end
  78. #==============================================================================
  79. # ◇ 外部ライブラリ
  80. #==============================================================================
  81. class Window_Base
  82.   #--------------------------------------------------------------------------
  83.   # ● ライン描画 軽量版 by 桜雅 在土
  84.   #--------------------------------------------------------------------------
  85.   def draw_lineght(start_x, start_y, end_x, end_y, start_color)
  86.     # 描写距離の計算。大きめに直角時の長さ。
  87.     distance = (start_x - end_x).abs + (start_y - end_y).abs
  88.     # 描写開始
  89.     for i in 1..distance
  90.       x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  91.       y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  92.       self.contents.set_pixel(x, y, start_color)
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● ライン描画 by 桜雅 在土
  97.   #--------------------------------------------------------------------------
  98.   def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
  99.     # 描写距離の計算。大きめに直角時の長さ。
  100.     distance = (start_x - end_x).abs + (start_y - end_y).abs
  101.     # 描写開始
  102.     if end_color == start_color
  103.       for i in 1..distance
  104.         x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  105.         y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  106.         if width == 1
  107.           self.contents.set_pixel(x, y, start_color)
  108.         else
  109.           self.contents.fill_rect(x, y, width, width, start_color)
  110.         end
  111.       end
  112.     else
  113.       for i in 1..distance
  114.         x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  115.         y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  116.         r = start_color.red * (distance-i)/distance + end_color.red * i/distance
  117.         g = start_color.green * (distance-i)/distance + end_color.green * i/distance
  118.         b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance
  119.         a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
  120.         if width == 1
  121.           self.contents.set_pixel(x, y, Color.new(r, g, b, a))
  122.         else
  123.           self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))
  124.         end
  125.       end
  126.     end
  127.   end
  128. end


  129. #==============================================================================
  130. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  131. #==============================================================================
  132. #==============================================================================
  133. # ■ Window_BattleStatus
  134. #------------------------------------------------------------------------------
  135. #  显示战斗画面同伴状态的窗口。
  136. #==============================================================================
  137. class Window_BattleStatus < Window_Base
  138.   #--------------------------------------------------------------------------
  139.   # ● 初始化对像
  140.   #--------------------------------------------------------------------------
  141.   def initialize
  142.     super(250, 320, 160, 160)
  143.     self.opacity = 95
  144.     self.contents = Bitmap.new(width - 32, height - 32)
  145.     @level_up_flags = [false, false, false, false]
  146.     refresh
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ● 刷新
  150.   #--------------------------------------------------------------------------
  151.   def refresh
  152.     self.contents.clear
  153.     @item_max = $game_party.actors.size
  154.     actor = $game_party.actors[$status_window_contents]
  155.     actor_x = 21
  156.     self.contents.font.size = 18
  157.     draw_actor_name(actor, 4, 0)
  158.       # 歩行キャラグラフィックの描写
  159.       draw_actor_graphic(actor, actor_x - 9, 116)
  160.       # HP/SPメーターの描写
  161.       draw_actor_hp_meter_line(actor, actor_x, 52, 96, 12)
  162.       draw_actor_sp_meter_line(actor, actor_x, 84, 96, 12)
  163.       # HP数値の描写
  164.       self.contents.font.color = Color.new(0,0,0,192)
  165.       self.contents.draw_text(actor_x, 40, 96, 24, actor.hp.to_s, 2)
  166.       self.contents.font.color = actor.hp == 0 ? knockout_color :
  167.       actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  168.       self.contents.draw_text(actor_x-2, 38, 96, 24, actor.hp.to_s, 2)
  169.       # SP数値の描写
  170.       self.contents.font.color = Color.new(0,0,0,192)
  171.       self.contents.draw_text(actor_x, 72, 96, 24, actor.sp.to_s, 2)
  172.       self.contents.font.color = actor.sp == 0 ? knockout_color :
  173.       actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  174.       self.contents.draw_text(actor_x-2, 70, 96, 24, actor.sp.to_s, 2)
  175.       # 用語「HP」と用語「SP」の描写
  176.       self.contents.font.size = 18 # 用語「HP/SP」の文字の大きさ
  177.       self.contents.font.color = Color.new(0,0,0,192)
  178.       self.contents.draw_text(actor_x+2, 32, 196, 24, $data_system.words.hp)
  179.       self.contents.draw_text(actor_x+2, 64, 196, 24, $data_system.words.sp)
  180.       self.contents.font.color = system_color # 用語「HP/SP」の文字の色
  181.       self.contents.draw_text(actor_x, 30, 196, 24, $data_system.words.hp)
  182.       self.contents.draw_text(actor_x, 62, 196, 24, $data_system.words.sp)
  183.       # ステートの描写
  184.       draw_actor_state(actor, actor_x, 100)
  185.       # 値を更新
  186.   end
  187. end

  188. #==============================================================================
  189. # ■ Scene_Map
  190. #------------------------------------------------------------------------------
  191. #  处理地图画面的类。
  192. #==============================================================================

  193. class Scene_Map
  194.   #--------------------------------------------------------------------------
  195.   # ● 调用战斗
  196.   #--------------------------------------------------------------------------
  197.   alias call_new call_battle
  198.   def call_battle
  199.     call_new
  200.     $status_window_contents = 0
  201.   end
  202. end

  203. #==============================================================================
  204. # ■ Scene_Battle
  205. #------------------------------------------------------------------------------
  206. #  处理战斗画面的类。
  207. #==============================================================================
  208. class Scene_Battle  
  209.   #--------------------------------------------------------------------------
  210.   # ● 设置角色指令窗口
  211.   #--------------------------------------------------------------------------
  212.   alias:phase3_setup_command_window_2:phase3_setup_command_window
  213.   def phase3_setup_command_window
  214.     phase3_setup_command_window_2
  215.     # 设置角色指令窗口的位置
  216.     @actor_command_window.x = 250
  217.   end   
  218.   #--------------------------------------------------------------------------
  219.   # ● 开始同伴命令回合
  220.   #--------------------------------------------------------------------------
  221.   alias start_phase2_2 start_phase2
  222.   def start_phase2
  223.     $status_window_contents = 0
  224.     @status_window.refresh
  225.     start_phase2_2
  226.   end
  227.   #--------------------------------------------------------------------------
  228.   # ● 转到输入下一个角色的命令
  229.   #--------------------------------------------------------------------------
  230.   def phase3_next_actor
  231.     if @actor_index > -1 and @actor_index < $game_party.actors.size - 1
  232.       $status_window_contents = @actor_index + 1
  233.       @status_window.refresh
  234.     end
  235.     # 循环
  236.     begin
  237.       # 角色的明灭效果 OFF
  238.       if @active_battler != nil
  239.         @active_battler.blink = false
  240.       end
  241.       # 最后的角色的情况
  242.       if @actor_index == $game_party.actors.size - 1
  243.         # 开始主回合
  244.         start_phase4
  245.         return
  246.       end
  247.       # 推进角色索引
  248.       @actor_index += 1
  249.       @active_battler = $game_party.actors[@actor_index]
  250.       @active_battler.blink = true
  251.     # 如果角色是在无法接受指令的状态就再试
  252.     end until @active_battler.inputable?
  253.     # 设置角色的命令窗口
  254.     phase3_setup_command_window
  255.   end
  256.   #--------------------------------------------------------------------------
  257.   # ● 转向前一个角色的命令输入
  258.   #--------------------------------------------------------------------------
  259.   def phase3_prior_actor
  260.     if @actor_index > 0
  261.       $status_window_contents = @actor_index - 1
  262.       @status_window.refresh
  263.     end
  264.     # 循环
  265.     begin
  266.       # 角色的明灭效果 OFF
  267.       if @active_battler != nil
  268.         @active_battler.blink = false
  269.       end
  270.       # 最初的角色的情况下
  271.       if @actor_index == 0
  272.         # 开始同伴指令回合
  273.         start_phase2
  274.         return
  275.       end
  276.       # 返回角色索引
  277.       @actor_index -= 1
  278.       @active_battler = $game_party.actors[@actor_index]
  279.       @active_battler.blink = true
  280.     # 如果角色是在无法接受指令的状态就再试
  281.     end until @active_battler.inputable?
  282.     # 设置角色的命令窗口
  283.     phase3_setup_command_window
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● 刷新画面 (主回合步骤 1 : 准备行动)
  287.   #--------------------------------------------------------------------------
  288.   def update_phase4_step1
  289.     # 隐藏帮助窗口
  290.     @help_window.visible = false
  291.     # 判定胜败
  292.     if judge
  293.       # 胜利或者失败的情况下 : 过程结束
  294.       return
  295.     end
  296.     # 强制行动的战斗者不存在的情况下
  297.     if $game_temp.forcing_battler == nil
  298.       # 设置战斗事件
  299.       setup_battle_event
  300.       # 执行战斗事件中的情况下
  301.       if $game_system.battle_interpreter.running?
  302.         return
  303.       end
  304.     end
  305.     # 强制行动的战斗者存在的情况下
  306.     if $game_temp.forcing_battler != nil
  307.       # 在头部添加后移动
  308.       @action_battlers.delete($game_temp.forcing_battler)
  309.       @action_battlers.unshift($game_temp.forcing_battler)
  310.     end
  311.     # 未行动的战斗者不存在的情况下 (全员已经行动)
  312.     if @action_battlers.size == 0
  313.       # 开始同伴命令回合
  314.       start_phase2
  315.       return
  316.     end
  317.     # 初始化动画 ID 和公共事件 ID
  318.     @animation1_id = 0
  319.     @animation2_id = 0
  320.     @common_event_id = 0
  321.     # 未行动的战斗者移动到序列的头部
  322.     @active_battler = @action_battlers.shift
  323.     # 如果已经在战斗之外的情况下
  324.     if @active_battler.index == nil
  325.       return
  326.     end
  327.     # 连续伤害
  328.     if @active_battler.hp > 0 and @active_battler.slip_damage?
  329.       @active_battler.slip_damage_effect
  330.       @active_battler.damage_pop = true
  331.     end
  332.     # 自然解除状态
  333.     @active_battler.remove_states_auto
  334.     if @active_battler.is_a?(Game_Actor)
  335.       $status_window_contents = @active_battler.index
  336.     end
  337.     # 刷新状态窗口
  338.     @status_window.refresh
  339.     # 移至步骤 2
  340.     @phase4_step = 2
  341.   end
  342. end
复制代码
哎,还有好多的知识要学习啊。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
5
发表于 2008-2-14 04:28:34 | 只看该作者
使用这个脚本.
http://rpg.blue/web/htm/news440.htm
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2006-11-25
帖子
47
6
发表于 2008-2-14 04:28:43 | 只看该作者
把它的Game_Actor复制到你的游戏里
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-2 23:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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