Project1

标题: 这个ARPG血条脚本对游戏速度影响很大,有办法优化么? [打印本页]

作者: 幻耶    时间: 2009-12-21 15:09
标题: 这个ARPG血条脚本对游戏速度影响很大,有办法优化么?
这个脚本用来显示敌人事件头上的血条,敌人名包括了敌人的HP,比如:敌人20,2000,2000,150,260,120,80,50,43
那么20号敌人的MAXHP就是2000,初始HP也是2000,在游戏战斗中敌人血条的减少通过不断修改敌人事件的名字实现,但是对游戏速度影响很大,一般的电脑测试就是23帧左右,有办法优化么?
  1. #简单地图角色头上显示HP,SP
  2. #以下是简单的主角HP显示,其他怪物或NPC显示同此意
  3. class Game_Player < Game_Character
  4. def name
  5.   return $game_party.actors[0].name
  6. end
  7. end

  8. # 添加上面,我就是为了做一个判断,只让主角显示HPSP,如果你是ARPG等都要显示 自己省略
  9. class Sprite_Character < RPG::Sprite
  10.   attr_accessor :character                # 角色
  11.   def initialize(viewport, character = nil)
  12.     super(viewport)
  13.     @character = character
  14.     @sprite = Sprite.new
  15.     @sprite.bitmap = Bitmap.new(160, 220)
  16.     update
  17.   end
  18.   HPSP血条长度 = 30

  19.   alias :update_hp_sp :update
  20.   def update
  21.     update_hp_sp
  22.     @sprite.x = self.x - 115
  23.     @sprite.y = self.y - 150
  24.      
  25.    
  26.    if @character.name.include?("敌人1,")
  27.        name = @character.name
  28.        data = name.split(/,/)  #装载数据
  29.        name = data
  30.      if  @hp != data[1].to_i or @maxhp != data[2].to_i
  31.        @hp = data[1].to_i
  32.        @maxhp = data[2].to_i
  33.        hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
  34.        if $game_switches[204] == true
  35.          hp = 0
  36.        end
  37.        @sprite.bitmap.clear
  38.        @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
  39.      end
  40.    end
  41.    。。。。。
  42.    。。。
  43.    。。。。。
  44.    。。。。。。。
  45.    。。。
  46.    if @character.name.include?("敌人20,")
  47.        name = @character.name
  48.        data = name.split(/,/)  #装载数据
  49.        name = data
  50.      if  @hp != data[1].to_i or @maxhp != data[2].to_i
  51.        @hp = data[1].to_i
  52.        @maxhp = data[2].to_i
  53.        hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
  54.        if $game_switches[318] == true
  55.          hp = 0
  56.        end
  57.        @sprite.bitmap.clear
  58.        @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
  59.      end
  60.    end

  61. end
  62. end
复制代码

作者: 幻耶    时间: 2009-12-22 11:18
顶~
作者: a360015305    时间: 2010-9-29 18:42
这个咋用?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1