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

Project1

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

[已经解决] 請問如何將這各腳本里的怪物圖片放大2倍

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-7-27
帖子
6
跳转到指定楼层
1
发表于 2009-11-25 00:31:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
#================================================================

# 本脚本来自www.66RPG.com,使用和转载请保留此信息

#===================================================================

#——————————————————————————————————————

#魔物图鉴+介绍

#

#战斗终了时自动添加敌人进入图鉴(class Scene_Battle start_phase5 追加。



#目前与各种战斗系统没有发现冲突)

#不想加入图鉴的怪物设置其“不加入图鉴”属性有效度为A即可

#图鉴完成度的表示功能追加

#SHOW_COMPLETE_TYPE 的数值可以设定

#当为1,显示现有个数/总数,当为2,显示完成百分比,当为3,全显示。

#使用方法:$scene = Scene_MonsterBook.new

#数据库中属性里面那些种族特效的位置,建议把默认的“对 不死”之类改成“不死”,



#不然显示会很奇怪

#由于雷达图的设计问题,只支持8项属性

#默认种族特效处理属性中编号9到编号16,



#如果你做了修改请自行改动380行左右的for i in 9..16这一句代码

#显示各种信息位于630行左右,想不显示的话只要删除相应语句

CHARA_INFO=[]#怪物的介绍,对应怪物id,空格为换行,



#同时也会自动换行,没有写介绍的怪物会自动显示“无详细信息”

CHARA_INFO[1] = "怪物介绍1"

CHARA_INFO[2] = "怪物介绍2"

CHARA_INFO[3] = "生活在潮湿的沼泽地区的变异生物,性情凶暴,经常会袭击各种路过的生物"

#没有信息测试,4号怪物

#=============

#雷达图相关处理部分

#=============

class Bitmap

def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)

distance = (start_x - end_x).abs + (start_y - end_y).abs

if end_color == start_color

for i in 1..distance

x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i

y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i

if width == 1

self.set_pixel(x, y, start_color)

else

self.fill_rect(x, y, width, width, start_color)

end

end

else

for i in 1..distance

x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i

y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i

r = start_color.red * (distance-i)/distance + end_color.red * i/distance

g = start_color.green * (distance-i)/distance + end_color.green * i/distance

b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance

a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance

if width == 1

self.set_pixel(x, y, Color.new(r, g, b, a))

else

self.fill_rect(x, y, width, width, Color.new(r, g, b, a))

end

end

end

end

end

#=============

# Graphic_Def_Elem

#=============

class Window_Base

FONT_SIZE = 18

WORD_ELEMENT_GUARD = "属性有效度"

NUMBER_OF_ELEMENTS = 8

ELEMENT_ORDER = [1,3,8,5,2,4,7,6]

GRAPH_SCALINE_COLOR = Color.new(255, 255, 255, 128)

GRAPH_SCALINE_COLOR_SHADOW = Color.new( 0, 0, 0, 192)

GRAPH_LINE_COLOR = Color.new(255, 255, 64, 255)

GRAPH_LINE_COLOR_MINUS = Color.new( 64, 255, 255, 255)

GRAPH_LINE_COLOR_PLUS = Color.new(255, 64, 64, 255)

end



#——————————————————————————————————————

module Enemy_Book_Config

DROP_ITEM_NEED_ANALYZE = true #显示物品

EVA_NAME = "回避修正"              #回避修正的名称(因为数据库中没有定义)

SHOW_COMPLETE_TYPE = 3         #图鉴完成率表示方法

end

class Data_MonsterBook

#--------------------------------------------------------------------------

# ● 图鉴用ID設定

#--------------------------------------------------------------------------

def enemy_book_id_set

   data = [0]

   data[1] = 2

   data[2] = 1

   data[3] = 15

   data[4] = 25

   data[5] = 18

   data[6] = 30

   return data

end

end

class Game_Temp

attr_accessor :enemy_book_data

alias temp_enemy_book_data_initialize initialize

def initialize

   temp_enemy_book_data_initialize

   @enemy_book_data = Data_MonsterBook.new

end

end



class Game_Party

#==============================================

#--------------------------------------------------------------------------

  # ● 公開インスタンス変数

  #--------------------------------------------------------------------------

  attr_reader   :actors                   # アクター

  attr_reader   :gold                     # ゴールド

  attr_reader   :steps                    # 歩数

  attr_accessor :mission                  # 任务★★★★★★★★★★★★★

  attr_accessor   :pr                  # 当前章节数★★★★★★★★★★★★★

  attr_reader   :prname

  #--------------------------------------------------------------------------

  # ● オブジェクト初期化

  #--------------------------------------------------------------------------

  def initialize

    # アクターの配列を作成

    @actors = []

    # ゴールドと歩数を初期化

    @gold = 0

    @steps = 0

    # アイテム、武器、防具の所持数ハッシュを作成

    @items = {}

    @weapons = {}

    @armors = {}

  end

#==============================================

attr_accessor :enemy_info               # 出会った敵情報(図鑑用)



#--------------------------------------------------------------------------

# ● オブジェクト初期化

#--------------------------------------------------------------------------

alias book_info_initialize initialize

def initialize

   book_info_initialize

   @enemy_info = {}

end



#--------------------------------------------------------------------------

# ● エネミー情報の追加(図鑑用)

#     type : 通常遭遇かアナライズか 0:通常 1:アナライズ -1:情報削除

#     0:無遭遇 1:遭遇済 2:アナライズ済

#--------------------------------------------------------------------------

def add_enemy_info(enemy_id, type = 0)

   case type

   when 0

     if @enemy_info[enemy_id] == 2

       return false

     end

     @enemy_info[enemy_id] = 1

   when 1

     @enemy_info[enemy_id] = 2

   when -1

     @enemy_info[enemy_id] = 0

   end

end

#--------------------------------------------------------------------------

# ● 魔物図鑑の最大登録数を取得

#--------------------------------------------------------------------------

def enemy_book_max

   return $game_temp.enemy_book_data.id_data.size - 1

end

#--------------------------------------------------------------------------

# ● 魔物図鑑の現在登録数を取得

#--------------------------------------------------------------------------

def enemy_book_now

   now_enemy_info = @enemy_info.keys

   # 登録無視の属性IDを取得

   no_add = $game_temp.enemy_book_data.no_add_element

   new_enemy_info = []

   for i in now_enemy_info

     enemy = $data_enemies

     next if enemy.name == ""

     if enemy.element_ranks[no_add] == 1

       next

     end

     new_enemy_info.push(enemy.id)

   end

   return new_enemy_info.size

end

#--------------------------------------------------------------------------

# ● 魔物図鑑の完成率を取得

#--------------------------------------------------------------------------

def enemy_book_complete_percentage

   e_max = enemy_book_max.to_f

   e_now = enemy_book_now.to_f

   comp = e_now / e_max * 100

   return comp.truncate

end

end



class Interpreter

def enemy_book_max

   return $game_party.enemy_book_max

end

def enemy_book_now

   return $game_party.enemy_book_now

end

def enemy_book_comp

   return $game_party.enemy_book_complete_percentage

end

end



class Scene_Battle

alias add_enemy_info_start_phase5 start_phase5

def start_phase5

   for enemy in $game_troop.enemies

     # エネミーが隠れ状態でない場合

     unless enemy.hidden

       # 敵遭遇情報追加

       $game_party.add_enemy_info(enemy.id, 0)

     end

   end

   add_enemy_info_start_phase5

end

end



class Window_Base < Window

#--------------------------------------------------------------------------

# ● エネミーの戦闘後獲得アイテムの描画

#--------------------------------------------------------------------------

def draw_enemy_drop_item(enemy, x, y)

   self.contents.font.color = normal_color

   treasures = []

   if enemy.item_id > 0

     treasures.push($data_items[enemy.item_id])

   end

   if enemy.weapon_id > 0

     treasures.push($data_weapons[enemy.weapon_id])

   end

   if enemy.armor_id > 0

     treasures.push($data_armors[enemy.armor_id])

   end

   # 現状ではとりあえず1つのみ描画

   if treasures.size > 0

     item = treasures[0]

     bitmap = RPG::Cache.icon(item.icon_name)

     opacity = 255

     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)

     name = treasures[0].name

   else

     self.contents.font.color = disabled_color

     name = "无"

   end

   self.contents.draw_text(x+28, y, 212, 32, name)

end

#--------------------------------------------------------------------------

# ● エネミーの図鑑IDの描画

#--------------------------------------------------------------------------

def draw_enemy_book_id(enemy, x, y)

   self.contents.font.color = normal_color

   id = $game_temp.enemy_book_data.id_data.index(enemy.id)

   self.contents.draw_text(x, y, 32, 32, id.to_s)

end

#--------------------------------------------------------------------------

# ● 敌人简介描绘

#--------------------------------------------------------------------------

def draw_enemy_other(enemy, x, y)

   if CHARA_INFO[enemy.id]==nil

    CHARA_INFO[enemy.id] = "没有相关资料"

  end

   self.contents.font.size=16

   x+=self.contents.text_size("").width

   info = CHARA_INFO[enemy.id]

   s=info.scan(/./)

    #一行显示21个字

    for i in s

      sss = self.contents.text_size(i)

     

      if  i==" "

        y+=16

        x=0

      elsif (x+sss.width)>(width - 32-260)

        y+=16

        x=0

        self.contents.draw_text(x, y, sss.width, sss.height, i)

        x+=sss.width

      else

      self.contents.draw_text(x, y, sss.width, sss.height, i)

      x+=sss.width

      end

    end

  end

   #--------------------------------------------------------------------------

# ● 敌人特技描绘

#--------------------------------------------------------------------------

def draw_enemy_action(enemy, x, y)

   self.contents.font.size=16

   yy=y

   self.contents.font.color = system_color

   self.contents.draw_text(x, yy, 80, 18,"行动列表")

   self.contents.font.color = normal_color

   for action in enemy.actions

     yy+=18

     if action.kind==0

       case action.basic

        when 0

          ac="普通攻击"

        when 1

          ac="防御"

        when 2

          ac="逃跑"

        when 3

          ac="无"

        end

     self.contents.draw_text(x, yy, 160, 18, ac )

     end

     if action.kind==1

     self.contents.draw_text(x, yy, 160, 18, $data_skills[action.skill_id].name )

     end

   end

end

#雷达图描绘

  #===================================================================

  def draw_actor_element_radar_graph(actor, x, y)

    radius = 56

cx = x + radius + FONT_SIZE + 48

cy = y + radius + FONT_SIZE + 32

self.contents.font.color = system_color

self.contents.draw_text(x, y, 104, 32, WORD_ELEMENT_GUARD)

for loop_i in 0..NUMBER_OF_ELEMENTS

if loop_i == 0



else

@pre_x = @now_x

@pre_y = @now_y

@pre_ex = @now_ex

@pre_ey = @now_ey

@color1 = @color2

end

if loop_i == NUMBER_OF_ELEMENTS

eo = ELEMENT_ORDER[0]

else

eo = ELEMENT_ORDER[loop_i]

end

er = actor.element_rate(eo)

estr = $data_system.elements[eo]

@color2 = er < 0 ? GRAPH_LINE_COLOR_MINUS : er > 100 ? GRAPH_LINE_COLOR_PLUS : GRAPH_LINE_COLOR

if er <0

  then xsh=true

else xsh=false

end

er = er.abs

th = Math::PI * (0.5 - 2.0 * loop_i / NUMBER_OF_ELEMENTS)

@now_x = cx + (radius * Math.cos(th)).floor

@now_y = cy - (radius * Math.sin(th)).floor

@now_wx = cx + ((radius+FONT_SIZE*2/2) * Math.cos(th)).floor - FONT_SIZE

@now_wy = cy - ((radius+FONT_SIZE*1/2) * Math.sin(th)).floor - FONT_SIZE/2

@now_vx = cx + ((radius+FONT_SIZE*6/2) * Math.cos(th)).floor - FONT_SIZE

@now_vy = cy - ((radius+FONT_SIZE*3/2) * Math.sin(th)).floor - FONT_SIZE/2

@now_ex = cx + (er*radius/100 * Math.cos(th)).floor

@now_ey = cy - (er*radius/100 * Math.sin(th)).floor

if loop_i == 0

@pre_x = @now_x

@pre_y = @now_y

@pre_ex = @now_ex

@pre_ey = @now_ey

@color1 = @color2

else



end

next if loop_i == 0

self.contents.draw_line(cx+1,cy+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW)

self.contents.draw_line(@pre_x+1,@pre_y+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW)

self.contents.draw_line(cx,cy, @now_x,@now_y, GRAPH_SCALINE_COLOR)

self.contents.draw_line(@pre_x,@pre_y, @now_x,@now_y, GRAPH_SCALINE_COLOR)

self.contents.draw_line(@pre_ex,@pre_ey, @now_ex,@now_ey, @color1, 2, @color2)

self.contents.font.size = FONT_SIZE

if xsh == true

  then self.contents.font.color = Color.new(100,255,128,128)

  sdd="-"

else self.contents.font.color = system_color

  sdd=""

end

self.contents.draw_text(@now_wx,@now_wy, FONT_SIZE*2, FONT_SIZE, estr, 1)

self.contents.font.color = Color.new(255,255,255,128)

self.contents.draw_text(@now_vx,@now_vy, FONT_SIZE*2, FONT_SIZE, sdd+er.to_s + "%", 2)

end

end

#_----------------------------------------------

def draw_race(enemy,x,y)

      text="无"

      text2="无"

      for i in 9..16

        if enemy.element_rate(i) == 200

        text = $data_system.elements

        end

        if enemy.element_rate(i) == 150

        text2 =$data_system.elements

        end

      end

      self.contents.font.color = system_color

      self.contents.draw_text(x, y, 80, 32,"主要种族")

      self.contents.font.color = normal_color

      self.contents.draw_text(x+80, y, 76, 32,text,2)

      self.contents.font.color = system_color

      self.contents.draw_text(x+160, y, 80, 32,"次要种族")

      self.contents.font.color = normal_color

      self.contents.draw_text(x+80+160, y, 76, 32,text2,2)

end



#--------------------------------------------------------------------------

# ● エネミーの名前の描画

#     enemy : エネミー

#     x     : 描画先 X 座標

#     y     : 描画先 Y 座標

#--------------------------------------------------------------------------

def draw_enemy_name(enemy, x, y)

   self.contents.font.color = normal_color

   self.contents.draw_text(x, y, 152, 32, enemy.name)

end

#--------------------------------------------------------------------------

# ● エネミーグラフィックの描画(アナライズ)

#     enemy : エネミー

#     x     : 描画先 X 座標

#     y     : 描画先 Y 座標

#--------------------------------------------------------------------------

def draw_enemy_graphic(enemy, x, y, opacity = 255)



end

#--------------------------------------------------------------------------

# ● エネミーの獲得EXPの描画

#     enemy : エネミー

#     x     : 描画先 X 座標

#     y     : 描画先 Y 座標

#--------------------------------------------------------------------------

def draw_enemy_exp(enemy, x, y)

   self.contents.font.color = system_color

   self.contents.draw_text(x, y, 120, 32, "EXP")

   self.contents.font.color = normal_color

   self.contents.draw_text(x + 120, y, 36, 32, enemy.exp.to_s, 2)

end

#--------------------------------------------------------------------------

# ● エネミーの獲得GOLDの描画

#     enemy : エネミー

#     x     : 描画先 X 座標

#     y     : 描画先 Y 座標

#--------------------------------------------------------------------------

def draw_enemy_gold(enemy, x, y)

   self.contents.font.color = system_color

   self.contents.draw_text(x, y, 120, 32, "掉落金钱")

   self.contents.font.color = normal_color

   self.contents.draw_text(x + 120, y, 36, 32, enemy.gold.to_s, 2)

end

end



class Game_Enemy_Book < Game_Enemy

#--------------------------------------------------------------------------

# ● オブジェクト初期化

#--------------------------------------------------------------------------

def initialize(enemy_id)

   super(2, 1)#ダミー

   @enemy_id = enemy_id

   enemy = $data_enemies[@enemy_id]

   @battler_name = enemy.battler_name

   @battler_hue = enemy.battler_hue

   @hp = maxhp

   @sp = maxsp

end

end



class Data_MonsterBook

attr_reader :id_data

#--------------------------------------------------------------------------

# ● オブジェクト初期化

#--------------------------------------------------------------------------

def initialize

   @id_data = enemy_book_id_set

end

#--------------------------------------------------------------------------

# ● 図鑑用登録無視属性取得

#--------------------------------------------------------------------------

def no_add_element

   no_add = 0

   # 登録無視の属性IDを取得

   for i in 1...$data_system.elements.size

     if $data_system.elements =~ /不加入图鉴/

       no_add = i

       break

     end

   end

   return no_add

end

#--------------------------------------------------------------------------

