独学ツクールブログ

ツクールでのオリジナル作品の話を中心に創作関係の徒然な語り。

<< RGSS奮闘記22:アイテムを分類する4 | main | RGSS奮闘記24:アイテムを分類する6 >>

[ - ] スポンサーサイト

一定期間更新がないため広告を表示しています

| 2018.05.23 Wednesday | - | - |

[ RGSS奮闘記 ] RGSS奮闘記23:アイテムを分類する5

〜前回のあらすじ〜
<<<<<<<<


今回は防具とアクセサリを属性判定して格納する部分。
とりあえず、大筋は前回のアイテムや武器と同じであるが、注意点はツクールXPの仕様にある。
XPでは装備品に武器と防具のジャンル分けしかない。兜も盾もアクセサリも全て「防具」である。さらに、人によっては防具の中で分類ごとにまとめて作ったりはしていないかもしれない。ということで、まずは種別ごとにまとめてから結合するという手法を取ることにする。

shield = []
head = []
body = []
accesory = []
まず種別ごとの空配列を定義。
$data_armors.each_with_index { |armor, index|
  if $game_party.armor_number(index) != 0 && armor.guard_element_set.include?(element)
    case armor.kind
      when 0
        shield << armor
      when 1
        head << armor
      when 2
        body << armor
      when 3
        accesory << armor
      end
    end
}
続く部分はifでの判定はアイテムや武器と同じである。中のcaseで条件を満たした防具を更に分類している。
kindは防具の種別である(0:盾、1:頭防具、2:身体防具、3:装飾品)。ifの条件を満たした防具がどの種別であるかをcaseによって判別し、それぞれの配列に格納する。
@data += shield unless shield.empty?
@data += head unless head.empty?
@data += body unless body.empty?
@data += accesory unless accesory.empty?
unlessは「〜〜でなければ」、empty?は「配列が空かどうか」である。つまりここでは、各種別の配列が空でなかったら@dataに追加しているというわけである。これで、種別ごとにまとめられたひとつの配列が用意できた。

アイテムのリストができたのでさっそく描画しよう。
@item_max = @data.size
if @item_max != 0
  self.contents = Bitmap.new(width - 32, row_max * 32)
  @item_max.times { |i|
    draw_item(i)
  }
end
@item_maxはここで定義する。@dataの大きさが不定なのでこのタイミングより手前では正しく動作しない。
もし@item_maxつまり@data.sizeが0でなければ、このウィンドウには描画すべきアイテムがあるということで以下を実行。
ウィンドウの中身を生成。ここで、row_maxは親クラスで定義されているメソッドである。@item_maxと@column_maxから適切な行数を算出して返してくれる。widthとrow_maxを基準に描画領域を生成する。
timesはIntegerクラスの繰返し用メソッド。do 〜 end間を@item_max回繰返す。ブロックパラメータは0から始まるので注意が必要。ここでは0から@item_max-1までのそれぞれを引数にしてdraw_itemメソッドを実行する。


次回はdraw_itemメソッド。


タグ:[Ruby] [RGSS] [素材] [Scene_Item]

| 2011.01.28 Friday 23:56 | comments(0) | trackbacks(0) |

[ - ] スポンサーサイト

| 2018.05.23 Wednesday 23:56 | - | - |

コメント

コメントする






この記事のトラックバックURL

トラックバック

このページの先頭へ▲

Twitter

WebClap

Blogram

ブログランキングならblogram

calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< October 2019 >>

categories

archives

Amazon

selected entries

recent comment

recent trackback

recent ranking

links

search this site.

sponsored links

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM