PuyoPuyoChap2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[目次へもどる>PuyoPuyo]]
* FieldController [#x8393a36]
#contents
さて,ブロックを配置するフィールドがとりあえず作れたので...
ただし,フィールドを制御するのはプレイヤーだけでなくCPUも...
それらの親クラスとしてFieldControllerを定義した.
#sh(ruby){{
class FieldController
@@row_s = 6
@@line_s = 12
def initialize(x,y)
@x = x; @y = y
init_field
init_phase
end
def init_field
@field = Field.new(@@row_s, @@line_s)
end
def init_phase
@phase = :falldown
@wait = 0
end
def update
draw_field
return if update_wait
case @phase
when :falldown
update_falldown
when :eliminate
update_eliminate
end
end
def update_wait
@wait > 0 ? (@wait -=1; true) : false
end
def update_falldown
fallen = @field.falldown
@wait = 60 if fallen
@phase = :eliminate
end
def update_eliminate
eliminated = @field.eliminate
@wait = 60 if eliminated
@phase = :falldown
end
def draw_field
@field.draw_field(@x,@y)
end
end
}}
まずフィールドを配置する場所の情報を受け取りつつインスタ...
init_fieldではフィールドを作成している.
ここで新しくフェイズという単語が現れた.
ぷよぷよはいくつかの段階にわかれて処理が行われている.
フェイズとはその処理の段階を表す.
+ ブロックの消去
+ ブロックの落下(スキマスイッチ)
+ 新しいブロックを落とす
簡単にしてしまうと大体この3フェイズで良さそうだ.
現状では新しいブロックを操作して落とすことはできないので...
あとは簡単で,updateメソッドにて,フェイズに基づいた処理...
終了行:
[[目次へもどる>PuyoPuyo]]
* FieldController [#x8393a36]
#contents
さて,ブロックを配置するフィールドがとりあえず作れたので...
ただし,フィールドを制御するのはプレイヤーだけでなくCPUも...
それらの親クラスとしてFieldControllerを定義した.
#sh(ruby){{
class FieldController
@@row_s = 6
@@line_s = 12
def initialize(x,y)
@x = x; @y = y
init_field
init_phase
end
def init_field
@field = Field.new(@@row_s, @@line_s)
end
def init_phase
@phase = :falldown
@wait = 0
end
def update
draw_field
return if update_wait
case @phase
when :falldown
update_falldown
when :eliminate
update_eliminate
end
end
def update_wait
@wait > 0 ? (@wait -=1; true) : false
end
def update_falldown
fallen = @field.falldown
@wait = 60 if fallen
@phase = :eliminate
end
def update_eliminate
eliminated = @field.eliminate
@wait = 60 if eliminated
@phase = :falldown
end
def draw_field
@field.draw_field(@x,@y)
end
end
}}
まずフィールドを配置する場所の情報を受け取りつつインスタ...
init_fieldではフィールドを作成している.
ここで新しくフェイズという単語が現れた.
ぷよぷよはいくつかの段階にわかれて処理が行われている.
フェイズとはその処理の段階を表す.
+ ブロックの消去
+ ブロックの落下(スキマスイッチ)
+ 新しいブロックを落とす
簡単にしてしまうと大体この3フェイズで良さそうだ.
現状では新しいブロックを操作して落とすことはできないので...
あとは簡単で,updateメソッドにて,フェイズに基づいた処理...
ページ名: