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

Project1

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

[已经过期] 这个ARPG血条脚本对游戏速度影响很大,有办法优化么?

 关闭 [复制链接]

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
跳转到指定楼层
1
发表于 2009-12-21 15:09:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个脚本用来显示敌人事件头上的血条,敌人名包括了敌人的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
复制代码
囡囚囨囚囨図囨囧

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
2
 楼主| 发表于 2009-12-22 11:18:14 | 只看该作者
顶~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2010-9-10
帖子
88
3
发表于 2010-9-29 18:42:57 | 只看该作者
这个咋用?

评分

参与人数 1星屑 -200 收起 理由
六祈 -200 请勿挖坟,自行联系相关id解决 ...

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 16:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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