2017-06-25 24 views
0

SFMLを使用して単純なゲームを作成しました(プレイヤーはジャンプ、ジャンプなどを押す)、2人のプレイヤーで同じようにすることができます(2番目のプレーヤーはWASD )同時に1台のコンピュータで?SFMLは異なるボタンで同時に2人のプレイヤーを移動する

+1

こんにちはPapi4、歓迎StackOverflow。あなたが試したことを私たちに示すことができますか?時間をかけて[How to Ask](https://stackoverflow.com/help/how-to-ask)を読んでください。 –

+0

2人のプレーヤーについての迅速な警告1 kbd、安価なキーボードがゴーストやブロックすることができます。私もコントローラのサポートをお勧めしたいと思います。ユーザーは2つのキーボードを使用することができます。 –

答えて

0

sf::Keyboardクラスで押されたキーにアクセスできます。 sf::Keyboardあなたはユニークなインスタンスを作成する必要はありませんので、静的なクラスである、ここで簡単な例である:私はあなたが現在window.PollEvent(event)を使用していると仮定してい

if(sf::Keyboard::isKeypressed(sf::Keyboard::Key::W)) 
{ 
    Player1.Move(1, 1); 
} 

if(sf::Keyboard::isKeypressed(sf::Keyboard::Key::Left)) 
{ 
    Player2.Move(1, 1); 
} 

、そのアプローチの問題は、あなただけポーリングということですイベントがキューに追加されてからループサイクルごとに1つのイベントが発生します。上記のコードでは、複数のキーを同時に押して、2つのアクションを処理することができます。

+0

本当のREイベントではありません - ループごとにイベントキュー全体を処理できます(また、処理する必要があります)。 –

関連する問題