PuyoPuyoChap12
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[目次へもどる>PuyoPuyo]]
* 入力を処理しよう [#f8a2b94e]
#contents
コントロールブロックの大まかな流れは実装できたので,これ...
#sh(ruby){{
class InputController
@@keys = [:up, :down, :right, :left, :button1, :button2]
@@keymap = []
@@keymap[1] = { # Player1 keymap
:up => :w,
:down => :s,
:right => :d,
:left => :a,
:button1 => :f,
:button2 => :g
}
@@keymap[2] = { # Player2 keymap
:up => :up,
:down => :down,
:right => :right,
:left => :left,
:button1 => :numpad2,
:button2 => :numpad3
}
def initialize(player)
@player = player
@press_count = {}
@@keys.each do |key|
@press_count[key] = 0
end
end
def update
input_keys = StarRuby::Input.keys(:keyboard)
@@keys.each do |key|
if input_keys.include? @@keymap[@player][key]
@press_count[key] += 1
else
@press_count[key] = 0
end
end
end
def press?(key); @press_count[key] > 0; end
def trigger?(key); @press_count[key] == 1; end
end
}}
まず入力キー一覧と各プレイヤーのキーマップをクラス変数で...
インスタンスの生成時にプレイヤー番号とキーそれぞれが何フ...
updateメソッドが呼ばれるとStarRubyのInputモジュールを用い...
これを用いて@press_countを更新する.
あとは@press_countに基づいてpress?((現在押されているか))...
終了行:
[[目次へもどる>PuyoPuyo]]
* 入力を処理しよう [#f8a2b94e]
#contents
コントロールブロックの大まかな流れは実装できたので,これ...
#sh(ruby){{
class InputController
@@keys = [:up, :down, :right, :left, :button1, :button2]
@@keymap = []
@@keymap[1] = { # Player1 keymap
:up => :w,
:down => :s,
:right => :d,
:left => :a,
:button1 => :f,
:button2 => :g
}
@@keymap[2] = { # Player2 keymap
:up => :up,
:down => :down,
:right => :right,
:left => :left,
:button1 => :numpad2,
:button2 => :numpad3
}
def initialize(player)
@player = player
@press_count = {}
@@keys.each do |key|
@press_count[key] = 0
end
end
def update
input_keys = StarRuby::Input.keys(:keyboard)
@@keys.each do |key|
if input_keys.include? @@keymap[@player][key]
@press_count[key] += 1
else
@press_count[key] = 0
end
end
end
def press?(key); @press_count[key] > 0; end
def trigger?(key); @press_count[key] == 1; end
end
}}
まず入力キー一覧と各プレイヤーのキーマップをクラス変数で...
インスタンスの生成時にプレイヤー番号とキーそれぞれが何フ...
updateメソッドが呼ばれるとStarRubyのInputモジュールを用い...
これを用いて@press_countを更新する.
あとは@press_countに基づいてpress?((現在押されているか))...
ページ名: