PuyoPuyoChap8
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[目次へもどる>PuyoPuyo]]
* アニメーション(消滅編) [#mcb9f7a1]
#contents
** コラプス [#d54573fc]
っつーわけで次はコラプスのアニメーションを作ろう.
コラプスの属性は以下の通り.
- @collapseがnilならアニメーションしていない
- そうでないなら@collapseには以下の情報を持つハッシュが格...
++ time: アニメーションの時間(フレーム数)
++ counter: 時間経過をカウントするやつ
まあ今回はとりあえず簡易的にだんだん透明にしていくことに...
ブロックを描画するときにコラプス中であればcounterに基づい...
** コラプス中のブロックの扱い [#e6137e95]
むしろアニメーション自体よりこっちが問題である.
ブロックは消去された瞬間に@blocklistから削除される.
すると,消去されたブロックは描画されなくなってしまい,ア...
ではコラプスが終わったらblocklistから削除すれば良いのでは?
実はこれもあまりいい作戦では無い.なぜなら消去されたブロ...
すなわちコラプスアニメーションが終わるまでただ座して待つ...
これだと任意の長さのコラプスアニメが将来作れなくなり拡張...
そこで次の方針をとる.
- 現状のblocklistをactive_blocksと改名し,フィールドで有...
- 消去されたブロックはコラプスアニメーションがセットされ...
- collapse_blocks内のブロックはコラプスが終わり次第リスト...
これによりコラプス中か判定するメソッドcollapse?を任意に変...
#sh(ruby){{
class Field
def init_blocklist
@active_blocks = []
@collapse_blocks = []
end
def eliminate_connection
@connect_table.each do |connection|
next if connection.size < 4
@eliminated = true # check flag
connection.each do |block|
block.set_collapse(40)
@table[block.row][block.line] = nil
@active_blocks.delete block
@collapse_blocks.push block
end
end
end
end
}}
** 実行 [#mbdbfa0d]
いい感じにアニメーションできている.
#media(PuyoPuyoChap8/PuyoPuyoChap8.flv);
終了行:
[[目次へもどる>PuyoPuyo]]
* アニメーション(消滅編) [#mcb9f7a1]
#contents
** コラプス [#d54573fc]
っつーわけで次はコラプスのアニメーションを作ろう.
コラプスの属性は以下の通り.
- @collapseがnilならアニメーションしていない
- そうでないなら@collapseには以下の情報を持つハッシュが格...
++ time: アニメーションの時間(フレーム数)
++ counter: 時間経過をカウントするやつ
まあ今回はとりあえず簡易的にだんだん透明にしていくことに...
ブロックを描画するときにコラプス中であればcounterに基づい...
** コラプス中のブロックの扱い [#e6137e95]
むしろアニメーション自体よりこっちが問題である.
ブロックは消去された瞬間に@blocklistから削除される.
すると,消去されたブロックは描画されなくなってしまい,ア...
ではコラプスが終わったらblocklistから削除すれば良いのでは?
実はこれもあまりいい作戦では無い.なぜなら消去されたブロ...
すなわちコラプスアニメーションが終わるまでただ座して待つ...
これだと任意の長さのコラプスアニメが将来作れなくなり拡張...
そこで次の方針をとる.
- 現状のblocklistをactive_blocksと改名し,フィールドで有...
- 消去されたブロックはコラプスアニメーションがセットされ...
- collapse_blocks内のブロックはコラプスが終わり次第リスト...
これによりコラプス中か判定するメソッドcollapse?を任意に変...
#sh(ruby){{
class Field
def init_blocklist
@active_blocks = []
@collapse_blocks = []
end
def eliminate_connection
@connect_table.each do |connection|
next if connection.size < 4
@eliminated = true # check flag
connection.each do |block|
block.set_collapse(40)
@table[block.row][block.line] = nil
@active_blocks.delete block
@collapse_blocks.push block
end
end
end
end
}}
** 実行 [#mbdbfa0d]
いい感じにアニメーションできている.
#media(PuyoPuyoChap8/PuyoPuyoChap8.flv);
ページ名: