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

Project1

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

[已经解决] 有关45度战斗脚本的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
127
在线时间
4 小时
注册时间
2009-8-8
帖子
3
跳转到指定楼层
1
发表于 2012-7-15 16:55:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
人物是45度的,但是底下的名字以及生命值什么的,都是横着而且有一个大大的条块,我怎么把他去掉啊?我想要把底下那变成类似仙四那种,有个名字有个头像,不想要现在这样的(现在那底下就是一开始默认那样,图片格式不对……没法上传。)

我有一个脚本可以去掉那个,可是去掉完了是一个大黑块,跟背景对不上,怎么办啊?我主要地下想弄成仙四那样。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
470 小时
注册时间
2010-6-25
帖子
316
2
发表于 2012-7-15 17:10:57 | 只看该作者
本帖最后由 腐琴琴 于 2012-7-18 15:23 编辑
Spriteset_Battle
  1. @viewport1 = Viewport.new(0, 0, 640, 320)
复制代码
  1. @battleback_sprite.src_rect.set(0, 0, 640, 320)
复制代码
把320改成480,再用640*480的战斗背景图
黑色就没了。

头像的话可以试试这个
头像图片以"人物名_f.png"保存在“Graphics\Characters”
60-69行的数字可以调整各项的位置
  1. #==============================================================================
  2. # ■ Window_Base
  3. #------------------------------------------------------------------------------
  4. #  游戏中全部窗口的超级类。
  5. #==============================================================================

  6. class Window_Base < Window
  7.   #--------------------------------------------------------------------------
  8.   # ● 图形的描绘
  9.   #     actor : 角色
  10.   #     x     : 描画目标 X 坐标
  11.   #     y     : 描画目标 Y 坐标
  12.   #--------------------------------------------------------------------------
  13.   def draw_actor_graphi(actor, x, y)
  14.     bitmap = RPG::Cache.character(actor.name+"_f.png", actor.character_hue)
  15.     cw = bitmap.width
  16.     ch = bitmap.height
  17.     src_rect = Rect.new(0, 0, cw, ch)
  18.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  19.   end
  20. end

  21. #==============================================================================
  22. # ■ Window_BattleStatus
  23. #------------------------------------------------------------------------------
  24. #  显示战斗画面同伴状态的窗口。
  25. #==============================================================================

  26. class Window_BattleStatus < Window_Base
  27.   #--------------------------------------------------------------------------
  28.   # ● 初始化对像
  29.   #--------------------------------------------------------------------------
  30.   def initialize
  31.     super(0, 320, 640, 160)
  32.     self.contents = Bitmap.new(width - 32, height - 32)
  33.     @level_up_flags = [false, false, false, false]
  34.     refresh
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 释放
  38.   #--------------------------------------------------------------------------
  39.   def dispose
  40.     super
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 设置升级标志
  44.   #     actor_index : 角色索引
  45.   #--------------------------------------------------------------------------
  46.   def level_up(actor_index)
  47.     @level_up_flags[actor_index] = true
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 刷新
  51.   #--------------------------------------------------------------------------
  52.   def refresh
  53.     self.contents.clear
  54.     @item_max = $game_party.actors.size
  55.     for i in 0...$game_party.actors.size
  56.       actor = $game_party.actors[i]
  57.       actor_x = i * 160 + 4
  58.       draw_actor_graphi(actor, 20 , 20)
  59.       draw_actor_name(actor, actor_x, 0)
  60.       draw_actor_hp(actor, actor_x, 32, 120)
  61.       draw_actor_sp(actor, actor_x, 64, 120)
  62.       if @level_up_flags[i]
  63.         self.contents.font.color = normal_color
  64.         self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
  65.       else
  66.         draw_actor_state(actor, actor_x, 96)
  67.       end
  68.     end
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 刷新画面
  72.   #--------------------------------------------------------------------------
  73.   def update
  74.     super
  75.     # 主界面的不透明度下降
  76.     if $game_temp.battle_main_phase
  77.       self.contents_opacity -= 4 if self.contents_opacity > 191
  78.     else
  79.       self.contents_opacity += 4 if self.contents_opacity < 255
  80.     end
  81.   end
  82. end
复制代码
���

回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
815
在线时间
636 小时
注册时间
2011-1-21
帖子
176
3
发表于 2012-7-18 09:07:00 | 只看该作者
腐琴琴 发表于 2012-7-15 17:10
把320改成480,再用640*480的战斗背景图
黑色就没了。

你好,请问能发一个45度的游戏制作脚本给我么?O(∩_∩)O谢谢了!!!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
470 小时
注册时间
2010-6-25
帖子
316
4
发表于 2012-7-18 15:49:44 | 只看该作者
本帖最后由 腐琴琴 于 2012-7-18 15:53 编辑

好吧……
Project6.rar (331.22 KB, 下载次数: 103)
下面这段脚本直接复制使用也可以。头像的宽度控制在60左右
  1. #==============================================================================
  2. # ■ Spriteset_Battle
  3. #------------------------------------------------------------------------------
  4. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  5. # 的内部使用。
  6. #==============================================================================

  7. class Spriteset_Battle
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_reader   :viewport1                # 敌人方的显示端口
  12.   attr_reader   :viewport2                # 角色方的显示端口
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化变量
  15.   #--------------------------------------------------------------------------
  16.   def initialize
  17.     # 生成显示端口
  18.     @viewport1 = Viewport.new(0, 0, 640, 480)
  19.     @viewport2 = Viewport.new(0, 0, 640, 480)
  20.     @viewport3 = Viewport.new(0, 0, 640, 480)
  21.     @viewport4 = Viewport.new(0, 0, 640, 480)
  22.     @viewport2.z = 101
  23.     @viewport3.z = 200
  24.     @viewport4.z = 5000
  25.     # 生成战斗背景活动块
  26.     @battleback_sprite = Sprite.new(@viewport1)
  27.     # 生成敌人活动块
  28.     @enemy_sprites = []
  29.     for enemy in $game_troop.enemies.reverse
  30.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  31.     end
  32.     # 生成敌人活动块
  33.     @actor_sprites = []
  34.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  35.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  36.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  37.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  38.     # 生成天候
  39.     @weather = RPG::Weather.new(@viewport1)
  40.     # 生成图片活动块
  41.     @picture_sprites = []
  42.     for i in 51..100
  43.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  44.         $game_screen.pictures[i]))
  45.     end
  46.     # 生成计时器块
  47.     @timer_sprite = Sprite_Timer.new
  48.     # 刷新画面
  49.     update
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 刷新画面
  53.   #--------------------------------------------------------------------------
  54.   def update
  55.     # 刷新角色的活动块 (对应角色的替换)
  56.     @actor_sprites[0].battler = $game_party.actors[0]
  57.     @actor_sprites[1].battler = $game_party.actors[1]
  58.     @actor_sprites[2].battler = $game_party.actors[2]
  59.     @actor_sprites[3].battler = $game_party.actors[3]
  60.     # 战斗背景的文件名与现在情况有差异的情况下
  61.     if @battleback_name != $game_temp.battleback_name
  62.       @battleback_name = $game_temp.battleback_name
  63.       if @battleback_sprite.bitmap != nil
  64.         @battleback_sprite.bitmap.dispose
  65.       end
  66.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  67.       @battleback_sprite.src_rect.set(0, 0, 640, 480)
  68.     end
  69.     # 刷新战斗者的活动块
  70.     for sprite in @enemy_sprites + @actor_sprites
  71.       sprite.update
  72.     end
  73.     # 刷新天气图形
  74.     @weather.type = $game_screen.weather_type
  75.     @weather.max = $game_screen.weather_max
  76.     @weather.update
  77.     # 刷新图片活动块
  78.     for sprite in @picture_sprites
  79.       sprite.update
  80.     end
  81.     # 刷新计时器活动块
  82.     @timer_sprite.update
  83.     # 设置画面的色调与震动位置
  84.     @viewport1.tone = $game_screen.tone
  85.     @viewport1.ox = $game_screen.shake
  86.     # 设置画面的闪烁色
  87.     @viewport4.color = $game_screen.flash_color
  88.     # 刷新显示端口
  89.     @viewport1.update
  90.     @viewport2.update
  91.     @viewport4.update
  92.   end
  93. end
  94. #==============================================================================
  95. # ■ Window_Base
  96. #------------------------------------------------------------------------------
  97. #  游戏中全部窗口的超级类。
  98. #==============================================================================

  99. class Window_Base < Window
  100.   def draw_actor_graphi(actor, x, y)
  101.     bitmap = RPG::Cache.character(actor.character_name + "_f.png", actor.character_hue)
  102.     cw = bitmap.width
  103.     ch = bitmap.height
  104.     src_rect = Rect.new(0, 0, cw, ch)
  105.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  106.   end
  107. end

  108. # ————————————————————————————————————
  109. # 本脚本来自www.66rpg.com,转载请保留此信息
  110. # ————————————————————————————————————
  111. #==============================================================================
  112. # ■ Game_Actor
  113. #------------------------------------------------------------------------------
  114. #  处理角色的类。本类在 Game_Actors 类 ($game_actors)
  115. # 的内部使用、Game_Party 类请参考 ($game_party) 。
  116. #==============================================================================
  117. class Game_Actor < Game_Battler
  118.   #--------------------------------------------------------------------------
  119.   # ● 取得战斗画面的 X 坐标
  120.   #--------------------------------------------------------------------------
  121.   def screen_x
  122.     case self.index
  123.     when 0
  124.       return 350
  125.     when 1
  126.       return 430
  127.     when 2
  128.       return 510
  129.     when 3
  130.       return 580
  131.     else
  132.       return 600
  133.     end
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 取得战斗画面的 Y 坐标
  137.   #--------------------------------------------------------------------------
  138.   def screen_y
  139.     case self.index
  140.     when 0
  141.       return 430
  142.     when 1
  143.       return 395
  144.     when 2
  145.       return 360
  146.     when 3
  147.       return 325
  148.     else
  149.       return 1000
  150.     end
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● 取得战斗画面的 Z 坐标
  154.   #--------------------------------------------------------------------------
  155.   def screen_z
  156.     case self.index
  157.     when 0
  158.       return 10
  159.     when 1
  160.       return 9
  161.     when 2
  162.       return 8
  163.     when 3
  164.       return 7
  165.     else
  166.       return 0
  167.     end
  168.   end
  169. end

  170. #==============================================================================
  171. # ■ Window_Base
  172. #------------------------------------------------------------------------------
  173. #  游戏中全部窗口的超级类。
  174. #==============================================================================
  175. class Window_Base < Window
  176.   #--------------------------------------------------------------------------
  177.   # ● 描绘 HP
  178.   #     actor : 角色
  179.   #     x     : 描画目标 X 坐标
  180.   #     y     : 描画目标 Y 坐标
  181.   #     width : 描画目标的宽
  182.   #--------------------------------------------------------------------------
  183.   def draw_actor_hp1(actor, x, y, width = 72)
  184.     # 描绘字符串 "HP"
  185.     self.contents.font.color = system_color
  186.     self.contents.draw_text(x, y, 24, 24, $data_system.words.hp)
  187.     # 计算描绘 MaxHP 所需的空间
  188.     if width - 24 >= 32
  189.       hp_x = x + 32# + width - 24
  190.     end
  191.     # 描绘 HP
  192.     self.contents.font.color = actor.hp == 0 ? knockout_color :
  193.       actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  194.     self.contents.draw_text(hp_x, y, 32, 24, actor.hp.to_s, 2)
  195.   end
  196.   #--------------------------------------------------------------------------
  197.   # ● 描绘 SP
  198.   #     actor : 角色
  199.   #     x     : 描画目标 X 坐标
  200.   #     y     : 描画目标 Y 坐标
  201.   #     width : 描画目标的宽
  202.   #--------------------------------------------------------------------------
  203.   def draw_actor_sp1(actor, x, y, width = 72)
  204.     # 描绘字符串 "SP"
  205.     self.contents.font.color = system_color
  206.     self.contents.draw_text(x, y, 24, 24, $data_system.words.sp)
  207.     # 计算描绘 MaxSP 所需的空间
  208.     if width - 24 >= 32
  209.       sp_x = x + 32# + width - 24
  210.     end
  211.     # 描绘 SP
  212.     self.contents.font.color = actor.sp == 0 ? knockout_color :
  213.       actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  214.     self.contents.draw_text(sp_x, y, 32, 24, actor.sp.to_s, 2)
  215.   end
  216. end



  217. #==============================================================================
  218. # ■ Window_BattleStatus
  219. #------------------------------------------------------------------------------
  220. #  显示战斗画面同伴状态的窗口。
  221. #==============================================================================
  222. class Window_BattleStatus < Window_Base
  223.   #--------------------------------------------------------------------------
  224.   # ● 初始化对像
  225.   #--------------------------------------------------------------------------
  226.   #$data_system_level_up_me = "Audio/ME/升级音乐"
  227.   def initialize
  228.     super(0, 0, 640, 480)
  229.     self.contents = Bitmap.new(width - 10, height - 32)
  230.     self.opacity = 0
  231.     @level_up_flags = [false, false, false, false]
  232.     refresh
  233.   end
  234.   #--------------------------------------------------------------------------
  235.   # ● 释放
  236.   #--------------------------------------------------------------------------
  237.   def dispose
  238.     super
  239.   end
  240.   #--------------------------------------------------------------------------
  241.   # ● 设置升级标志
  242.   #     actor_index : 角色索引
  243.   #--------------------------------------------------------------------------
  244.   def level_up(actor_index)
  245.     @level_up_flags[actor_index] = true
  246.   end
  247.   #--------------------------------------------------------------------------
  248.   # ● 刷新
  249.   #--------------------------------------------------------------------------
  250.   def refresh
  251.     self.contents.clear
  252.     @item_max = $game_party.actors.size
  253.     for i in 0...$game_party.actors.size
  254.       actor = $game_party.actors[i]
  255.       x = i * 136 + 100
  256.       y = 400
  257.       if @level_up_flags[i]
  258.         self.contents.font.color = normal_color
  259.         self.contents.draw_text(x, y, 80, 24, "LEVEL UP!")
  260.         Audio.me_stop
  261.         #        Audio.me_play($data_system_level_up_me)
  262.       else
  263.         draw_actor_hp1(actor, x-15, y-15, 80)
  264.         draw_actor_sp1(actor, x-15, y+5, 80)
  265.       end
  266.     end
  267.   end
  268.   #--------------------------------------------------------------------------
  269.   # ● 刷新画面
  270.   #--------------------------------------------------------------------------
  271.   def update
  272.     super
  273.     # 主界面的不透明度下降
  274.     if $game_temp.battle_main_phase
  275.       self.contents_opacity -= 50 if self.contents_opacity > 1
  276.     else
  277.       self.contents_opacity += 50 if self.contents_opacity < 255
  278.     end
  279.   end
  280. end


  281. #==============================================================================
  282. # ■ Window_BattleStatus
  283. #==============================================================================
  284. class Window_BattleStatus < Window_Base
  285.   #--------------------------------------------------------------------------
  286.   # ● 初始化
  287.   #--------------------------------------------------------------------------
  288.   alias xrxs_bp2_refresh refresh
  289.   def refresh
  290.     xrxs_bp2_refresh
  291.     @item_max = $game_party.actors.size
  292.     for i in 0...$game_party.actors.size
  293.       actor = $game_party.actors[i]
  294.       x = i * 136 + 100
  295.       y = 400
  296.       draw_actor_hp_meter(actor, x, y, 50)
  297.       draw_actor_sp_meter(actor, x, y + 8, 50)
  298.       draw_actor_graphi(actor, x - 48, y + 40)
  299.     end
  300.   end
  301. end
  302. #==============================================================================
  303. # ■ Window_Base
  304. #==============================================================================
  305. class Window_Base < Window
  306.   #--------------------------------------------------------------------------
  307.   # ● HP描画
  308.   #--------------------------------------------------------------------------
  309.   def draw_actor_hp_meter(actor, x, y, width = 156, type = 0)
  310.     if type == 1 and actor.hp == 0
  311.       return
  312.     end
  313.     self.contents.font.color = system_color
  314.     self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 25))
  315.     w = width * actor.hp / actor.maxhp
  316.     self.contents.fill_rect(x, y+28, w,1, Color.new(255, 96, 96, 255))
  317.     self.contents.fill_rect(x, y+29, w,1, Color.new(255, 0, 0, 255))
  318.     self.contents.fill_rect(x, y+30, w,1, Color.new(128, 0, 0, 255))
  319.     self.contents.fill_rect(x, y+31, w,1, Color.new(0, 0, 0, 255))
  320.    
  321.   end
  322.   #--------------------------------------------------------------------------
  323.   # ● SP描画
  324.   #--------------------------------------------------------------------------
  325.   def draw_actor_sp_meter(actor, x, y, width = 156, type = 0)
  326.     if type == 1 and actor.hp == 0
  327.       return
  328.     end
  329.     self.contents.font.color = system_color
  330.     self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  331.     w = width * actor.sp / actor.maxsp
  332.     self.contents.fill_rect(x, y+28, w,1, Color.new(128, 255, 255, 255))
  333.     self.contents.fill_rect(x, y+29, w,1, Color.new(0, 255, 255, 255))
  334.     self.contents.fill_rect(x, y+30, w,1, Color.new(0, 192, 192, 255))
  335.     self.contents.fill_rect(x, y+31, w,1, Color.new(0, 128, 128, 255))
  336.   end
  337. end
复制代码

回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
654
在线时间
336 小时
注册时间
2012-2-4
帖子
1767
5
发表于 2012-7-20 10:36:48 | 只看该作者
站长的视频:http://dl.dbank.com/c057uz8you
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 04:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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