独学ツクールブログ

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

<< 砕け散り効果作りました | main |

[ - ] スポンサーサイト

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

| 2018.05.23 Wednesday | - | - |

[ RGSS奮闘記 ] 砕け散り効果詳細

ノーティ・ドッグ!(挨拶)

ということで、昨日やっとけばよかった砕け散り効果詳細。

まずGame_Characterに砕けフラグを定義。

class Game_Character
attr_accessor :crash_flg #★
def init_public_members
super
@move_route_forcing = false
@crash_flg = false #★
end
end

Sprite_Characterで、砕け散り時のスプライトの配列とフラグON時の処理を定義。
 Sprite_Character < Sprite_Baser
def initialize(viewport, character = nil)
super(viewport)
@character = character
@balloon_duration = 0
@subsprites = [] #★
update
end
def update
super
update_bitmap
update_src_rect
update_position
update_other
update_balloon
update_crash if @character.crash_flg #★
update_subsprites if @subsprites #★
setup_new_effect
end
def update_crash #★
bmp = Bitmap.new(@cw, @ch)
bmp.blt(0, 0, self.bitmap, self.src_rect)
create_effect(self.x - self.ox, self.y - self.oy, bmp)
@character.crash_flg = false
end
def create_effect(x, y, bitmap, pow_x = 2, pow_y = 4, alpha = true) #★
w = bitmap.width / pow_x
h = bitmap.height / pow_y
bmps = bitmap.divide(pow_x, pow_y)
@subsprites = []
pow_y.times{|row|
pow_x.times{|col|
@subsprites << Sprite.new.tap{|s|
s.bitmap = bmps[row][col]
s.x = x + w * col
s.y = y + h * row
}
}
}
end
def update_subsprites #★
@subsprites.each{|sprite|
sprite.x += rand(5)-2
sprite.y += 1
sprite.opacity -= rand(5)+15
}
end
end

そしてBitmapクラスに分割メソッドを定義。
class Bitmap
def divide(x, y)
bmp = Array.new(y) { Array.new(x) }
w = self.width / x
h = self.height / y
y.times{|i|
x.times{|j|
#p [w * i, h * j, w, h]
rect = Rect.new(w * j, h * i, w, h)
b = Bitmap.new(w, h)
b.blt(0, 0, self, rect)
bmp[i][j] = b
}
}
return bmp
end
end

この状態で
1ページ目2ページ目
この様にイベントを設定すると、「調べると砕けるイベント」の出来上がり。
「get_character(0)」は「このイベント(つまりGame_Eventクラスのインスタンス)」を取得する。

さて、これだけ長い記事になると次がだいぶ先になりかねないな(笑)
なるべく早くあげられるよう頑張ります。

タグ:[RGSS] [RGSS3] [自作スクリプト]

| 2018.05.23 Wednesday 19:01 | comments(0) | trackbacks(0) |

[ - ] スポンサーサイト

| 2018.05.23 Wednesday 19:01 | - | - |

コメント

コメントする






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

トラックバック

このページの先頭へ▲

Twitter

WebClap

Blogram

ブログランキングならblogram

calendar

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< September 2018 >>

categories

archives

Amazon

selected entries

recent comment

recent trackback

recent ranking

links

search this site.

sponsored links

others

mobile

qrcode

powered

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