# ● 図鑑用敵ID設定

#--------------------------------------------------------------------------

def enemy_book_id_set

   data = [0]

   no_add = no_add_element

   # 登録無視の属性IDを取得

   for i in 1...$data_enemies.size

     enemy = $data_enemies

     next if enemy.name == ""

     if enemy.element_ranks[no_add] == 1

       next

     end

     data.push(enemy.id)

   end

   return data

end

end





class Window_MonsterBook < Window_Selectable

attr_reader   :data

#--------------------------------------------------------------------------

# ● オブジェクト初期化

#--------------------------------------------------------------------------

def initialize(index=0)

   super(0, 64, 640, 416)

   @column_max = 2

   @book_data = $game_temp.enemy_book_data

   @data = @book_data.id_data.dup

   @data.shift

   #@data.sort!

   @item_max = @data.size

   self.index = 0

   refresh if @item_max > 0

end

#--------------------------------------------------------------------------

# ● 遭遇データを取得

#--------------------------------------------------------------------------

def data_set

   data = $game_party.enemy_info.keys

   data.sort!

   newdata = []

   for i in data

     next if $game_party.enemy_info == 0

     # 図鑑登録無視を考慮

     if book_id(i) != nil

       newdata.push(i)

     end

   end

   return newdata

end

#--------------------------------------------------------------------------

# ● 表示許可取得

#--------------------------------------------------------------------------

def show?(id)

   if $game_party.enemy_info[id] == 0 or $game_party.enemy_info[id] == nil

     return false

   else

     return true

   end

end

#--------------------------------------------------------------------------

# ● 図鑑用ID取得

#--------------------------------------------------------------------------

def book_id(id)

   return @book_data.index(id)

end

#--------------------------------------------------------------------------

# ● エネミー取得

#--------------------------------------------------------------------------

def item

   return @data[self.index]

end

#--------------------------------------------------------------------------

# ● リフレッシュ

#--------------------------------------------------------------------------

def refresh

   if self.contents != nil

     self.contents.dispose

     self.contents = nil

   end

   self.contents = Bitmap.new(width - 32, row_max * 32)

   #項目数が 0 でなければビットマップを作成し、全項目を描画

   if @item_max > 0

     for i in 0...@item_max

      draw_item(i)

     end

   end

end

#--------------------------------------------------------------------------

# ● 項目の描画

#     index : 項目番号

#--------------------------------------------------------------------------

def draw_item(index)

   enemy = $data_enemies[@data[index]]

   return if enemy == nil

   x = 4 + index % 2 * (288 + 32)

   y = index / 2 * 32

   rect = Rect.new(x, y, self.width / @column_max - 32, 32)

   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))

   self.contents.font.color = normal_color

   draw_enemy_book_id(enemy, x, y)

   if show?(enemy.id)

     self.contents.draw_text(x + 28+16, y, 212, 32, enemy.name, 0)

   else

     self.contents.draw_text(x + 28+16, y, 212, 32, "-----", 0)

     return

   end

   if analyze?(@data[index])

     self.contents.font.color = text_color(3)

     self.contents.draw_text(x + 256, y, 24, 32, "済", 2)

   end

end

#--------------------------------------------------------------------------

# ● アナライズ済かどうか

#--------------------------------------------------------------------------

def analyze?(enemy_id)

   if $game_party.enemy_info[enemy_id] == 2

     return true

   else

     return false

   end

end

end





class Window_MonsterBook_Info < Window_Base

include Enemy_Book_Config

#--------------------------------------------------------------------------

# ● オブジェクト初期化

#--------------------------------------------------------------------------

def initialize

   super(0, 0+64, 640, 480-64)

   self.back_opacity=255

   self.contents = Bitmap.new(width - 32, height - 32)

  

end

#--------------------------------------------------------------------------

# ● リフレッシュ

#--------------------------------------------------------------------------

