PuyoPuyoChap30
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[目次へもどる>PuyoPuyo]]
* ゲームモードを作ろう [#z4713d5a]
#contents
さて,いよいよ対戦できるようにしていきたいところだが,
折角シングルプレイ的なやつはできているので,
ゲームモードを追加して,シングルプレイをできるようにして...
とりあえずジャマーが発生しないように適当にコメントアウト...
#sh(ruby){{
class Field
def eliminate
@eliminated = false
make_connect_table
fair_connect_table
@chain += 1 unless @connect_table.empty?
@sm.score += @sm.calc_chain_score(@connect_table, @ch...
scene = GameMain.scene
unless @connect_table.empty?
# @jm.jammers += @jm.calc_jammer(@sm.chain_score, @...
end
eliminate_connection
@eliminated
end
end
}}
ゲームモードの追加先も微妙なのでとりあえずGameMainに変数...
値を書き換えることでゲームモードが変更できるようにしてお...
#sh(ruby){{
module GameMain
@scene = []
@gamemode = :single_player
def self.main
scene = case @gamemode
when :single_player
SceneSinglePlayer
end
scene_push(scene)
StarRuby::Game.run(320, 240, :title => "PuyoPuyo", :f...
break if @scene.empty?
@scene.last.main
end
end
end
}}
あとはシングルプレイ用のクラスをScenePuyoPuyoのサブクラス...
このとき,ScenePuyoPuyoのupdateではプレイヤーすべてのFiel...
deadならシーンを終了するように変更しておいた.
#sh(ruby){{
ss ScenePuyoPuyo < SceneBase
attr_reader :playtime
attr_reader :margin_time
def start
@playtime = 0
@margin_time = 96
@players = []
end
def main
super
end
def gameover
GameMain.scene_change ScenePuyoPuyo
end
def update
super
all_dead = @players.all? do |controller|
controller.update
controller.dead?
end
@playtime += 1
gameover if all_dead
end
end
}}
#sh(ruby){{
class SceneSinglePlayer < ScenePuyoPuyo
def start
super
@players.push(Player1.new(16,16,6,12,16))
end
def gameover
GameMain.scene_change SceneSinglePlayer
end
end
}}
終了行:
[[目次へもどる>PuyoPuyo]]
* ゲームモードを作ろう [#z4713d5a]
#contents
さて,いよいよ対戦できるようにしていきたいところだが,
折角シングルプレイ的なやつはできているので,
ゲームモードを追加して,シングルプレイをできるようにして...
とりあえずジャマーが発生しないように適当にコメントアウト...
#sh(ruby){{
class Field
def eliminate
@eliminated = false
make_connect_table
fair_connect_table
@chain += 1 unless @connect_table.empty?
@sm.score += @sm.calc_chain_score(@connect_table, @ch...
scene = GameMain.scene
unless @connect_table.empty?
# @jm.jammers += @jm.calc_jammer(@sm.chain_score, @...
end
eliminate_connection
@eliminated
end
end
}}
ゲームモードの追加先も微妙なのでとりあえずGameMainに変数...
値を書き換えることでゲームモードが変更できるようにしてお...
#sh(ruby){{
module GameMain
@scene = []
@gamemode = :single_player
def self.main
scene = case @gamemode
when :single_player
SceneSinglePlayer
end
scene_push(scene)
StarRuby::Game.run(320, 240, :title => "PuyoPuyo", :f...
break if @scene.empty?
@scene.last.main
end
end
end
}}
あとはシングルプレイ用のクラスをScenePuyoPuyoのサブクラス...
このとき,ScenePuyoPuyoのupdateではプレイヤーすべてのFiel...
deadならシーンを終了するように変更しておいた.
#sh(ruby){{
ss ScenePuyoPuyo < SceneBase
attr_reader :playtime
attr_reader :margin_time
def start
@playtime = 0
@margin_time = 96
@players = []
end
def main
super
end
def gameover
GameMain.scene_change ScenePuyoPuyo
end
def update
super
all_dead = @players.all? do |controller|
controller.update
controller.dead?
end
@playtime += 1
gameover if all_dead
end
end
}}
#sh(ruby){{
class SceneSinglePlayer < ScenePuyoPuyo
def start
super
@players.push(Player1.new(16,16,6,12,16))
end
def gameover
GameMain.scene_change SceneSinglePlayer
end
end
}}
ページ名: