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

Project1

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

[已经过期] 有关Window_BattleStatus的修改问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
59 小时
注册时间
2015-12-24
帖子
41
跳转到指定楼层
1
发表于 2016-3-4 00:14:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 RyanBern 于 2016-3-4 13:09 编辑

主要功能,人物站位、状态栏和战斗选项根据该职业的【前卫 中卫 后卫】改变坐标,目前效果如下:


有三个问题:一、其实人物状态栏并没有实现单独窗口,我就是画了一个640*480的透明窗口然后在这之上调整了contents的坐标而已。还是想问怎么实现单独的四个窗口呢~~试过在initialize方法里面添加循环妄图建立四套坐标,但是游戏会被刷爆掉。
二、
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Window_BattleStatus
  3. #------------------------------------------------------------------------------
  4. #  显示战斗画面同伴状态的窗口。
  5. #==============================================================================
  6.  
  7. class Window_BattleStatus < Window_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     super(0, 0, 640, 480)
  13.     self.contents = Bitmap.new(width - 32, height - 32)
  14.     @level_up_flags = [false, false, false, false]
  15.     refresh
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 释放
  19.   #--------------------------------------------------------------------------
  20.   def dispose
  21.     super
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 设置升级标志
  25.   #     actor_index : 角色索引
  26.   #--------------------------------------------------------------------------
  27.   def level_up(actor_index)
  28.     @level_up_flags[actor_index] = true
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 刷新
  32.   #--------------------------------------------------------------------------
  33.   def refresh
  34.     self.opacity=0
  35.     self.contents.clear
  36.     self.contents.font.size = 10
  37.     @item_max = $game_party.actors.size
  38.     for i in 0...$game_party.actors.size
  39.       actor = $game_party.actors[i]
  40.       position = $data_classes[actor.class_id].position
  41.       actor_x=0
  42.       actor_y=0
  43.       case position
  44.       when 0
  45.         actor_x = 410
  46.         actor_y = i*100+20
  47.       when 1
  48.         actor_x = 495
  49.         actor_y = i*100+20
  50.       when 2
  51.         actor_x = 580
  52.         actor_y = i*100+20
  53.       end
  54.       draw_actor_name(actor, actor_x-50, actor_y)
  55.       draw_actor_hp_bar(actor,actor_x-50+11,actor_y+10+15,56 )
  56.       draw_actor_hp(actor, actor_x-50, actor_y+15, 40)
  57.       draw_actor_sp_bar(actor,actor_x-50+11,actor_y+30+10,56 )
  58.       draw_actor_sp(actor, actor_x-50, actor_y+30, 40)
  59.       if @level_up_flags[i]
  60.         self.contents.font.color = normal_color
  61.         self.contents.draw_text(actor_x-50, actor_y+50, 120, 32, "LEVEL UP!")
  62.       else
  63.         draw_actor_state(actor, actor_x-50, actor_y+50)
  64.       end
  65.     end
  66.   end
  67. end

这是我在Window_BattleStatus下的改动(其余地方实现方式大同小异)~~我觉得这个循环可能是没放对地方,给我的感觉是占用资源非常大,鼠标放在游戏窗口内会不停闪烁~~~求告知原因

三、

这个示意图是我才是我想实现的战斗站位~~大概意思就是:每个角色被分配坐标的时候会查看相同位置上的角色数,然后选择合适的站位。(不知道表达清楚了没~~)我的想法是在Game_Actor中的screen_y方法中加一个参数,但做到这里就蒙逼了~~~求指点~~。

点评

幽灵:谁才是幽灵  发表于 2016-3-4 11:08

Lv1.梦旅人

梦石
0
星屑
50
在线时间
59 小时
注册时间
2015-12-24
帖子
41
2
 楼主| 发表于 2016-3-4 18:49:49 | 只看该作者
多谢某位大神帮我编辑帖子~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 21:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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