def refresh(enemy_id)

   self.contents.clear

   self.contents.font.size = 22

   enemy = Game_Enemy_Book.new(enemy_id)

   @gra = Sprite_Enemy_Graphic.new(nil,enemy)

   @gra.z = 120      #怪物图片

   draw_enemy_book_id(enemy, 4, 0)    #各种详细信息

   draw_enemy_name(enemy, 48, 0)

   draw_actor_hp(enemy, 288, 0)

   draw_actor_sp(enemy, 288+160, 0)

   self.contents.font.size=18

   draw_actor_parameter(enemy, 288    ,  25, 0)

   self.contents.font.color = system_color

   self.contents.draw_text(288+160, 25, 120, 32, EVA_NAME)

   self.contents.font.color = normal_color

   self.contents.draw_text(288+160 + 120, 25, 36, 32, enemy.eva.to_s, 2)

   draw_actor_parameter(enemy, 288    ,  50, 3)

   draw_actor_parameter(enemy, 288+160,  50, 4)

   draw_actor_parameter(enemy, 288    ,  75, 5)

   draw_actor_parameter(enemy, 288+160,  75, 6)

   draw_actor_parameter(enemy, 288    , 100, 1)

   draw_actor_parameter(enemy, 288+160, 100, 2)

   draw_enemy_exp(enemy, 288, 125)

   draw_enemy_gold(enemy, 288+160, 125)

   draw_race(enemy, 288, 150)

   #--------------------------------------------------------------------

   draw_enemy_other(enemy, 0, 280)  #简介文字

   draw_enemy_action(enemy,200, 30)  #显示敌人行动

   draw_actor_element_radar_graph(enemy, 360, 180)#雷达图

   #--------------------------------------------------------------------

   if DROP_ITEM_NEED_ANALYZE==true  #掉落物品

     self.contents.font.color = system_color

        self.contents.font.size=16

     self.contents.draw_text(0, 235, 96, 32, "掉落物品")

     draw_enemy_drop_item(enemy, 128, 235)

     self.contents.font.color = normal_color

        self.contents.font.size=18

      end     

    end

def cl

       @gra.dispose

end

#--------------------------------------------------------------------------

# ● アナライズ済かどうか

#--------------------------------------------------------------------------

def analyze?(enemy_id)

   if $game_party.enemy_info[enemy_id] == 2

     return true

   else

     return false

   end

end

end





class Scene_MonsterBook

include Enemy_Book_Config

#--------------------------------------------------------------------------

# ● メイン処理

#--------------------------------------------------------------------------

def main

   $game_temp.enemy_book_data = Data_MonsterBook.new

   # ウィンドウを作成

   @title_window = Window_Base.new(0, 0, 640, 64)

   @title_window.contents = Bitmap.new(640 - 32, 64 - 32)

   @title_window.contents.draw_text(4, 0, 320, 32, "魔物图鉴", 0)

   if SHOW_COMPLETE_TYPE != 0

     case SHOW_COMPLETE_TYPE

     when 1

       e_now = $game_party.enemy_book_now

       e_max = $game_party.enemy_book_max

       text = e_now.to_s + "/" + e_max.to_s

     when 2

       comp = $game_party.enemy_book_complete_percentage

       text = comp.to_s + "%"

     when 3

       e_now = $game_party.enemy_book_now

       e_max = $game_party.enemy_book_max

       comp = $game_party.enemy_book_complete_percentage

       text = e_now.to_s + "/" + e_max.to_s + " " + comp.to_s + "%"

     end

     if text != nil

       @title_window.contents.draw_text(320, 0, 288, 32,  text, 2)

     end

   end

   @main_window = Window_MonsterBook.new

   @main_window.active = true

   # インフォウィンドウを作成 (不可視・非アクティブに設定)

   @info_window = Window_MonsterBook_Info.new

   @info_window.z = 110

   @info_window.visible = false

   @info_window.active = false

   @visible_index = 0

   # トランジション実行

   Graphics.transition

   # メインループ

   loop do

     # ゲーム画面を更新

     Graphics.update

     # 入力情報を更新

     Input.update

     # フレーム更新

     update

     # 画面が切り替わったらループを中断

     if $scene != self

       break

     end

   end

   # トランジション準備

   Graphics.freeze

   # ウィンドウを解放

   @main_window.dispose

   @info_window.dispose

   @title_window.dispose

end

#--------------------------------------------------------------------------

# ● フレーム更新

#--------------------------------------------------------------------------

def update

   # ウィンドウを更新

   @main_window.update

   @info_window.update

#   gra.update

   if @info_window.active

     update_info

     return

   end

   # メインウィンドウがアクティブの場合: update_target を呼ぶ

   if @main_window.active

     update_main

     return

   end

end

#--------------------------------------------------------------------------

# ● フレーム更新 (メインウィンドウがアクティブの場合)

#--------------------------------------------------------------------------

def update_main

   # B ボタンが押された場合

   if Input.trigger?(Input::B)

     # キャンセル SE を演奏

     $game_system.se_play($data_system.cancel_se)

     $scene = Scene_Menu.new(7)

     return

   end

   # C ボタンが押された場合

   if Input.trigger?(Input::C)

     if @main_window.item == nil or @main_window.show?(@main_window.item) == false

       # ブザー SE を演奏

       $game_system.se_play($data_system.buzzer_se)

       return

     end

     # 決定 SE を演奏

     $game_system.se_play($data_system.decision_se)

     @main_window.active = false

     @info_window.active = true

     @info_window.visible = true

     @visible_index = @main_window.index

     @info_window.refresh(@main_window.item)

     return

   end

end

#--------------------------------------------------------------------------

# ● フレーム更新 (インフォウィンドウがアクティブの場合)

#--------------------------------------------------------------------------

def update_info

   # B ボタンが押された場合

   if Input.trigger?(Input::B)

     # キャンセル SE を演奏

     $game_system.se_play($data_system.cancel_se)

     @main_window.active = true

     @info_window.active = false

     @info_window.visible = false

     @info_window.cl

     return

   end

   # C ボタンが押された場合

   if Input.trigger?(Input::C)

     # 決定 SE を演奏

     #$game_system.se_play($data_system.decision_se)

     return

   end

   if Input.trigger?(Input::L)

     # 決定 SE を演奏

     $game_system.se_play($data_system.decision_se)

     loop_end = false

     while loop_end == false

       if @visible_index != 0

         @visible_index -= 1

       else

         @visible_index = @main_window.data.size - 1

       end

       loop_end = true if @main_window.show?(@main_window.data[@visible_index])

     end

     id = @main_window.data[@visible_index]

     @info_window.refresh(id)

     return

   end

   if Input.trigger?(Input::R)

     # 決定 SE を演奏

     $game_system.se_play($data_system.decision_se)

     loop_end = false

     while loop_end == false

       if @visible_index != @main_window.data.size - 1

         @visible_index += 1

       else

         @visible_index = 0

       end

       loop_end = true if @main_window.show?(@main_window.data[@visible_index])

     end

     id = @main_window.data[@visible_index]

     @info_window.refresh(id)

     return

   end

end

end

#==================================================================

# 本脚本来自www.66RPG.com,使用和转载请保留此信息

#==================================================================

class Sprite_Enemy_Graphic< Sprite

  attr_accessor :enemy

  #--------------------------------------------------------------------------

  # ● オブジェクト初期化

  #--------------------------------------------------------------------------

  def initialize(viewport,enemy)

    super(viewport)

    if @enemy != enemy

      self.bitmap = RPG::Cache.battler(enemy.battler_name, enemy.battler_hue)

      cw = self.bitmap.width

      ch = self.bitmap.height

    if cw>ch

     self.zoom_x=200.0/cw

     self.zoom_y=200.0/cw

   else

     self.zoom_x=200.0/ch

     self.zoom_y=200.0/ch   

   end

     self.x=10

     self.y=110

      @enemy=enemy

    end

  end

  #--------------------------------------------------------------------------

  # ● 解放

  #--------------------------------------------------------------------------

  def dispose

    if self.bitmap != nil

      self.bitmap.dispose

    end

    super

  end

  #--------------------------------------------------------------------------

  # ● フレーム更新

  #--------------------------------------------------------------------------

  def refresh(enemy)

  end

end
复制代码

-----------------------------------------------
請問如何將這各腳本里的怪物圖片放大2倍
謝謝

Lv1.梦旅人

~琉璃の雪~<

梦石
0
星屑
49
在线时间
36 小时
注册时间
2008-11-6
帖子
3678
2
发表于 2009-11-25 02:46:49 | 只看该作者
试试:
cw = self.bitmap.width * 2
ch = self.bitmap.height * 2
~现在开始自绘头像~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-7-27
帖子
6
3
 楼主| 发表于 2009-11-26 17:17:40 | 只看该作者
以解決了 謝謝各位
我有試驗一下  結果是
cw = self.bitmap.width /2
ch = self.bitmap.height /2
才是放大喔
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 10:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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