2017-07-01 8 views
3

最初はより良い想像力のために、これはGUIのように見えます。 画面の右側にある右の四角形の下をタッチすると、右の四角形が下に移動します。しかし、両方のプレイヤーが側にこれを行う際に、ACTION_MOVE、このシナリオの場合であってはならないそのトリガーがあり...どのようにして独立したイベントに反応する2つの同じ大きさのスペースに画面を分割できますか?

enter image description here

ところ、2人のユーザーがすることができます私はアンドロイドで比較的容易にマルチプレイヤーゲームを開発しています画面と対話します。画面のどの面が押されたかによって、違う方法でonTouchを実装しました。次に、player1またはplayer2のいずれかのアクションをトリガーします。

私の問題は、両方のプレーヤーが同時に画面を押すと、2つのACTION_DOWNイベントだけでなく、ACTION_MOVEもトリガーされることです。 ACTION_MOVEにはいくつかの具体的な実装がありますが、単独のプレイヤーがそれを引き起こし、両方を一緒にしていない場合にのみ呼び出されます。

したがって、問題が発生しないように画面を2つの領域に分割する方法はありますか?

おかげ

+0

重量の概念を使用 –

+0

どういう意味ですか?私はxmlファイルに重み値を割り当てることに慣れています。しかし、私はonDraw()をオーバーライドするカスタムビュークラスを使用しているので、私もそこに重量の概念を使用できますか? – Jonas1902

答えて

1

あなたはそれぞれの重量 = 1と2つのボタンで、のLinearLayoutをimplemet必要があります。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<Button 
    android:id="@+id/button" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:background="@color/colorPrimary" 
    android:text="Button1" /> 

<Button 
    android:id="@+id/button2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:background="@color/colorAccent" 
    android:text="Button2" /> 
</LinearLayout> 

次に、各ボタンからのタッチを処理できます。

+0

はい、あなたの言うことはもちろん正しいです!しかし、私はカスタムビューを使用しているし、キャンバス上に描画したいし、ボタンがありません。ボタンを使用すると、自分のプログラムに必要なACTION_MOVEを処理できませんでした。しかし、ACTION_MOVEは1人のユーザによってのみトリガされ、2人の単一のタップの結果ではなく、各ユーザごとに1人ずつタップされます。 – Jonas1902

関連する問題