あなたの質問は誰もあなたのためにあなたのプロジェクトをするつもりはありませんスタックオーバーフローのためにあまりにも一般的なものであり、事前に
akkki、ありがとうございました。あなたが基本的なプログラミング経験を持っていれば、本を手に入らずに最初にそれを学ぶと仮定します。
あなたが既にあなたのタグのためにAndroidを選択していると仮定して、簡単な2次元ゲームを想定します。
事前リクエスト: すでにお持ちでない場合は、java + eclipse + android sdkをインストールしてください。 新しいプロジェクトを作成し、月面のlandarの例を使用し、携帯電話またはエミュレータで実行されていることを確認します。
開始サンプル: 月のlandarにはゲームループがあり、常に画面全体を再描画します。これはdoDraw関数を常に呼び出すことによって行われます。キャンバスを使用して線、円、ボックス、色、ビットマップを描画してゲームに似せることになっています。 (canvas.draw ....)Lunar landarはOpenGLを使用しないので、ゆっくりと使えますが、はるかに使いやすくなります。
サンプルのストリップ: おそらくキーイベントや月の宇宙船は必要ありません! は、それはあなたが空白の画面を取得する必要があり、これはあなたのゲームを作り始めるためにあなたのキャンバス..です新しい
@Override
public boolean onTouchEvent(MotionEvent event){
return false;
}
ランを作成onKeyDownメソッド が が起こるどんなエラーがあれば削除し、 はonKeyUpを削除onDraw機能のすべてを削除します。あなたはボールに言及して、ボールが何であるかを分かりました。位置と方向、ボールx、yの変数を作成direction_xとdirection_yタッチイベントがボールの方向を変更したい場合、ドローイベントはボールを移動します。 (ボールx、yに方向x、yを加えて)ボールを描画する(canvas.drawCircle(x、y、radius、new Paint())) 最も重要なことは、簡単で実験を開始することです。
2衝突
衝突がdodraw関数の中で行われ、に分けることができます。オブジェクトを移動、行くそうであれば、誰の通知前にそれを戻すことになっている場合、そのオブジェクトが経過しているかどうかをチェックします。 ...衝突検出の多くの異なった手法があります。
は、あなたの壁には、すべての(最も簡単)は、その後の衝突をボックス壁のxに対する新しいX、Y + -radiusボールをチェックし、水平および垂直方向、Y、幅であればその1つの大きなif文とgoogleの高さは数十億の例を持っています。
あなたの壁が角度をつけて必要ラインの衝突を検出する場合、基本的にボールがあなたの壁のベクトルに向かっている線のベクトル(ベクトル)があり、2つの線が衝突する場所を確認し、あなたのボールの半径と壁の両方にある(Googleラインの交差関数)
またはカラーピッキングを使用すると、あなたの壁がすべて赤であることを知っているシーンを描画してから、新しいボールx、yは赤で、あなたがヒットしたことを知っている
うまくいけば、これはあなたが始まり、あなたの次の質問はより具体的になることができます。
ボックス2dコードとチュートリアル、特にbox2d liteを見てください。それは簡単であるように設計されています。 – Rick